"CVSS 10.0" y "un RCE con CVSS 9.8" aparecen en casi todos los titulares sobre vulnerabilidades. Estos números no están inventados: salen de un conjunto definido de métricas y una fórmula. Aquí tienes cómo leerlos, desde cero.
La guía de puntuación
| Puntuación | Rango | Sensación |
|---|---|---|
| 9.0 – 10.0 | Crítica | Actúa ya; a menudo de clase "secuestro" |
| 7.0 – 8.9 | Alta | Atiéndelo pronto |
| 4.0 – 6.9 | Media | Planifícalo |
| 0.1 – 3.9 | Baja | Mantenlo vigilado |
Si un CVE es el nombre de una vulnerabilidad, CVSS es su puntuación de gravedad. "Un RCE con CVSS 10.0" significa una ejecución remota de código de máxima clasificación: la peor clase.
La rúbrica de puntuación de CVSS
Una puntuación CVSS se construye a partir de tres grupos de métricas. Lo que se publica como "CVE-XXXX es 9.8" es casi siempre la puntuación Base.
Base
La vulnerabilidad en sí. El valor publicado.
Threat
Ajustada con el tiempo por la disponibilidad de exploits.
Environmental
Recalculada para tu propia configuración y prioridades.
① Explotabilidad
② Impacto
La puntuación Base es, a grandes rasgos, "① lo fácil que es explotar" × "② lo grande que es el impacto". Las dos tablas siguientes son esas métricas.
① Explotabilidad (con qué facilidad se puede atacar)
| Métrica | Valores | Peor caso (sube la puntuación) |
|---|---|---|
| Vector de ataque (AV) | Red / Adyacente / Local / Físico | Red (por internet) es lo más peligroso |
| Complejidad del ataque (AC) | Baja / Alta | Baja (sin condiciones especiales) es peligrosa |
| Privilegios requeridos (PR) | Ninguno / Bajos / Altos | Ninguno (sin necesidad de iniciar sesión) es peligroso |
| Interacción del usuario (UI) | Ninguna / Requerida | Ninguna (la víctima no hace nada) es peligrosa |
② Impacto (qué pasa si tiene éxito)
CIA = los tres pilares de la seguridad: Confidencialidad, Integridad, Disponibilidad.
| Métrica | Valores | "Alto" significa |
|---|---|---|
| Alcance (S) | Sin cambio / Con cambio | Con cambio = la brecha cruza su frontera de privilegio original |
| Confidencialidad (C) | Alta / Baja / Ninguna | los datos se pueden leer por completo |
| Integridad (I) | Alta / Baja / Ninguna | los datos se pueden alterar libremente |
| Disponibilidad (A) | Alta / Baja / Ninguna | el servicio se puede detener por completo |
'Alcance: Con cambio' es lo que empuja la puntuación hacia arriba
Por ejemplo, un daño confinado dentro de un contenedor (Sin cambio) frente a uno que se propaga desde ahí al host u otros servicios (Con cambio). Que cruce esa frontera mueve mucho la puntuación en condiciones por lo demás idénticas.
La cadena de vector: el desglose de la puntuación en una línea
Toda puntuación CVSS viene con una cadena de vector: un registro de qué métricas se eligieron, es decir, la razón del número.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H → 10.0 (Crítica)Desglosada, todo está puesto en "lo más peligroso":
| Segmento | Significado | Este ejemplo |
|---|---|---|
AV:N | Vector de ataque = Red | alcanzable por internet |
AC:L | Complejidad del ataque = Baja | fácil de lograr |
PR:N | Privilegios requeridos = Ninguno | sin autenticación |
UI:N | Interacción del usuario = Ninguna | sin acción de la víctima |
S:C | Alcance = Con cambio | cruza la frontera |
C:H / I:H / A:H | CIA = todo Alto | leído, escrito y detenido |
Qué separa un 10.0 de un 9.8
Pon el Alcance en "Sin cambio" (S:U) en ese ejemplo y las mismas condiciones puntúan 9.8. Que cruce la frontera (S:C) es lo que alcanza el máximo 10.0. Así que 9.8 vs 10.0 = "ambos de la peor clase, pero el daño se extiende un paso más".
v3.1 vs v4.0: ahora mismo ambas están en circulación
La versión actual es v4.0 (2023), pero la mayoría de CVE todavía se puntúan con v3.1 (2019), así que las dos coexisten por ahora.
| CVSS v3.1 | CVSS v4.0 | |
|---|---|---|
| Lanzada | 2019 | 2023 |
| Notación | puntuación + vector | CVSS-B / BT / BE / BTE, propósito explícito |
| Interacción del usuario | Ninguna / Requerida (2) | Ninguna / Pasiva / Activa (3) |
| Alcance | Alcance (S), una métrica | divide el impacto en "sistema vulnerable" y "sistema posterior" |
| Extras | ninguno | añade métricas suplementarias (automatizable, recuperación, seguridad física…) |
Ejemplos: puntuaciones reales de vulnerabilidades conocidas
Estas son las puntuaciones reales que figuran en NVD. Muestran que el número no siempre coincide con el daño real, y que la puntuación puede cambiar según el evaluador o la versión de CVSS.
| Vulnerabilidad | CVSS v3.1 | Rasgos del vector | Qué muestra |
|---|---|---|---|
| Log4Shell (CVE-2021-44228) | 10.0 Crítica | todas las métricas en su peor valor, S:C | Un 10.0 de manual, dentro de un componente muy usado |
| Apache Struts (CVE-2017-5638) | 9.8 Crítica | S:U (alcance sin cambio) | 10.0 con la antigua v2: la versión cambia el número |
| Un fallo de un dispositivo VPN (CVE-2018-13379) | NVD 9.8 / fabricante del producto 9.1 | los evaluadores valoran distinto la integridad I | Mismo CVE, distinta puntuación según la fuente; señalado como punto de entrada en el incidente del Hospital de Handa (en inglés) |
| Heartbleed (CVE-2014-0160) | 7.5 Alta | solo confidencialidad C:H, sin manipulación ni caída | No es Crítica y aun así fue un incidente grave que podía exponer claves privadas |
Las cuatro figuran en el catálogo de la CISA de EE. UU. de vulnerabilidades que se sabe que se explotan (KEV). Heartbleed, con 7.5, también se explotó: por eso la puntuación por sí sola no te dice que algo puede esperar.
Qué comprobar además de la puntuación
La rúbrica hace a CVSS potente. Pero la puntuación es un valor teórico del peor caso. En la práctica, multiplícala por dos factores.
Comprueba si se está explotando (KEV)
Las vulnerabilidades observadas bajo ataque real (KEV — Known Exploited Vulnerabilities) son máxima prioridad independientemente de la puntuación. "Que te estén atacando ahora" pesa más que el número teórico.
Comprueba si usas la función afectada
Un CVSS 10.0 tiene poco impacto real si no usas el componente; una puntuación media es máxima prioridad si lo tocas en producción. Juzga por la versión que realmente se ejecuta.
Un CVSS 10.0 público desestimado como "no es mi problema" condujo a un incidente de facturación fraudulenta. Una puntuación nunca es una razón para desatender. → El CVSS 10.0 desatendido
Cómo comprobar tu propia configuración
Busca los CVE y las puntuaciones de lo que usas
Revisa los avisos de seguridad del proveedor, NVD o JVN (en inglés y japonés). Si tienes el identificador de un CVE, la herramienta CVE / KEV Lookup de este sitio muestra CVSS, EPSS y KEV en un solo lugar.
Lee el vector y pregúntate si te afecta
Aunque sea AV:N (por la red), el riesgo baja si la función no está expuesta a internet. Con PR:L (requiere iniciar sesión), comprueba quién puede iniciar sesión. Pega un vector en la Calculadora CVSS y lectura del vector para ver qué significa cada parte.
Deja que una máquina cruce tus dependencias
Para tu propia aplicación web, analiza el lockfile con el Escáner de vulnerabilidades de dependencias o con Dependabot para listar los CVE que coinciden y sus puntuaciones. Es más fiable que seguirlo todo a ojo.
Fuentes (primarias)
- FIRST, «CVSS v3.1 Specification Document» — first.org (métricas y niveles de gravedad; en inglés)
- FIRST, «CVSS v4.0 Specification Document» — first.org (en inglés)
- NIST NVD, «CVE-2014-0160» — nvd.nist.gov (las puntuaciones y vectores de CVE-2021-44228, CVE-2017-5638 y CVE-2018-13379 se comprobaron del mismo modo en sus páginas de NVD; en inglés)
- CISA, «Known Exploited Vulnerabilities Catalog» — cisa.gov (en inglés)
- FIRST, «Exploit Prediction Scoring System (EPSS)» — first.org (en inglés)
Sigue leyendo
- Decidir: Qué CVE parchear primero: CVSS, EPSS y KEV
- Herramienta: Calculadora CVSS y lectura del vector (pega un vector y verás la puntuación y el significado de cada métrica)
- Glosario: Qué es un CVE · Qué es RCE
- Defensa: Integra CVE/CVSS en tu flujo de trabajo