Vulnerabilidad en kernel de Linux (CVE-2024-53088)
Gravedad CVSS v3.1:
MEDIA
Tipo:
CWE-362
Ejecución concurrente utilizando recursos compartidos con una incorrecta sincronización (Condición de carrera)
Fecha de publicación:
19/11/2024
Última modificación:
25/11/2024
Descripción
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: i40e: corregir la condición de ejecución añadiendo el estado de sincronización intermedio del filtro Corrige una condición de ejecución en el controlador i40e que provoca que los filtros MAC/VLAN se corrompan y tengan fugas. Aborda el problema que se produce bajo una carga pesada cuando varios subprocesos modifican simultáneamente los filtros MAC/VLAN configurando mac y puerto VLAN. 1. El subproceso T0 asigna un filtro en i40e_add_filter() dentro de i40e_ndo_set_vf_port_vlan(). 2. El subproceso T1 libera simultáneamente el filtro en __i40e_del_filter() dentro de i40e_ndo_set_vf_mac(). 3. Posteriormente, i40e_service_task() llama a i40e_sync_vsi_filters(), que hace referencia a la memoria del filtro ya liberada, lo que provoca la corrupción. Pasos de reproducción: 1. Generar varios VF. 2. Aplique una carga pesada simultánea ejecutando operaciones paralelas para cambiar las direcciones MAC en las VF y cambiar las VLAN de puerto en el host. 3. Observe los errores en dmesg: "Error I40E_AQ_RC_ENOSPC al agregar filtros RX en VF XX, active manualmente la promiscuidad para VF XX". Código exacto para reproducción estable Intel no puede abrir el código fuente ahora. La solución implica implementar un nuevo estado de filtro intermedio, I40E_FILTER_NEW_SYNC, para el momento en que un filtro esté en una lista tmp_add_list. Estos filtros no se pueden eliminar de la lista hash directamente, sino que se deben eliminar mediante el proceso completo.
Impacto
Puntuación base 3.x
4.70
Gravedad 3.x
MEDIA
Productos y versiones vulnerables
CPE | Desde | Hasta |
---|---|---|
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.10 (incluyendo) | 5.15.172 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (incluyendo) | 6.1.117 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (incluyendo) | 6.6.61 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (incluyendo) | 6.11.8 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:6.12:rc1:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:6.12:rc2:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:6.12:rc3:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:6.12:rc4:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:6.12:rc5:*:*:*:*:*:* | ||
cpe:2.3:o:linux:linux_kernel:6.12: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/262dc6ea5f1eb18c4d08ad83d51222d0dd0dd42a
- https://git.kernel.org/stable/c/6e046f4937474bc1b9fa980c1ad8f3253fc638f6
- https://git.kernel.org/stable/c/7ad3fb3bfd43feb4e15c81dffd23ac4e55742791
- https://git.kernel.org/stable/c/bf5f837d9fd27d32fb76df0a108babcaf4446ff1
- https://git.kernel.org/stable/c/f30490e9695ef7da3d0899c6a0293cc7cd373567