
Proof-of-concept che dimostra l'iniezione di comandi OS nella gestione legacy dei comandi SSH in background di Warp (CVE-2026-48732). Include la simulazione locale della costruzione dei comandi vulnerabile e corretta.
Questo repository è un Proof of Concept (PoC) per la vulnerabilità di iniezione di comandi del sistema operativo di alta gravità CVE-2026-48732 presente nella gestione dei comandi SSH di background legacy di Warp.
Nelle versioni interessate di Warp, veniva utilizzata la directory di lavoro remota (cwd) segnalata dalla sessione SSH per costruire un comando helper. Poiché i singoli apici contenuti in questo percorso non venivano escaped, un host remoto, repository o nome di directory controllato dall'attaccante poteva permettere di uscire dall'argomento cd tra virgolette ed eseguire ulteriore sintassi shell sull'host remoto con i privilegi dell'account SSH autenticato della vittima.
Scoperto da: saku0512 (GitHub)
Questo progetto è fornito esclusivamente a scopo educativo e per test di sicurezza etici.
L'autore non si assume alcuna responsabilità per uso improprio, danni o atti illegali derivanti da questo strumento. L'accesso non autorizzato a sistemi informatici è illegale. Utilizzando questo software, si accetta di utilizzarlo esclusivamente in ambienti per i quali si ha esplicita autorizzazione ai test di sicurezza.
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 e successiveNella gestione dei comandi SSH di background legacy vulnerabile, quando si racchiudeva la directory di lavoro remota tra singoli apici, i caratteri di singolo apice nel percorso non venivano escaped.
command_str.push_str(&format!("cd '{current_directory_path}' && "));
Ad esempio, se current_directory_path contiene un valore come:
/tmp/warp-cve-2026-48732'; touch /tmp/warp_cve_2026_48732_confirmed; echo '
Il comando shell generato sarà il seguente:
cd '/tmp/warp-cve-2026-48732'; touch /tmp/warp_cve_2026_48732_confirmed; echo '' && pwd
Di conseguenza, il comando touch inserito viene interpretato dalla shell come un comando separato.
La correzione esegue l'escaping dei singoli apici incorporati prima di posizionare il percorso in un contesto shell racchiuso tra singoli apici.
Assicurati di avere Python 3 installato. Questo PoC simula localmente la costruzione del comando vulnerabile e non si connette a Warp o SSH.
python3 --version
Esegui lo script incluso.
python3 poc.py
L'output atteso include il comando vulnerabile generato e un messaggio di successo che indica la creazione del file marker.
[!] SUCCESS: /tmp/warp_cve_2026_48732_confirmed was created.
Controlla il file marker per verificare che il comando sia stato eseguito con successo.
ls -l /tmp/warp_cve_2026_48732_confirmed
Se il file esiste, il comportamento di iniezione del comando è stato confermato nella simulazione locale.
Dopo la verifica, elimina il file marker.
rm -f /tmp/warp_cve_2026_48732_confirmed
Esegui il builder di comandi corretto.
python3 poc.py --mode fixed
Nella simulazione corretta, i singoli apici incorporati vengono escaped, quindi il file marker non dovrebbe essere creato.
Aggiorna Warp alla versione corretta il prima possibile.
Questa correzione esegue l'escaping dei singoli apici incorporati nel percorso remoto prima di costruire il comando helper SSH legacy. Ciò impedisce al testo del percorso controllato dall'attaccante di uscire dall'argomento shell racchiuso tra virgolette.