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

Vulnerabilidad en kernel de Linux (CVE-2022-50063)

Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
18/06/2025
Última modificación:
18/06/2025

Descripción

En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: net: dsa: felix: suprimir los no cambios en el protocolo de etiquetado La forma en que funciona dsa_tree_change_tag_proto() es que cuando dsa_tree_notify() falla, no sabe si la operación falló a mitad de camino en un árbol de múltiples conmutadores o falló para un árbol de un solo conmutador. Entonces, aunque los controladores necesitan fallar limpiamente en ds->ops->change_tag_protocol(), DSA seguirá llamando a dsa_tree_notify() nuevamente, para restaurar el antiguo protocolo de etiqueta para los conmutadores potenciales en el árbol donde el cambio sí tuvo éxito (antes de fallar para otros). Esto significa para el controlador felix que si informamos de un error en felix_change_tag_protocol(), recibiremos otra llamada donde proto_ops == old_proto_ops. Si procedemos a actuar en consecuencia, podemos hacer cosas inesperadas. Por ejemplo, llamaremos a dsa_tag_8021q_register() dos veces seguidas, sin ejecutar dsa_tag_8021q_unregister() entre ambas. Luego, llamaremos a dsa_tag_8021q_unregister() mediante old_proto_ops->teardown, lo cual (si logra ejecutarse, tras analizar las estructuras de datos dañadas) dejará los puertos inoperativos. El error se puede reproducir fácilmente si forzamos un error en modo tag_8021q; esto provoca un fallo del kernel. echo ocelot-8021q > /sys/class/net/eno2/dsa/tagging echo edsa > /sys/class/net/eno2/dsa/tagging # -EPROTONOSUPPORT No se puede controlar la desreferencia del puntero NULL del núcleo en la dirección virtual 0000000000000014 Rastreo de llamadas: vcap_entry_get+0x24/0x124 ocelot_vcap_filter_del+0x198/0x270 felix_tag_8021q_vlan_del+0xd4/0x21c dsa_switch_tag_8021q_vlan_del+0x168/0x2cc dsa_switch_event+0x68/0x1170 dsa_tree_notify+0x14/0x34 dsa_port_tag_8021q_vlan_del+0x84/0x110 dsa_tag_8021q_unregister+0x15c/0x1c0 felix_tag_8021q_teardown+0x16c/0x180 felix_change_tag_protocol+0x1bc/0x230 dsa_switch_event+0x14c/0x1170 dsa_tree_change_tag_proto+0x118/0x1c0

Impacto