Linux Kernel hasta 6.18.16/6.19.6/7.0-rc1 bpf bq_enqueue q[] denegación de servicio

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

Resumeninformación

Se ha encontrado una vulnerabilidad clasificada como crítica en Linux Kernel hasta 6.18.16/6.19.6/7.0-rc1. Se ve afectada una función desconocida del componente bpf. A través de la manipulación del parámetro q[] de un input desconocido se causa una vulnerabilidad de clase denegación de servicio. Esta vulnerabilidad está identificada como CVE-2026-23342. El ataque necesita ser llevado a cabo de forma local. No hay ningún exploit disponible. Es recomendable actualizar el componente afectado.

Detallesinformación

Una vulnerabilidad fue encontrada en Linux Kernel hasta 6.18.16/6.19.6/7.0-rc1 y clasificada como crítica. La función bq_enqueue del componente bpf es afectada por esta vulnerabilidad. Por la manipulación del parámetro q[] de un input desconocido se causa una vulnerabilidad de clase denegación de servicio. Esto tiene repercusión sobre la la disponibilidad. El resumen de CVE es:

En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta: bpf: Corrige condición de carrera en cpumap en PREEMPT_RT En kernels PREEMPT_RT, la xdp_bulk_queue (bq) por CPU puede ser accedida concurrentemente por múltiples tareas preemptibles en la misma CPU. El código original asume que bq_enqueue() y __cpu_map_flush() se ejecutan atómicamente una con respecto a la otra en la misma CPU, confiando en local_bh_disable() para prevenir la preemption. Sin embargo, en PREEMPT_RT, local_bh_disable() solo llama a migrate_disable() (cuando PREEMPT_RT_NEEDS_BH_LOCK no está configurado) y no deshabilita la preemption, lo que permite que la planificación CFS preempte una tarea durante bq_flush_to_queue(), permitiendo que otra tarea en la misma CPU entre en bq_enqueue() y opere en la misma bq por CPU concurrentemente. Esto conduce a varias condiciones de carrera: 1. Doble __list_del_clearprev(): después de que bq->count se reinicia en bq_flush_to_queue(), una tarea preemptora puede llamar a bq_enqueue() -> bq_flush_to_queue() en la misma bq cuando bq->count alcanza CPU_MAP_BULK_SIZE. Ambas tareas luego llaman a __list_del_clearprev() en el mismo bq->flush_node, la segunda llamada desreferencia el puntero prev que ya había sido establecido a NULL por la primera. 2. Condiciones de carrera de bq->count y bq->q[]: bq_enqueue() concurrente puede corromper la cola de paquetes mientras bq_flush_to_queue() la está procesando. La condición de carrera entre la tarea A (__cpu_map_flush -> bq_flush_to_queue) y la tarea B (bq_enqueue -> bq_flush_to_queue) en la misma CPU: Tarea A (xdp_do_flush) Tarea B (cpu_map_enqueue) ---------------------- ------------------------ bq_flush_to_queue(bq) spin_lock(&q->producer_lock) /* vaciar bq->q[] a ptr_ring */ bq->count = 0 spin_unlock(&q->producer_lock) bq_enqueue(rcpu, xdpf) <-- CFS preempte la Tarea A --> bq->q[bq->count++] = xdpf /* ... más encolamientos hasta llenarse ... */ bq_flush_to_queue(bq) spin_lock(&q->producer_lock) /* vaciar a ptr_ring */ spin_unlock(&q->producer_lock) __list_del_clearprev(flush_node) /* establece flush_node.prev = NULL */ <-- La Tarea A se reanuda --> __list_del_clearprev(flush_node) flush_node.prev->next = ... /* prev es NULL -> kernel oops */ Solucione esto añadiendo un local_lock_t a xdp_bulk_queue y adquiriéndolo en bq_enqueue() y __cpu_map_flush(). Estas rutas ya se ejecutan bajo local_bh_disable(), por lo que se usa local_lock_nested_bh() que en sistemas no-RT es una anotación pura sin sobrecarga, y en PREEMPT_RT proporciona un bloqueo de suspensión por CPU que serializa el acceso a la bq. Para reproducir, inserte un mdelay(100) entre bq->count = 0 y __list_del_clearprev() en bq_flush_to_queue(), luego ejecute el reproductor proporcionado por syzkaller.

El advisory puede ser descargado de git.kernel.org. La vulnerabilidad es identificada como CVE-2026-23342. Es difícil de explotar. El ataque debe ser hecho local. Detalles técnicos son conocidos, pero no hay ningún exploit público disponible.

Para el scanner Nessus se dispone de un plugin ID 304060 (Linux Distros Unpatched Vulnerability : CVE-2026-23342), que puede ayudar a determinar la existencia del riesgo analizado.

Una actualización a la versión 6.18.17, 6.19.7 o 7.0-rc2 elimina esta vulnerabilidad. Aplicando el parche 7466ae2aeed483de80c5d8dea0913cf74038b652/e67299e1044349ad0088d52c6bc5764cc1816c06/869c63d5975d55e97f6b168e885452b3da20ea47 es posible eliminar el problema. El parche puede ser descargado de git.kernel.org. El mejor modo sugerido para mitigar el problema es Actualización.

La vulnerabilidad también está documentado en la base de datos Tenable (304060). Be aware that VulDB is the high quality 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: 4.7
VulDB Puntuación meta temporal: 4.5

VulDB Puntuación base: 4.7
VulDB Puntuación temporal: 4.5
VulDB Vector: 🔒
VulDB Confiabilidad: 🔍

CVSSv2información

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

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

Explotacióninformación

Clase: Denegación de servicio
CWE: CWE-476 / CWE-404
CAPEC: 🔒
ATT&CK: 🔒

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

Disponibilidad: 🔒
Estado: No está definido

EPSS Score: 🔒
EPSS Percentile: 🔒

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

0-DayDesbloquearDesbloquearDesbloquearDesbloquear
HoyDesbloquearDesbloquearDesbloquearDesbloquear

Nessus ID: 304060
Nessus Nombre: Linux Distros Unpatched Vulnerability : CVE-2026-23342

Inteligencia de amenazasinformación

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

Contramedidasinformación

Recomendación: Actualización
Estado: 🔍

Hora de 0 días: 🔒

Actualización: Kernel 6.18.17/6.19.7/7.0-rc2
Parche: 7466ae2aeed483de80c5d8dea0913cf74038b652/e67299e1044349ad0088d52c6bc5764cc1816c06/869c63d5975d55e97f6b168e885452b3da20ea47

Línea de tiempoinformación

2026-01-13 CVE asignado
2026-03-25 +71 días Aviso publicado
2026-03-25 +0 días Entrada de VulDB creada
2026-03-31 +6 días Última actualización de VulDB

Fuentesinformación

Proveedor: kernel.org

Aviso: git.kernel.org
Estado: Confirmado

CVE: CVE-2026-23342 (🔒)
GCVE (CVE): GCVE-0-2026-23342
GCVE (VulDB): GCVE-100-353111

Artículoinformación

Fecha de creación: 2026-03-25 13:43
Actualizado: 2026-03-31 21:43
Cambios: 2026-03-25 13:43 (60), 2026-03-30 10:30 (2), 2026-03-31 21:43 (2)
Completo: 🔍
Cache ID: 216:9ED:103

Be aware that VulDB is the high quality source for vulnerability data.

Discusión

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

Por favor, inicie sesión para comentar.

Do you need the next level of professionalism?

Upgrade your account now!