← Volver a artículos
Seguridad· 6 min de lectura· David Carrero Fernández-Baillo

La avalancha de CVE del kernel Linux: cómo trabaja su CNA y por qué hay más de 18.000

Página «CVEs» de la documentación del kernel Linux en docs.kernel.org, con los apartados Process y Disputes of assigned CVEs y el párrafo que explica que el equipo asigna un CVE a cualquier corrección que identifica
Captura: docs.kernel.org (3-nov-2026)

Quien vigile las alertas de seguridad de un servidor Linux lo habrá notado: cada semana aparecen decenas de CVE nuevos del kernel, muchos con descripciones que parecen simples correcciones de errores. No es una impresión. Desde que el proyecto se convirtió en CVE Numbering Authority (CNA) en febrero de 2024, el equipo que asigna los identificadores aplica una política deliberadamente amplia, y los números se han disparado.

Por qué el kernel se hizo CNA

Una CNA es una organización autorizada por el programa CVE para asignar identificadores a las vulnerabilidades de su ámbito. Antes de 2024, cualquier CNA externa (una empresa, un investigador a través de MITRE) podía registrar un CVE contra el kernel sin pasar por sus desarrolladores. La documentación oficial del proceso, Documentation/process/cve.rst, lo explica sin rodeos: los CVE del kernel «se asignaban muy a menudo de forma inapropiada y por razones inapropiadas», y los «abusos de individuos y empresas ajenos a la comunidad» dejaron claro que el control de esas asignaciones debía estar en manos del propio proyecto.

Greg Kroah-Hartman, responsable de las ramas estables, lo anunció en su blog el 13 de febrero de 2024 con la entrada «Linux is a CNA». Ahí reconoce que considera el sistema CVE «roto en muchos aspectos», pero ve el cambio como una forma de asumir responsabilidad y prepararse para las leyes que empiezan a exigir a los proyectos de código abierto que gestionen sus vulnerabilidades. Cita a curl y Python como proyectos que dieron el mismo paso por las mismas razones.

Desde entonces, la documentación establece que un CVE asignado por otra organización a una versión soportada del kernel no debe considerarse válido, y que solo los mantenedores del subsistema afectado pueden disputar o modificar uno.

Un CVE para casi cada corrección

La clave está en un párrafo de cve.rst. Por la posición del kernel en el sistema, «casi cualquier fallo podría explotarse para comprometer su seguridad», pero esa posibilidad rara vez es evidente cuando se corrige. Por eso el equipo es «excesivamente cauto» y asigna un CVE a cualquier corrección que identifique. La propia documentación admite que esto explica «el número aparentemente grande de CVE» que emite.

Hay otras reglas que conviene conocer:

  • Los CVE se asignan solo cuando la corrección ya está en un kernel estable, y se identifican por el commit original. Nada de CVE para fallos sin parche, salvo que alguien pida uno reservado escribiendo a [email protected].
  • No se asignan CVE a versiones que ya no mantiene el equipo de estables y LTS. Hoy son la 7.3 y las longterm 6.18, 6.12, 6.6, 6.1, 5.15 y 5.10, según kernel.org.
  • Los fallos que solo existen en el kernel parcheado de una distribución corresponden a esa distribución, no al CNA del kernel.
  • Decidir si un CVE afecta a un sistema concreto es cosa de quien lo usa. El texto lo dice así: «no conocemos tu caso de uso ni qué partes del kernel utilizas».

Cada asignación se publica en la lista linux-cve-announce y queda registrada en el repositorio vulns.git de kernel.org.

Los números, contados en el repositorio

El repositorio guarda un directorio por CVE publicado en cve/published/, con el registro JSON, el aviso enviado a la lista y el fichero .dyad, que indica en qué versiones apareció el fallo y en cuáles se corrigió. Contando cuándo entró cada registro en el historial de git (datos a 2 de noviembre de 2026, solo los que siguen publicados):

Año CVE publicados
2024 (desde febrero) 4.287
2025 5.675
2026 (hasta el 2 de noviembre) 8.228
Total 18.190

Otros 324 se han rechazado después de asignarse. El ritmo de 2026 casi dobla al del año anterior, con agosto (1.643) y septiembre (2.112) como los meses más intensos de la serie; el repositorio no explica el motivo del salto. Si se cuenta por el año del identificador en lugar de por la fecha de publicación, salen 3.064 CVE-2024, 2.667 CVE-2025 y 7.971 CVE-2026, más 4.488 con identificadores de 2019 a 2023 que corresponden a correcciones antiguas catalogadas a posteriori, sobre todo en 2024.

Las críticas y el efecto en las distribuciones

El problema práctico es evidente: muchas herramientas de cumplimiento y escáneres de vulnerabilidades tratan cada CVE como algo que hay que revisar, documentar y cerrar. Con cientos de avisos al mes, un equipo de seguridad de empresa no puede analizar uno por uno, y las distribuciones con kernels de soporte largo tienen que decidir cuáles afectan a sus versiones y cuáles no. Durante mucho tiempo los registros del CNA tampoco llevaban puntuación de gravedad, lo que obligaba a cada distribución a calcular la suya.

Eso último ha cambiado en parte: desde abril de 2026 el repositorio incluye una herramienta para asignar puntuaciones CVSS 3.1, y 6.562 CVE publicados ya tienen su fichero .cvss con la justificación de cada métrica.

La postura del equipo del kernel no ha cambiado: lo recomendable es aplicar todas las correcciones de una versión estable, porque se prueban juntas, y no escoger parches sueltos. La documentación añade que algunas correcciones relevantes pueden no tener CVE, porque el equipo no siempre las detecta.

Cómo gestionarlo como administrador

  • Sigue el kernel estable o LTS de tu distribución y actualiza con su ritmo. Es lo que propone el propio kernel: tomar la versión completa en vez de evaluar CVE a CVE. Los boletines de la distribución, como los USN del kernel de Ubuntu, ya hacen ese filtrado por ti.
  • Reserva el análisis individual para lo que importa: fallos con explotación pública o que tocan componentes que realmente usas. Casos como Copy Fail o Dirty Frag sí merecen atención inmediata y, a veces, una mitigación temporal.
  • Usa las herramientas del repositorio vulns.git. bippy es la que genera los registros JSON y los avisos, y dyad calcula los pares de versión vulnerable y corregida a partir de un commit; son más útiles para entender cada registro que para el día a día. Para comprobar una versión concreta resulta más práctico strak, que lista los CVE que siguen sin corregir en un commit o versión dada, y cve_search, que relaciona un commit con su CVE y al revés. Todas necesitan un clon local del árbol estable del kernel.
  • Desactiva lo que no uses. Muchos CVE afectan a controladores o protocolos que en un servidor nunca se cargan; poner en lista negra esos módulos reduce de verdad la superficie de ataque.

Las versiones mantenidas del kernel y sus fechas están en la ficha de Linux.

Fuentes: Documentation/process/cve.rst; repositorio vulns.git del CNA del kernel (recuento propio a 2-nov-2026); archivo de linux-cve-announce; «Linux is a CNA», de Greg Kroah-Hartman; versiones mantenidas en kernel.org.