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

Vulnerabilidad en kernel de Linux (CVE-2023-52574)

Gravedad CVSS v3.1:
MEDIA
Tipo:
CWE-476 Desreferencia a puntero nulo (NULL)
Fecha de publicación:
02/03/2024
Última modificación:
11/12/2024

Descripción

En el kernel de Linux, se resolvió la siguiente vulnerabilidad: equipo: corrige null-ptr-deref cuando se cambia el tipo de dispositivo del equipo. Obtiene un error null-ptr-deref de la siguiente manera con el reproductor [1]. ERROR: desreferencia del puntero NULL del kernel, dirección: 0000000000000228... RIP: 0010:vlan_dev_hard_header+0x35/0x140 [8021q]... Seguimiento de llamadas: ? __morir+0x24/0x70 ? page_fault_oops+0x82/0x150? exc_page_fault+0x69/0x150? asm_exc_page_fault+0x26/0x30? vlan_dev_hard_header+0x35/0x140 [8021q] ? vlan_dev_hard_header+0x8e/0x140 [8021q] neigh_connected_output+0xb2/0x100 ip6_finish_output2+0x1cb/0x520 ? nf_hook_slow+0x43/0xc0? ip6_mtu+0x46/0x80 ip6_finish_output+0x2a/0xb0 mld_sendpack+0x18f/0x250 mld_ifc_work+0x39/0x160 Process_one_work+0x1e6/0x3f0 trabajador_thread+0x4d/0x2f0? __pfx_worker_thread+0x10/0x10 kthread+0xe5/0x120 ? __pfx_kthread+0x10/0x10 ret_from_fork+0x34/0x50 ? __pfx_kthread+0x10/0x10 ret_from_fork_asm+0x1b/0x30 [1] $ teamd -t team0 -d -c '{"runner": {"name": "loadbalance"}}' $ enlace ip agregar nombre t-dummy tipo dummy $ enlace ip agregar enlace t-dummy nombre t-dummy.100 tipo vlan id 100 $ enlace ip agregar nombre t-nlmon tipo nlmon $ conjunto de enlaces ip t-nlmon master team0 $ conjunto de enlaces ip t-nlmon nomaster $ conjunto de enlaces ip t- dummy up $ ip link set team0 up $ ip link set t-dummy.100 down $ ip link set t-dummy.100 master team0 Cuando se esclaviza un dispositivo VLAN a un dispositivo de equipo y el tipo de dispositivo de equipo se cambia de no ether a ether, header_ops del dispositivo del equipo se cambia a vlan_header_ops. Eso es incorrecto y activará null-ptr-deref para vlan->real_dev en vlan_dev_hard_header() porque el dispositivo del equipo no es un dispositivo vlan. Almacene en caché eth_header_ops en team_setup(), luego asigne header_ops almacenados en caché a header_ops del dispositivo team net cuando su tipo cambie de no ether a ether para corregir el error.

Productos y versiones vulnerables

CPE Desde Hasta
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 3.7 (incluyendo) 4.14.327 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 4.15 (incluyendo) 4.19.296 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 4.20 (incluyendo) 5.4.258 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.5 (incluyendo) 5.10.198 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.11 (incluyendo) 5.15.134 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 5.16 (incluyendo) 6.1.56 (excluyendo)
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* 6.2 (incluyendo) 6.5.6 (excluyendo)
cpe:2.3:o:linux:linux_kernel:6.6:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.6:rc2:*:*:*:*:*:*