
Prueba de concepto que demuestra inyección de comandos del sistema operativo en el manejo de comandos SSH heredados de Warp (CVE-2026-48732). Incluye simulación local de construcción de comandos vulnerable y corregida.
Este repositorio es una Prueba de Concepto (PoC) de la vulnerabilidad de inyección de comandos del sistema operativo de alta gravedad CVE-2026-48732, presente en el procesamiento de comandos en segundo plano SSH heredado de Warp.
En las versiones afectadas de Warp, se construía un comando auxiliar utilizando el directorio de trabajo remoto (cwd) reportado por una sesión SSH. Debido a que las comillas simples incluidas en esta ruta no se escapaban, un host remoto controlado por un atacante, un repositorio o un nombre de directorio podía salir del argumento cd entrecomillado y ejecutar sintaxis de shell adicional en el host remoto con los privilegios de la cuenta SSH autenticada de la víctima.
Descubridor: saku0512 (GitHub)
Este proyecto se proporciona únicamente con fines educativos y de pruebas de seguridad éticas.
El autor no se hace responsable del mal uso, daños o actividades ilegales derivadas de esta herramienta. El acceso no autorizado a sistemas informáticos es ilegal. Al usar este software, usted acepta utilizarlo únicamente en entornos donde tenga permiso explícito para realizar pruebas de seguridad.
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H)>= v0.2023.03.21.08.02.stable_00v0.2026.05.06.15.42.stable_01 y posterioresEl procesamiento de comandos en segundo plano SSH heredado vulnerable no escapaba los caracteres de comilla simple en la ruta al rodear el directorio de trabajo remoto con comillas simples.
command_str.push_str(&format!("cd '{current_directory_path}' && "));
Por ejemplo, si current_directory_path contiene un valor como:
/tmp/warp-cve-2026-48732'; touch /tmp/warp_cve_2026_48732_confirmed; echo '
El comando de shell resultante sería:
cd '/tmp/warp-cve-2026-48732'; touch /tmp/warp_cve_2026_48732_confirmed; echo '' && pwd
Como resultado, el comando touch insertado es interpretado por el shell como un comando separado.
La corrección escapa las comillas simples incrustadas antes de colocar la ruta en un contexto de shell entrecomillado con comillas simples.
Asegúrese de tener Python 3 instalado. Esta PoC simula localmente la construcción de comandos vulnerables y no se conecta a Warp ni a SSH.
python3 --version
Ejecute el script incluido.
python3 poc.py
La salida esperada incluirá el comando vulnerable generado y un mensaje de éxito indicando que se creó el archivo marcador.
[!] SUCCESS: /tmp/warp_cve_2026_48732_confirmed was created.
Compruebe el archivo marcador para verificar que el comando se ejecutó correctamente.
ls -l /tmp/warp_cve_2026_48732_confirmed
Si el archivo existe, se ha confirmado el comportamiento de inyección de comandos en la simulación local.
Después de la verificación, elimine el archivo marcador.
rm -f /tmp/warp_cve_2026_48732_confirmed
Ejecute el constructor de comandos corregido.
python3 poc.py --mode fixed
En la simulación corregida, las comillas simples incrustadas se escapan, por lo que no se debería crear el archivo marcador.
Actualice Warp a la versión corregida lo antes posible.
La corrección escapa las comillas simples incrustadas en la ruta remota antes de construir el comando auxiliar SSH heredado. Esto evita que el texto de ruta controlado por el atacante escape del argumento de shell entrecomillado.