Vulnerabilidad en kernel de Linux (CVE-2024-26813)
Gravedad CVSS v3.1:
MEDIA
Tipo:
CWE-476
Desreferencia a puntero nulo (NULL)
Fecha de publicación:
05/04/2024
Última modificación:
20/12/2024
Descripción
En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: vfio/plataforma: cree controladores IRQ persistentes. La plataforma vfio SET_IRQS ioctl actualmente permite la activación de bucle invertido de una interrupción antes de que el usuario haya configurado un evento de señalización, lo que permite un puntero NULL. desreferencia. En lugar de registrar la IRQ relativa a un activador válido, registre todas las IRQ en estado deshabilitado en la ruta abierta del dispositivo. Esto permite que las operaciones de máscara en la IRQ se aniden dentro del estado de habilitación general gobernado por una señal eventfd válida. Esto desacopla a @masked, protegido por el spinlock @locked de @trigger, protegido a través del mutex @igate. Al hacerlo, se garantiza que los cambios en @trigger no puedan competir con los controladores IRQ porque el controlador IRQ se desactiva sincrónicamente antes de modificar el disparador, y la activación en bucle invertido de la IRQ a través de ioctl es segura debido a la serialización con cambios en el disparador a través de igate. Por compatibilidad, las fallas de request_irq() se mantienen locales para el ioctl SET_IRQS en lugar de un error fatal en la ruta abierta del dispositivo. Esto permite, por ejemplo, que un controlador de espacio de usuario compatible con el modo de sondeo continúe funcionando independientemente de mover el sitio de llamada request_irq(). Esto necesariamente bloquea todo el acceso SET_IRQS al índice fallido.
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:*:*:*:*:*:*:*:* | 4.1 (incluyendo) | 5.4.274 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.5 (incluyendo) | 5.10.215 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.11 (incluyendo) | 5.15.154 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 5.16 (incluyendo) | 6.1.84 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.2 (incluyendo) | 6.6.24 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.7 (incluyendo) | 6.7.12 (excluyendo) |
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:* | 6.8 (incluyendo) | 6.8.3 (excluyendo) |
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/07afdfd8a68f9eea8db0ddc4626c874f29d2ac5e
- https://git.kernel.org/stable/c/09452c8fcbd7817c06e8e3212d99b45917e603a5
- https://git.kernel.org/stable/c/0f8d8f9c2173a541812dd750529f4a415117eb29
- https://git.kernel.org/stable/c/62d4e43a569b67929eb3319780be5359694c8086
- https://git.kernel.org/stable/c/675daf435e9f8e5a5eab140a9864dfad6668b375
- https://git.kernel.org/stable/c/7932db06c82c5b2f42a4d1a849d97dba9ce4a362
- https://git.kernel.org/stable/c/cc5838f19d39a5fef04c468199699d2a4578be3a
- https://git.kernel.org/stable/c/d6bedd6acc0bcb1e7e010bc046032e47f08d379f
- https://git.kernel.org/stable/c/07afdfd8a68f9eea8db0ddc4626c874f29d2ac5e
- https://git.kernel.org/stable/c/09452c8fcbd7817c06e8e3212d99b45917e603a5
- https://git.kernel.org/stable/c/0f8d8f9c2173a541812dd750529f4a415117eb29
- https://git.kernel.org/stable/c/62d4e43a569b67929eb3319780be5359694c8086
- https://git.kernel.org/stable/c/675daf435e9f8e5a5eab140a9864dfad6668b375
- https://git.kernel.org/stable/c/7932db06c82c5b2f42a4d1a849d97dba9ce4a362
- https://git.kernel.org/stable/c/cc5838f19d39a5fef04c468199699d2a4578be3a
- https://git.kernel.org/stable/c/d6bedd6acc0bcb1e7e010bc046032e47f08d379f
- https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html