Linux Kernel 6.6 Network Name tcf_chain0_head_change_cb_del desbordamiento de búfer

CVSS Puntuación meta temporalPrecio actual del exploit (≈)Puntuación de interés CTI
6.6$0-$5k0.00

Resumeninformación

Una vulnerabilidad ha sido encontrada en Linux Kernel 6.6 y clasificada como crítica. Resulta afectada una función desconocida dentro del componente Network Name Handler. La alteración resulta en desbordamiento de búfer. La vulnerabilidad es identificada como CVE-2024-41010. No existe ningún exploit disponible. El mejor modo sugerido para mitigar el problema es aplicar el parche al componente.

Detallesinformación

Una vulnerabilidad clasificada como crítica ha sido encontrada en Linux Kernel 6.6. La función tcf_chain0_head_change_cb_del del componente Network Name Handler es afectada por esta vulnerabilidad. Mediante la manipulación de un input desconocido se causa una vulnerabilidad de clase desbordamiento de búfer. Esto tiene repercusión sobre la confidencialidad, integridad y disponibilidad. CVE resume:

En el kernel de Linux, se resolvió la siguiente vulnerabilidad: bpf: Se solucionó el lanzamiento demasiado temprano de tcx_entry Pedro Pinto y más tarde, de forma independiente, también Hyunwoo Kim y Wongi Lee informaron un problema por el cual tcx_entry se puede lanzar demasiado pronto, lo que lleva a un uso posterior a la liberación (UAF ) cuando una qdisc ingress o clsact antigua activa con un bloque tc compartido se reemplaza posteriormente por otra instancia de ingress o clsact. Esencialmente, la secuencia para activar la UAF (un ejemplo) puede ser la siguiente: 1. Se crea un espacio de nombres de red. 2. Se crea una qdisc de entrada. Esto asigna un tcx_entry, y &tcx_entry->miniq se almacena en el miniqp->p_miniq de la qdisc. Al mismo tiempo, se crea un bloque tcf con índice 1. 3. chain0 está adjunta al bloque tcf. chain0 debe estar conectado al bloque vinculado a la qdisc de ingreso para luego llegar a la función tcf_chain0_head_change_cb_del() que activa la UAF. 4. Cree e injerte una qdisc clsact. Esto hace que se elimine la qdisc de entrada creada en el paso 1, liberando así la tcx_entry previamente vinculada: rtnetlink_rcv_msg() => tc_modify_qdisc() => qdisc_create() => clsact_init() [a] => qdisc_graft() => qdisc_destroy( ) => __qdisc_destroy() => ingress_destroy() [b] => tcx_entry_free() => kfree_rcu() // tcx_entry liberado 5. Finalmente, se cierra el espacio de nombres de la red. Esto registra el trabajador cleanup_net y, durante el proceso de liberación de la qdisc clsact restante, accede a tcx_entry que ya se liberó en el paso 4, lo que provoca que se produzca la UAF: cleanup_net() => ops_exit_list() => default_device_exit_batch() => unregister_netdevice_many() => unregister_netdevice_many_notify() => dev_shutdown() => qdisc_put() => clsact_destroy() [c] => tcf_block_put_ext() => tcf_chain0_head_change_cb_del() => tcf_chain_head_change_item() => clsact_chain_head_change() => mini_qdisc_pair _intercambiar( ) // UAF También hay otras variantes, lo esencial es agregar una qdisc de ingreso (o clsact) con un bloque compartido específico, luego reemplazar esa qdisc, esperar a que se ejecute tcx_entry kfree_rcu() y posteriormente acceder al activo actual miniq de qdisc de una forma u otra. La solución correcta es convertir el booleano miniq_active en un contador. Lo que se puede observar, en el paso 2 anterior, el contador pasa de 0->1, en el paso [a] de 1->2 (para que el objeto miniq permanezca activo durante el reemplazo), luego en [b] de 2->1 y finalmente [c] 1->0 con el eventual lanzamiento. El contador de referencia en general oscila entre [0,2] y no necesita ser atómico ya que todo acceso al contador está protegido por el mutex rtnl. Con esto implementado, ya no ocurre ningún UAF y tcx_entry se libera en el momento correcto.

El advisory puede ser descargado de git.kernel.org. La vulnerabilidad es identificada como CVE-2024-41010. Hay detalles técnicos conocidos, pero no se dispone de un exploit.

Para el scanner Nessus se dispone de un plugin ID 210060 (Ubuntu 22.04 LTS / 24.04 LTS : Linux kernel kernel vulnerabilities (USN-7089-1)), que puede ayudar a determinar la existencia del riesgo analizado.

Aplicando el parche 1cb6f0bae504 es posible eliminar el problema. El parche puede ser descargado de git.kernel.org.

La vulnerabilidad también está documentado en la base de datos Tenable (210060). Once again VulDB remains the best source for vulnerability data.

Productoinformación

Escribe

Proveedor

Nombre

Versión

Licencia

Sitio web

CPE 2.3información

CPE 2.2información

CVSSv4información

VulDB Vector: 🔍
VulDB Confiabilidad: 🔍

CVSSv3información

VulDB Puntuación meta base: 6.8
VulDB Puntuación meta temporal: 6.6

VulDB Puntuación base: 8.0
VulDB Puntuación temporal: 7.6
VulDB Vector: 🔍
VulDB Confiabilidad: 🔍

NVD Puntuación base: 5.5
NVD Vector: 🔍

CVSSv2información

AVACAuCIA
💳💳💳💳💳💳
💳💳💳💳💳💳
💳💳💳💳💳💳
VectorComplejidadAutenticaciónConfidencialidadIntegridadDisponibilidad
DesbloquearDesbloquearDesbloquearDesbloquearDesbloquearDesbloquear
DesbloquearDesbloquearDesbloquearDesbloquearDesbloquearDesbloquear
DesbloquearDesbloquearDesbloquearDesbloquearDesbloquearDesbloquear

VulDB Puntuación base: 🔍
VulDB Puntuación temporal: 🔍
VulDB Confiabilidad: 🔍

Explotacióninformación

Clase: Desbordamiento de búfer
CWE: CWE-416 / CWE-119
CAPEC: 🔍
ATT&CK: 🔍

Físico: En parte
Local: Sí
Remoto: En parte

Disponibilidad: 🔍
Estado: No está definido

EPSS Score: 🔍
EPSS Percentile: 🔍

Predicción de precios: 🔍
Estimación del precio actual: 🔍

0-DayDesbloquearDesbloquearDesbloquearDesbloquear
HoyDesbloquearDesbloquearDesbloquearDesbloquear

Nessus ID: 210060
Nessus Nombre: Ubuntu 22.04 LTS / 24.04 LTS : Linux kernel kernel vulnerabilities (USN-7089-1)

Inteligencia de amenazasinformación

Interés: 🔍
Actores activos: 🔍
Grupos APT activos: 🔍

Contramedidasinformación

Recomendación: Parche
Estado: 🔍

Hora de 0 días: 🔍

Parche: 1cb6f0bae504

Línea de tiempoinformación

2024-07-12 🔍
2024-07-17 +5 días 🔍
2024-07-17 +0 días 🔍
2024-11-02 +108 días 🔍

Fuentesinformación

Proveedor: kernel.org

Aviso: git.kernel.org
Estado: Confirmado

CVE: CVE-2024-41010 (🔍)
GCVE (CVE): GCVE-0-2024-41010
GCVE (VulDB): GCVE-100-271804

Artículoinformación

Fecha de creación: 2024-07-17 09:05
Actualizado: 2024-11-02 04:35
Cambios: 2024-07-17 09:05 (57), 2024-07-18 03:09 (1), 2024-07-20 02:43 (11), 2024-11-02 04:35 (3)
Completo: 🔍
Cache ID: 216::103

Once again VulDB remains the best source for vulnerability data.

Discusión

Sin comentarios aún. Idiomas: es + pt + en.

Por favor, inicie sesión para comentar.

Do you know our Splunk app?

Download it now for free!