¿Qué significan esas letras del CVSS? Guía para entenderlo de una vez

Ves CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N y tu cerebro dice "sí, claro". Te explico qué significa cada letra, con analogías simples, para que nunca más tengas que adivinar.

Cada vez que sale un CVE importante, alguien pega el vector CVSS en el chat del equipo y todos hacen como que lo entienden. Spoiler: la mayoría solo mira el número (9.1 CRITICAL) e ignora el resto.

El problema es que el número solo te dice qué tan grave es. El vector te dice por qué — y eso cambia completamente cómo respondes.

Primero: ¿qué es el CVSS?

CVSS (Common Vulnerability Scoring System) es un sistema de puntuación para describir vulnerabilidades de seguridad. No solo te da un número: te da un vector, que es básicamente una descripción comprimida de cómo funciona el ataque.

Existen dos versiones que vas a ver seguido: v3.1 (la más común hoy) y v4.0 (la más nueva, más detallada). Voy a explicar las dos.

💡 La escala de puntuación
0.1–3.9 LOW  4.0–6.9 MEDIUM  7.0–8.9 HIGH  9.0–10.0 CRITICAL

La analogía del ladrón

Para entender el vector CVSS, imagina que una vulnerabilidad es como una forma de entrar a robar a una casa. El vector CVSS responde estas preguntas sobre el "robo":

🏠 Analogía
¿Desde dónde puede atacar el ladrón? ¿Desde la calle, o tiene que estar en el jardín? (Attack Vector)
¿Es difícil entrar? ¿Puerta abierta o cerradura de alta seguridad? (Attack Complexity)
¿Necesita una llave? ¿O entra sin nada? (Privileges Required)
¿Alguien tiene que abrir la puerta desde adentro? (User Interaction)
¿Qué se puede robar? Documentos, muebles, o puede romper cosas también. (Impactos: C/I/A)

CVSS v3.1 — letra por letra

Tomemos este vector real del CVE-2024-9465 (Palo Alto Expedition):

CVSS v3.1
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
Código Nombre Valor en este CVE Qué significa en palabras simples
AV:N Attack Vector — Network 🔴 Peligroso El atacante no necesita estar cerca físicamente. Puede atacar desde cualquier lugar del mundo por internet. (N=Network, A=Adjacent, L=Local, P=Physical)
AC:L Attack Complexity — Low 🔴 Peligroso El ataque es fácil de ejecutar. No requiere condiciones especiales, timing exacto ni conocimiento avanzado. Cualquiera con el exploit puede hacerlo. (L=Low, H=High)
PR:N Privileges Required — None 🔴 Peligroso El atacante no necesita ninguna cuenta ni contraseña previa. Llega, ataca, listo. (N=None, L=Low, H=High)
UI:N User Interaction — None 🔴 Peligroso Ningún usuario tiene que hacer clic en nada, abrir ningún archivo ni visitar ningún enlace. El ataque funciona solo. (N=None, R=Required)
S:U Scope — Unchanged ⚪ Neutral El impacto se queda en el sistema atacado. No "salta" automáticamente a otros sistemas. (U=Unchanged, C=Changed)
C:H Confidentiality — High 🔴 Crítico Toda la información confidencial queda expuesta: contraseñas, API keys, configuraciones. El atacante puede leer todo. (N=None, L=Low, H=High)
I:H Integrity — High 🔴 Crítico El atacante puede modificar o crear datos. En este caso, puede escribir archivos arbitrarios en el sistema. (N=None, L=Low, H=High)
A:N Availability — None 🟢 Sin impacto El atacante no puede tirar el sistema. El servicio sigue disponible mientras lo explotan en silencio. (N=None, L=Low, H=High)
⚠️ Cómo leer el resultado
AV:N + AC:L + PR:N + UI:N en el mismo vector = "cualquier persona en internet, sin esfuerzo, sin cuenta, sin ayuda de nadie" puede ejecutar el ataque. Eso, combinado con C:H, es la peor combinación posible para datos confidenciales.

CVSS v4.0 — ¿qué cambia?

La versión 4.0 es más nueva y más detallada. Divide el impacto en dos partes: el sistema directamente atacado (Vulnerable System) y otros sistemas que podrían verse afectados (Subsequent System).

CVSS v4.0
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:L/VA:N/SC:H/SI:N/SA:N
Código Nombre Valor Qué significa
AV:N Attack Vector — Network 🔴 Igual que en v3.1: ataque desde internet, sin estar cerca.
AC:L Attack Complexity — Low 🔴 Fácil de ejecutar, sin condiciones especiales.
AT:N Attack Requirements — None 🔴 Nuevo en v4.0. El ataque no depende de ninguna condición externa que no controle el atacante (como que haya sesiones activas o configuraciones específicas). (N=None, P=Present)
PR:N Privileges Required — None 🔴 Sin cuenta, sin autenticación.
UI:N User Interaction — None 🔴 Nadie tiene que hacer nada para que el ataque funcione.
VC:H Vulnerable System Confidentiality — High 🔴 El sistema atacado (Expedition): toda su información queda expuesta. Hashes, configs, API keys.
VI:L Vulnerable System Integrity — Low 🟡 El sistema atacado: el atacante puede modificar algunos datos, pero no tiene control total de escritura. Impacto parcial en integridad.
VA:N Vulnerable System Availability — None 🟢 El sistema atacado: sigue funcionando. No hay denegación de servicio.
SC:H Subsequent System Confidentiality — High 🔴 Otros sistemas (los firewalls PAN-OS): como las API keys quedan expuestas, los firewalls también quedan comprometidos en confidencialidad. El daño se propaga.
SI:N Subsequent System Integrity — None 🟢 Otros sistemas: el atacante no puede modificar datos en los firewalls directamente a través de este vector.
SA:N Subsequent System Availability — None 🟢 Otros sistemas: no puede tumbar los firewalls con este ataque.
💡 La gran mejora de v4.0
v4.0 separa el impacto en VC/VI/VA (sistema directamente atacado) y SC/SI/SA (sistemas que se ven afectados después). En este CVE, eso es clave: Expedition tiene SC:H porque las API keys expuestas comprometen los firewalls. v3.1 no capturaba bien ese efecto en cadena.

Resumen visual: cómo leer un vector rápido

CVSS:3.1 / AV:? / AC:? / PR:? / UI:? / S:? / C:? / I:? / A:?
          │       │       │       │       │     │      │     └─ ¿Se cae el servicio?
          │       │       │       │       │     │      └──────── ¿Puede modificar datos?
          │       │       │       │       │     └─────────────── ¿Puede leer datos privados?
          │       │       │       │       └───────────────────── ¿El daño se propaga a otros sistemas?
          │       │       │       └───────────────────────────── ¿Alguien tiene que hacer clic?
          │       │       └───────────────────────────────────── ¿Necesita cuenta o contraseña?
          │       └───────────────────────────────────────────── ¿Es difícil ejecutarlo?
          └───────────────────────────────────────────────────── ¿Desde dónde puede atacar?

Valores de riesgo (de mayor a menor):
  N (None) / H (High) = 🔴  →  Peor escenario
  L (Low)             = 🟡  →  Impacto parcial
  N (None en impacto) = 🟢  →  Sin efecto en esa categoría

La frase que resume todo

Cuando veas un vector como el de CVE-2024-9465, tradúcelo a una sola frase antes de enviarlo al equipo:

📝 Traducción al español
"Cualquier persona en internet puede atacar este sistema sin credenciales ni ayuda de nadie, y obtener acceso completo a todos los datos confidenciales, incluyendo las llaves de tus firewalls."

Eso es lo que dice el vector. Ahora sí sabes por qué tiene un 9.2.

Conclusión

El número CVSS te dice si debes preocuparte. El vector te dice cómo preocuparte. AV:N/AC:L/PR:N/UI:N juntos es lo más peligroso que existe: fácil, remoto y sin depender de nadie. Cuando lo veas así, actúa primero y analiza después.

✅ Regla práctica
Si los primeros 4 campos son AV:N / AC:L / PR:N / UI:N — el atacante puede ser cualquier persona en internet, atacando sin esfuerzo, sin cuenta y sin ayuda. Parchea hoy.