Saltar al contenido

Cómo leer un CVE: CVSS, EPSS y la lista KEV, y por qué el 9.8 no siempre es lo urgente

    Cómo leer un CVE:

    CVSS, EPSS y la lista KEV, y por qué el 9.8 no siempre es lo urgente

    Cultura y contexto  |  unfantasmaenelsistema.com

    Sale un boletín de seguridad, alguien lo reenvía con la etiqueta «CRÍTICO 9.8» y de repente hay prisa por parchear algo que quizá ni siquiera está expuesto. Al mismo tiempo, en la misma lista de vulnerabilidades pendientes, hay un CVE con puntuación 7.5 que se está explotando de forma masiva desde hace una semana y que nadie ha mirado. El número grande manda sobre la atención, y ese es justo el error que lleva a los equipos a parchear en el orden equivocado.

    Un CVE no es una nota de gravedad: es un identificador y una ficha con varias señales, cada una diseñada para responder a una pregunta distinta. CVSS estima el daño potencial si la vulnerabilidad se explota. EPSS estima la probabilidad de que alguien la explote pronto. La lista KEV de CISA dice si ya se está explotando de verdad, ahí fuera. Este artículo explica qué mide cada una, qué no mide, y cómo combinarlas para decidir qué va primero.

    Qué aprenderás en este artículo

    Qué partes tiene un registro CVE y quién las rellena (CNA, MITRE, NVD) · Qué mide CVSS de verdad y por qué la puntuación base no es «el riesgo» · Qué aporta EPSS: la probabilidad de explotación a 30 días, y que cambia a diario · Qué es el catálogo KEV de CISA y por qué es el mejor filtro de urgencia disponible · Una receta práctica de priorización: KEV, luego exposición, luego EPSS, luego CVSS

    1. Qué es exactamente un CVE

    CVE (Common Vulnerabilities and Exposures) es un catálogo público de vulnerabilidades conocidas, coordinado por MITRE y patrocinado por CISA. Su función original es modesta pero esencial: dar a cada fallo un identificador único y estable —del tipo CVE-2024-3094— para que todo el mundo (fabricantes, escáneres, prensa, tu hoja de seguimiento) hable de la misma cosa sin ambigüedad.

    Los identificadores no los asigna una oficina central. Los reparten las CNA (CVE Numbering Authorities): más de trescientas organizaciones —Microsoft, Red Hat, Google, GitHub, el propio INCIBE-CERT, etc.— autorizadas a numerar vulnerabilidades en su propio software o en su ámbito. MITRE actúa como CNA raíz para lo que no cubre nadie más.

    1.1 Estados de un registro

    • Reserved: la CNA ha pedido el número pero aún no hay detalles públicos. Verás el ID sin descripción durante días o semanas
    • Published: el registro tiene descripción, versiones afectadas y referencias. Es el estado normal
    • Rejected: el CVE se anuló (duplicado, no era una vulnerabilidad real). El número no se reutiliza

    1.2 Campos que conviene mirar siempre

    • Descripción: qué componente falla, qué tipo de fallo y en qué condiciones
    • CWE: la categoría de debilidad (p. ej. CWE-89 inyección SQL, CWE-416 use-after-free). Dice el «tipo» de bug
    • CPE: la lista formal de productos y versiones afectadas, en un formato que los escáneres entienden
    • Referencias: aviso del fabricante, parche, prueba de concepto, análisis. Aquí está el 90 % del contexto útil

    2. Dónde vive la información (y por qué hay varias fuentes)

    El registro CVE «oficial» lo publica cve.org (MITRE). A partir de ahí, el NVD (National Vulnerability Database, del NIST) lo enriquece: le añade la puntuación CVSS, el CWE y los CPE normalizados. Durante 2024 el NVD acumuló un retraso importante en ese enriquecimiento, así que hoy es habitual encontrar CVE publicados sin CVSS del NVD durante semanas.

    Por eso conviene no depender de una sola fuente. El aviso del fabricante suele salir antes y con más matices que el NVD (a veces con su propia puntuación CVSS, que puede no coincidir). En España, INCIBE-CERT publica avisos en castellano con nivel de criticidad y productos afectados, útiles para pymes. Y para la parte de «¿esto se está explotando?» la referencia es el catálogo KEV, que se ve más adelante.

    La misma vulnerabilidad, puntuaciones distintas

    No es raro que el fabricante puntúe un CVE con 7.2 y el NVD con 9.8, o al revés. Cada uno evalúa el vector con supuestos diferentes sobre configuración y contexto · Cuando cites una puntuación, di de dónde sale: «CVSS 8.1 según el aviso de Fortinet» es información; «es un 8.1» a secas, no

    3. CVSS: gravedad potencial, no riesgo real

    CVSS (Common Vulnerability Scoring System) traduce las características técnicas de una vulnerabilidad a un número del 0 al 10. La versión más extendida sigue siendo la 3.1; la 4.0 (noviembre de 2023) va ganando terreno. Lo que casi todo el mundo llama «el CVSS» es solo el grupo de métricas base: las que no cambian con el tiempo ni con tu entorno.

    3.1 Las métricas base

    MétricaQué describeValores
    Attack Vector (AV)Desde dónde se explotaRed / Adyacente / Local / Físico
    Attack Complexity (AC)Si hacen falta condiciones especialesBaja / Alta
    Privileges Required (PR)Qué permisos necesita el atacante antesNinguno / Bajos / Altos
    User Interaction (UI)Si hace falta que una víctima haga algoNinguna / Requerida (v4: Pasiva/Activa)
    Scope / Subsequent (S)Si el impacto salta a otro componenteSin cambio / Cambiado
    C / I / AImpacto en confidencialidad, integridad y disponibilidadNinguno / Bajo / Alto

    El resultado se resume en una cadena de vector como CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H, que da 9.8. Leer el vector dice mucho más que el número: AV:N + PR:N + UI:N significa «desde internet, sin credenciales y sin engañar a nadie», que es el perfil de lo que se explota en masa.

    3.2 Los grupos que casi nadie usa

    • Temporal (v3.1) / Threat (v4.0): ajusta la base según si existe exploit público y si hay parche. Baja la puntuación cuando aún no hay código de explotación
    • Ambiental: reescala según tu entorno —¿ese sistema es crítico?, ¿está aislado?—. Es la parte que convierte una puntuación genérica en algo parecido a tu riesgo, y casi nadie la rellena
    • Suplementario (v4.0): contexto extra (seguridad física, automatizable, recuperación) que no altera el número pero informa la decisión

    Por qué el CVSS base no debe ordenar tu cola de parcheo

    Mide el daño que haría si se explota, asumiendo el peor caso de configuración. No dice si hay exploit, ni si el activo está expuesto, ni si le importa a alguien atacarte · La escala está sesgada hacia arriba: en la práctica la mayoría de CVE «que importan» caen entre 7 y 10, así que el 9.8 discrimina poco · Un 9.8 en una librería que no llega a estar accesible puede esperar detrás de un 7.5 que está en la lista KEV

    4. EPSS: la probabilidad de que la exploten pronto

    EPSS (Exploit Prediction Scoring System), mantenido por FIRST, responde a otra pregunta: ¿cuál es la probabilidad de que esta vulnerabilidad registre actividad de explotación en los próximos 30 días?. Es un modelo estadístico que cruza decenas de señales —familia de producto, presencia en exploit-db o Metasploit, menciones, código publicado en GitHub, tráfico de escaneo observado— y devuelve dos cifras:

    • Un score de 0 a 1: 0,04 es un 4 % de probabilidad; 0,97 es un 97 %
    • Un percentil: qué posición ocupa frente a todos los demás CVE. Percentil 0,88 significa que ese CVE es más «probable» que el 88 % del catálogo

    Dos propiedades cambian cómo se usa. Primero, EPSS se recalcula a diario: un CVE puede pasar de 0,05 a 0,80 el día que aparece un exploit fiable, así que no es un valor que anotas una vez. Segundo, la distribución es muy asimétrica: más del 90 % de los CVE tienen EPSS por debajo de 0,10. Un umbral habitual para «esto merece atención» es EPSS ≥ 0,10 o percentil ≥ 0,95, ajustado a la capacidad del equipo.

    # Consultar el EPSS de un CVE (API publica de FIRST, solo lectura)
    curl -s 'https://api.first.org/data/v1/epss?cve=CVE-2024-3094' | jq '.data[0]'
     
    # Los N CVE con mayor EPSS ahora mismo
    curl -s 'https://api.first.org/data/v1/epss?order=!epss&limit=20' | \
      jq -r '.data[] | [.cve, .epss, .percentile] | @tsv'

    5. KEV: la que ya se está explotando

    El catálogo KEV (Known Exploited Vulnerabilities) lo publica CISA desde 2021. Su regla de entrada es estricta: solo se añade un CVE si hay evidencia fiable de explotación activa en el mundo real y existe una mitigación clara. No es una predicción como EPSS: es una confirmación.

    Para las agencias federales de EE. UU. cada entrada trae una fecha límite de corrección obligatoria. Para el resto, KEV funciona como el mejor filtro de urgencia disponible y gratuito: si un CVE de tu parque está en KEV, deja de ser una discusión sobre puntuaciones y pasa a ser trabajo pendiente para hoy. El catálogo se descarga entero en JSON o CSV y se cruza con tu inventario en un script.

    # Descargar el catalogo KEV y cruzarlo con una lista propia de CVE
    curl -s https://www.cisa.gov/sites/default/files/feeds/known_exploited_vulnerabilities.json \
      -o kev.json
     
    # mis_cves.txt = un CVE por linea, sacado de tu escaner
    jq -r '.vulnerabilities[].cveID' kev.json | sort > kev_ids.txt
    sort -u mis_cves.txt | comm -12 - kev_ids.txt
    # -> los CVE que tienes Y estan confirmados como explotados

    6. Combinar las tres señales

    Ninguna de las tres, por separado, ordena bien la cola. Juntas sí. Cada una responde a una pregunta diferente y el orden en que las aplicas importa.

    SeñalPregunta que respondeEscalaFuenteSe actualiza
    CVSS base¿Cuánto daño haría si la explotan?0-10NVD / fabricanteCasi nunca
    EPSS¿Qué probabilidad hay de que la exploten pronto?0-1 + percentilFIRSTA diario
    KEV¿Se está explotando ya, ahí fuera?Sí / NoCISAVarias veces por semana
    Exposición¿Ese activo es alcanzable y a alguien le importa?Contexto propioTu inventarioContinuo

    6.1 Una receta de priorización

    • Paso 1 — KEV: ¿está en el catálogo KEV? Si sí, va arriba del todo, sin más debate
    • Paso 2 — Exposición: ¿el activo afectado está expuesto a internet o a usuarios no fiables, y sigue en uso? Un CVE gravísimo en un servicio apagado no es una emergencia
    • Paso 3 — EPSS: entre lo que queda, prioriza EPSS alto (≥ 0,10 o percentil ≥ 0,95). Es donde es probable que aparezca explotación aunque aún no esté en KEV
    • Paso 4 — CVSS: úsalo para desempatar y para dimensionar el impacto (¿esto es RCE de root o una fuga de metadatos?), no para ordenar la lista entera
    • Revisa EPSS y KEV cada pocos días: un CVE que hoy es prioridad baja puede subir mañana

    6.2 Ejemplo con una lista real

    Cinco CVE detectados por el escáner el mismo día. Ordenados solo por CVSS, se parchearía primero el de arriba. Con las tres señales, el orden cambia:

    CVE (ejemplo)CVSSEPSS¿KEV?ExpuestoPrioridad real
    A — RCE en gestor de contenidos9.80.02NoNo (intranet)3ª — vigilar EPSS
    B — auth bypass en VPN perimetral7.50.91SíSí1ª — hoy
    C — deserialización en API pública8.10.34NoSí2ª — esta semana
    D — XSS en panel interno6.10.01NoNo5ª — ciclo normal
    E — DoS en librería de logging7.50.05NoParcial4ª — siguiente ventana

    El CVE A, con la puntuación más alta, cae al tercer puesto: no hay exploit probable, no está en KEV y el sistema no es alcanzable desde fuera. El B, un 7.5, es la emergencia: explotación confirmada, EPSS del 91 % y en el perímetro. Esa inversión respecto al orden por CVSS es justo el motivo de leer las tres señales.

    7. De dónde sacar cada dato

    NecesitasFuente principalAlternativas
    Ficha del CVE (descripción, CPE, CWE)nvd.nist.gov · cve.orgAviso del fabricante
    CVSSNVD (API 2.0)Aviso del fabricante (puede diferir)
    EPSSapi.first.org/data/v1/epssFeed diario CSV de FIRST
    KEVcisa.gov/known-exploited-vulnerabilities-catalogFeed JSON / CSV
    Avisos en castellanoincibe-cert.es/alerta-temprana/avisos-seguridadCCN-CERT (sector público)
    ¿Hay exploit público?Referencias del propio CVEExploit-DB, GitHub, marco del fabricante

    La mayoría de escáneres de vulnerabilidades y plataformas de gestión ya incorporan EPSS y KEV junto al CVSS. Si el tuyo no lo hace, cruzar los dos feeds con un script diario contra la lista de hallazgos es media hora de trabajo y cambia por completo el orden de la cola.

    SSVC: si quieres formalizar la decisión

    CISA y la Universidad Carnegie Mellon publican SSVC (Stakeholder-Specific Vulnerability Categorization): un árbol de decisión que combina estado de explotación, exposición y impacto en misión para clasificar cada CVE como «Track / Track* / Attend / Act» · Es la versión estructurada de la receta de la sección 6, útil cuando hace falta justificar por qué un 9.8 se dejó para más tarde

    Conclusión

    Un CVE es un identificador con una ficha, no un veredicto de urgencia. El número CVSS que aparece en los titulares mide una sola cosa —el daño potencial en el peor caso— y lo hace en una escala tan comprimida que apenas distingue entre lo grave y lo gravísimo.

    La decisión de qué parchear primero sale de cruzar cuatro preguntas: ¿se está explotando ya (KEV)?, ¿es alcanzable en mi entorno (exposición)?, ¿es probable que aparezca explotación (EPSS)? y, solo al final, ¿cuánto dolería (CVSS)? Ese orden, y no el del número grande, es el que hace que el esfuerzo de parcheo caiga donde de verdad reduce riesgo.

    Referencias

    FIRST — CVSS v3.1 y v4.0: first.org/cvss (calculadora y especificación) · FIRST — EPSS: first.org/epss (modelo, datos y API) · CISA — Known Exploited Vulnerabilities Catalog: cisa.gov/known-exploited-vulnerabilities-catalog · NVD — nvd.nist.gov · CVE Program — cve.org · INCIBE-CERT — Avisos de seguridad: incibe-cert.es/alerta-temprana/avisos-seguridad · CISA / CMU SEI — SSVC: cisa.gov/ssvc

    unfantasmaenelsistema.com | Seguridad, sistemas y todo lo que no debería funcionar (pero funciona)

    Etiquetas:
    Resumen de privacidad

    Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.