Vulnerabilidad en kernel de Linux (CVE-2024-26859)
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:
17/04/2024
Última modificación:
03/03/2025
Descripción
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: net/bnx2x: impide el acceso a una página liberada en page_pool. Repara la condición de carrera que provoca un bloqueo del sistema durante el manejo de errores EEH. Durante la recuperación de errores EEH, la lógica de tiempo de espera de transmisión del controlador bnx2x podría provocar una carrera. condición al manejar tareas de reinicio. El bnx2x_tx_timeout() programa tareas de reinicio a través de bnx2x_sp_rtnl_task(), lo que finalmente conduce a bnx2x_nic_unload(). En bnx2x_nic_unload(), los SGE se liberan utilizando bnx2x_free_rx_sge_range(). Sin embargo, esto podría superponerse con el intento del controlador EEH de restablecer el dispositivo usando bnx2x_io_slot_reset(), que también intenta liberar los SGE. This race condition can result in system crashes due to accessing freed memory locations in bnx2x_free_rx_sge() 799 static inline void bnx2x_free_rx_sge(struct bnx2x *bp, 800 struct bnx2x_fastpath *fp, u16 index) 801 { 802 struct sw_rx_page *sw_buf = &fp->rx_page_ring [índice]; 803 página de estructura *página = sw_buf->página; .... donde sw_buf se configuró en NULL después de la llamada a dma_unmap_page() por el hilo anterior. EEH: Comienzo: 'slot_reset' PCI 0011:01:00.0#10000: EEH: Invocando bnx2x->slot_reset() bnx2x: [bnx2x_io_slot_reset:14228(eth1)]Reinicio de ranura IO inicializando... bnx2x 0011:01:00.0: habilitando dispositivo (0140 -> 0142) bnx2x: [bnx2x_io_slot_reset:14244(eth1)]Restablecimiento de ranura IO --> descarga del controlador El kernel intentó leer la página del usuario (0): ¿intento de explotación? (uid: 0) ERROR: Desreferencia del puntero NULL del kernel al leer en 0x00000000 Dirección de instrucción errónea: 0xc0080000025065fc Ups: Acceso al kernel del área defectuosa, firma: 11 [#1] ..... Seguimiento de llamadas: [c000000003c67a20] [c00800000250658c] 2x_io_slot_reset +0x204/0x610 [bnx2x] (no confiable) [c000000003c67af0] [c0000000000518a8] eeh_report_reset+0xb8/0xf0 [c000000003c67b60] [c000000000052130] 180/0x550 [c000000003c67c70] [c00000000005318c] eeh_handle_normal_event+0x84c/0xa60 [c000000003c67d50] [c000000000053a84] eeh_event_handler +0xf4/0x170 [c000000003c67da0] [c000000000194c58] kthread+0x1c8/0x1d0 [c000000003c67e10] [c00000000000cf64] ret_from_kernel_thread+0x5c/0x64 Para resolver este problema, necesitamos verifique las asignaciones del grupo de páginas antes de liberarlas.
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.2 (incluyendo) | 4.19.311 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 4.20 (incluyendo) | 5.4.273 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.5 (incluyendo) | 5.10.214 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (incluyendo) | 5.15.153 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (incluyendo) | 6.1.83 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (incluyendo) | 6.6.23 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (incluyendo) | 6.7.11 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.8 (incluyendo) | 6.8.2 (excluyendo) |
cpe:2.3:o:debian:debian_linux:10.0:*:*:*:*:*:*:* |
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/3a9f78b297e08ca8e88ae3ecff1f6fe2766dc5eb
- https://git.kernel.org/stable/c/44f9f1abb0ecc43023225ab9539167facbabf0ec
- https://git.kernel.org/stable/c/4f37d3a7e004bbf560c21441ca9c022168017ec4
- https://git.kernel.org/stable/c/7bcc090c81116c66936a7415f2c6b1483a4bcfd9
- https://git.kernel.org/stable/c/8eebff95ce9558be66a36aa7cfb43223f3ab4699
- https://git.kernel.org/stable/c/8ffcd3ccdbda0c918c4a0f922ef1c17010f1b598
- https://git.kernel.org/stable/c/c51f8b6930db3f259b8820b589f2459d2df3fc68
- https://git.kernel.org/stable/c/cf7d8cba639ae792a42c2a137b495eac262ac36c
- https://git.kernel.org/stable/c/d27e2da94a42655861ca4baea30c8cd65546f25d
- https://git.kernel.org/stable/c/3a9f78b297e08ca8e88ae3ecff1f6fe2766dc5eb
- https://git.kernel.org/stable/c/44f9f1abb0ecc43023225ab9539167facbabf0ec
- https://git.kernel.org/stable/c/4f37d3a7e004bbf560c21441ca9c022168017ec4
- https://git.kernel.org/stable/c/7bcc090c81116c66936a7415f2c6b1483a4bcfd9
- https://git.kernel.org/stable/c/8eebff95ce9558be66a36aa7cfb43223f3ab4699
- https://git.kernel.org/stable/c/8ffcd3ccdbda0c918c4a0f922ef1c17010f1b598
- https://git.kernel.org/stable/c/c51f8b6930db3f259b8820b589f2459d2df3fc68
- https://git.kernel.org/stable/c/cf7d8cba639ae792a42c2a137b495eac262ac36c
- https://git.kernel.org/stable/c/d27e2da94a42655861ca4baea30c8cd65546f25d
- https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html
- https://lists.debian.org/debian-lts-announce/2024/06/msg00020.html