Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

Vulnerabilidad en kernel de Linux (CVE-2024-58060)

Gravedad CVSS v3.1:
ALTA
Tipo:
CWE-416 Utilización después de liberación
Fecha de publicación:
06/03/2025
Última modificación:
21/03/2025

Descripción

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: bpf: Rechazar el registro de struct_ops que usa el módulo ptr y falta el módulo btf_id Hay un informe UAF en bpf_struct_ops cuando CONFIG_MODULES=n. En particular, el informe está en tcp_congestion_ops que tiene un miembro "struct module *owner". Para struct_ops que tiene un miembro "struct module *owner", puede extenderse mediante el módulo de kernel regular o mediante bpf_struct_ops. bpf_try_module_get() se usará para hacer el recuento de referencias y se realiza un recuento de referencias diferente según el puntero del propietario. Cuando CONFIG_MODULES=n, falta el btf_id del "struct module": WARN: resolve_btfids: módulo de símbolo sin resolver Por lo tanto, bpf_try_module_get() no puede hacer el recuento de referencias correcto. No todos los struct_ops de los subsistemas requieren el miembro "struct module *owner", por ejemplo, el reciente sched_ext_ops. Este parche sirve para deshabilitar el registro de bpf_struct_ops si struct_ops tiene el miembro "struct module *" y falta el btf_id "struct module". El asistente btf_type_is_fwd() se ha movido al archivo de encabezado btf.h para esta prueba. Esto ha sucedido desde el comienzo de bpf_struct_ops, que ha sufrido muchos cambios. La etiqueta Fixes se establece en una confirmación reciente que este parche puede aplicar sin problemas. Teniendo en cuenta que CONFIG_MODULES=n no es común y la antigüedad del problema, también se apunta a bpf-next.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.9 (incluyendo) 6.12.13 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.13 (incluyendo) 6.13.2 (excluyendo)