Vulnerabilidad en kernel de Linux (CVE-2022-48910)
Gravedad CVSS v3.1:
MEDIA
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
22/08/2024
Última modificación:
08/11/2024
Descripción
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: net: ipv6: asegúrese de llamar a ipv6_mc_down() como máximo una vez. Hay dos razones para llamar a addrconf_notify() con NETDEV_DOWN: o el dispositivo de red realmente está cayendo o IPv6 estaba deshabilitado en la interfaz. Si alguno de ellos permanece inactivo mientras el otro está activado, llamamos repetidamente al código para NETDEV_DOWN, incluido ipv6_mc_down(), pero nunca llamamos al ipv6_mc_up() correspondiente en el medio. Esto hará que se asigne una nueva entrada en idev->mc_tomb para cada grupo de multidifusión al que esté suscrita la interfaz, lo que a su vez filtrará una estructura ifmcaddr6 por cada grupo de multidifusión no trivial al que esté suscrita la interfaz. El siguiente reproductor filtrará al menos $n objetos: ip addr add ff2e::4242/32 dev eth0 autojoin sysctl -w net.ipv6.conf.eth0.disable_ipv6=1 for i in $(seq 1 $n); configurar el enlace ip eth0; ip link set down eth0 done Unirse a grupos con IPV6_ADD_MEMBERSHIP (sin privilegios) o configurar sysctl net.ipv6.conf.eth0.forwarding en 1 (=> suscribirse a ff02::2) también se puede usar para crear un idev->mc_list no trivial , que filtrará objetos con la secuencia correcta de arriba a abajo. Según ambas fuentes de eventos NETDEV_DOWN, se debe considerar el estado de la interfaz IPv6: - no lista si la interfaz de red no está lista O IPv6 está deshabilitado - lista si la interfaz de red está lista Y IPv6 está habilitada Las funciones ipv6_mc_up() e ipv6_down() solo debe ejecutarse cuando este estado cambie. Implemente esto recordando cuándo el estado de IPv6 está listo y solo ejecute ipv6_mc_down() si realmente cambió de listo a no listo. La otra dirección (no listo -> listo) ya funciona correctamente, ya que: - la ruta de código activada de notificación de interfaz para NETDEV_UP / NETDEV_CHANGE regresa antes si ipv6 está deshabilitado, y - la ruta de código activada enable_ipv6=0 omite la inicialización completa de la interfaz siempre que addrconf_link_ready (dev) devuelve falso: llamar a ipv6_mc_up() repetidamente no filtra nada
Impacto
Puntuación base 3.x
5.50
Gravedad 3.x
MEDIA
Productos y versiones vulnerables
CPE | Desde | Hasta |
---|---|---|
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 3.18 (incluyendo) | 4.9.313 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.10 (incluyendo) | 4.14.278 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.15 (incluyendo) | 5.4.193 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.5 (incluyendo) | 5.10.104 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (incluyendo) | 5.15.27 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (incluyendo) | 5.16.13 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:5.17:rc1:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:5.17:rc2:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:5.17:rc3:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:5.17:rc4:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:5.17:rc5:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:5.17:rc6:*:*:*:*:*:* |
Para consultar la lista completa de nombres de CPE con productos y versiones, ver esta página
Referencias a soluciones, herramientas e información
- https://git.kernel.org/stable/c/24888915364cfa410de62d8abb5df95c3b67455d
- https://git.kernel.org/stable/c/72124e65a70b84e6303a5cd21b0ac1f27d7d61a4
- https://git.kernel.org/stable/c/9588ac2eddc2f223ebcebf6e9f5caed84d32922b
- https://git.kernel.org/stable/c/9995b408f17ff8c7f11bc725c8aa225ba3a63b1c
- https://git.kernel.org/stable/c/9a8736b2da28b24f01707f592ff059b9f90a058c
- https://git.kernel.org/stable/c/b11781515208dd31fbcd0b664078dce5dc44523f
- https://git.kernel.org/stable/c/c71bf3229f9e9dd60ba02f5a5be02066edf57012
- https://git.kernel.org/stable/c/f4c63b24dea9cc2043ff845dcca9aaf8109ea38a