Hablar de vulnerabilidades es hablar de uno de los pilares de la ciberseguridad ya que son la puerta de entrada para muchas amenazas. Entender cómo funcionan, cómo se detectan y por qué siguen vigentes es clave para cualquier estrategia de seguridad.

En América Latina, esto no es solo teoría: año tras año, informes como el ESET Security Report muestran que dentro del top 5 de vulnerabilidades más detectadas siguen apareciendo fallas descubiertas hace más de una década.

Esto refleja una realidad concreta y urgente: todavía hay mucho camino por recorrer en términos de actualización, monitoreo y conciencia.

Por eso, este glosario busca ordenar y explicar los conceptos más importantes del mundo de las vulnerabilidades en varias categorías. Esta guía está pensada para quienes trabajan en seguridad, están empezando a interesarse y para aquellos que toman decisiones y necesitan comprender el panorama con claridad.

Conceptos generales

En esta sección, nos centraremos en conceptos de uso cotidiano que suelen verse en noticias, comunicados y manuales de implementación generales. Son las definiciones vitales para iniciarse en este mundo.

Vulnerabilidad

Es una falla o debilidad en una pieza de software que puede ser aprovechada por un atacante para comprometer el sistema. Puede tratarse de una falla en el desarrollo o una mala configuración. Las vulnerabilidades, aunque no son amenazas, pueden el caldo de cultivo perfecto para que una pieza de software sea el punto de entrada para los ciberdelincuentes.

Parche

Es el mecanismo más útil para corregir una vulnerabilidad, aunque a veces el más olvidado. Es una actualización o “fix” desarrollada por el fabricante para solventar una vulnerabilidad. Puede ser desde la eliminación de una librería vulnerable, hasta la validación de una entrada proveniente del usuario.

Exploit

El método por el cual la vulnerabilidad es aprovechada, y convierte un posible riesgo en el punto de entrada real del atacante. Es la primera amenaza utilizada por el atacante, para poder materializar el punto de entrada. Puede ser un script, un archivo o una secuencia de comandos automatizada.

Payload

Es el segundo código malicioso, usado después del exploit y es el que causa las consecuencias más visibles del ataque. Se ejecuta luego de la explotación de la vulnerabilidad para causar el daño que el ciberatacante busca. Puede ser de cualquier tipo tan ruidoso como un ransomware o tan silencioso como un infostealer y permanecer oculto en el sistema por días o meses.

POC (Proof of Concept)

Las POC son una demostración práctica de la explotación de una vulnerabilidad para reportarla o para que otros especialistas comprueben en sus propios sistemas si está presente. No es necesariamente maliciosa: una POC puede usarse para validar la existencia de la falla sin causar daño y suelen generarse con fines académicos.

Zero-Day

Vulnerabilidad que no tiene un parche asociado todavía, y desconocida por el fabricante del software vulnerado. Los atacantes pueden aprovecharla antes de que existan parches o defensas disponibles, lo que la hace especialmente crítica.

CVE (Common Vulnerabilities and Exposures)

Un sistema de identificación estandarizado para vulnerabilidades. Cada CVE tiene un número único (como CVE-2013-1506) que facilita su referencia, análisis y seguimiento. Los primeros cuatro números hacen referencia al año de su publicación.

CWE (Common Weakness Enumeration)

Clasificación de los tipos de fallas comunes que pueden llevar a una vulnerabilidad. Mientras que el CVE identifica casos puntuales, el CWE ayuda a entender las categorías y patrones detrás de ellos (por ejemplo, "buffer overflow" o "validación insuficiente de entrada").

CVSS (Common Vulnerability Scoring System)

Un sistema de puntuación que ayuda a medir la severidad de una vulnerabilidad. Va de 0 a 10, teniendo en cuenta factores como la facilidad de explotación, el impacto y el contexto. Es muy utilizado para priorizar acciones de remedio a partir de incidentes, así como de resultados de ejercicios de ciberseguridad ofensiva.

Por ejemplo, la CVE-2021-44228 (también conocida como Log4Shell) que sacudió al mundo hace cuatro años tiene una puntuación de 10 en la versión 3 de CVSS, y de 9.3 en la versión 2.

vulnerabilidades-catalogo-cvss
Distribución de puntuación CVSS de las vulnerabilidades descubiertas en los últimos 10 años. Fuente: CVEdetails.

Tipos de vulnerabilidades

En esta sección, recopilamos algunos de los tipos de vulnerabilidades más comunes. Estos son conceptos teóricos, que luego son adaptados a distintos programas como sistemas operativos o aplicaciones. Asimismo, repasaremos pequeños ejemplos de explotaciones de estas.

Buffer Overflow

Ocurre cuando un programa escribe más datos de los que puede almacenar en una zona de memoria reservada. Esto puede permitir que un atacante sobreescriba otras partes de la memoria y ejecute código arbitrario.

Ejemplo: pensemos en una aplicación que reserva espacio para un nombre de hasta 8 caracteres, pero no valida el tamaño de la entrada. Si un usuario ingresa una cadena mucho más larga, puede sobrescribir otras partes de la memoria del programa.

SQL Injection

Una técnica en la que un atacante inserta comandos SQL maliciosos en formularios o URLs para acceder o manipular bases de datos de forma no autorizada.

Ejemplo: Un formulario de inicio de sesión que no valida lo ingresado puede ser engañado si se introduce un fragmento de sentencia SQL que siempre devuelve verdadero (como el clásico “OR 1==1”), lo que permite iniciar sesión sin conocer la contraseña.

XSS (Cross-Site Scripting)

Permite a un atacante inyectar scripts maliciosos en sitios web visitados por otros usuarios.

Ejemplo: Si una página muestra comentarios sin revisar su contenido, un atacante puede incluir un código que se ejecuta en el navegador de quien lea ese comentario, como mostrar una alerta o robar datos de sesión.

CSRF (Cross-Site Request Forgery)

Consiste en hacer que un usuario autenticado en un sitio realice una acción no deseada. Varios ciberataques denominados “de un click” se derivan de esta vulnerabilidad.

Ejemplo: Por un ciberatacante inyectando código, una persona hace clic en un enlace envenenado mientras está conectada a su banco, y sin saberlo, esa acción envía una solicitud que transfiere dinero desde su cuenta.

Directory Traversal

Permite a un atacante acceder a archivos fuera del directorio permitido por la aplicación.

Ejemplo: Si una aplicación permite ver imágenes cargadas en el sitio, pero no valida el nombre del archivo, un atacante podría modificar la ruta para intentar acceder a archivos sensibles del sistema, como los de configuración del servidor.

Command Injection

Sucede cuando una aplicación ejecuta comandos del sistema operativo a partir de entradas del usuario sin validarlas correctamente.

Ejemplo: una herramienta que permite hacer ping a una dirección IP puede ser engañada para ejecutar comandos no relacionados, como borrar archivos o abrir conexiones externas, si no controla adecuadamente la entrada.

Insecure Deserialization

Se trata de un programa aceptando datos estructurados, como objetos, sin validarlos al reconstruirlo. Puede permitir la ejecución de código arbitrario y potencialmente malicioso.

Ejemplo: un atacante modifica los datos guardados de una sesión para incluir instrucciones que serán interpretadas como código cuando el sistema los procese.

Race Condition

Error provocado por un desarrollo incorrecto, que causa que el comportamiento del sistema depende del orden en que se ejecutan ciertos procesos.  Si un atacante logra alterar ese orden, o forzar un orden específico, puede obtener resultados inesperados.

Ejemplo: dos solicitudes casi simultáneas que intentan modificar un mismo archivo pueden hacer que se guarde un estado incorrecto, como realizar una acción dos veces o eludir una verificación.

Hardcoded credentials

Contraseñas, tokens o claves programadas directamente en el código fuente, en lugar de almacenarse de forma segura.

Ejemplo: Una aplicación que utiliza una API, en donde el token se encuentra dentro del mismo código publicado en un repositorio visible. Los atacantes pueden utilizar el token de la API con fines maliciosos.

IDOR (Insecure Direct Object Reference)

Una falla que ocurre cuando una aplicación permite acceder a recursos o información con solo modificar un identificador, sin verificar los permisos del usuario.

Ejemplo: si una persona modifica el número de ID en la dirección web de su perfil y accede al perfil de otro usuario, se está aprovechando de una referencia insegura a objetos. 

vulnerabilidades-catalogo-cvss-tipo
Vulnerabilidades detectadas en los últimos 4 años para algunos de los tipos mencionados. Fuente: CVEDetails

Técnicas de explotación

En esta sección, recorremos algunas de las formas más comunes en las que los atacantes explotan vulnerabilidades para comprometer sistemas. Estas técnicas no solo aparecen en investigaciones y POCs, sino que también se utilizan activamente en campañas reales y pruebas de penetración.

RCE (Remote Code Execution)

Permite ejecutar código arbitrario en un sistema afectado, desde una ubicación remota. Es una de las consecuencias más graves de una vulnerabilidad, ya que puede llevar al control total del sistema comprometido. Suele ser el objetivo final de muchas cadenas de explotación.

La vulnerabilidad Log4Shell (CVE-2021-44228) permitió ejecución remota de código enviando cadenas especialmente diseñadas a aplicaciones que usaban Apache Log4j.

LFI/RFI (Local/Remote File Inclusion)

Estas técnicas consisten en forzar a una aplicación vulnerable a cargar y ejecutar archivos que el atacante controla.

En LFI, se accede a archivos locales del servidor, lo que puede permitir desde lectura de configuraciones sensibles hasta ejecución de código si se combinan otras fallas.

En RFI, se incluye contenido remoto (por ejemplo, un script alojado por el atacante), lo que directamente permite ejecutar código en el servidor.

Ambas suelen estar relacionadas con errores en cómo se manejan rutas o parámetros de inclusión en lenguajes como PHP.

La CVE-2025-46230 afectó a una aplicación PHP vulnerable a LFI que permitía incluir archivos de log y ejecutar código inyectado previamente.

Privilege Escalation

Esta técnica permite a un atacante aumentar sus privilegios una vez dentro del sistema. Puede tratarse de una escalada vertical (pasar de usuario normal a administrador) o horizontal (acceder a recursos de otros usuarios). Se logra explotando errores de configuración, servicios inseguros o vulnerabilidades en el sistema operativo.

La conocida CVE-2021-4034, conocida como PwnKit, afectaba al comando pkexec en sistemas Linux y permitía obtener privilegios de root desde una cuenta sin privilegios.

Heap spraying

Es una técnica que busca preparar la memoria dinámica del sistema (el heap) para facilitar la ejecución de un payload. El atacante llena la memoria con patrones repetidos que incluyen instrucciones maliciosas, de modo que cuando el exploit redirige la ejecución a “algún lugar del heap”, aumentan las probabilidades de que caiga justo en ese código preparado. Se suele combinar con otras técnicas para lograr ejecución controlada.

Esta técnica fue ampliamente utilizado en ataques que explotaban Internet Explorer en los 2000 y principios de los 2010.

Return-Oriented Programming (ROP)

Es una técnica de explotación que evita las protecciones modernas como la ejecución de datos (DEP/NX). En lugar de inyectar código nuevo, el atacante reutiliza pequeños fragmentos ("gadgets") ya presentes en el binario o en librerías cargadas. Estos gadgets terminan en instrucciones de retorno (ret) y, encadenándolos, el atacante construye una lógica maliciosa sin escribir código desde cero.

Es una técnica avanzada, pero muy común en exploits modernos contra sistemas con mitigaciones activas.

Conclusión

Comprender las vulnerabilidades es esencial para proteger sistemas y datos. Esta guía proporciona las herramientas necesarias para identificar, clasificar y mitigar riesgos, fortaleciendo la ciberseguridad en un entorno cada vez más complejo