
Proof-of-concept che dimostra una vulnerabilità di command injection nello strumento MS-Agent Shell, consentendo l'esecuzione arbitraria di comandi e una reverse shell tramite bypass dei controlli di sicurezza in Python.
È stata identificata una vulnerabilità critica di command injection (CVE-2026–2256, CVSS X.X) nel componente Shell tool del framework MS-Agent versione 1.5.2. La vulnerabilità deriva da una sanitizzazione impropria dell'input influenzato dall'utente che viene passato direttamente a un contesto di esecuzione shell, consentendo un'evaluazione di comandi non intenzionale. Un attaccante può sfruttare questa falla iniettando contenuti appositamente predisposti nelle fonti dati consumate dall'agente, come prompt, documenti, log o input di ricerca, senza richiedere accesso diretto alla shell o un uso improprio esplicito dell'operatore. Di conseguenza, comandi arbitrari possono essere eseguiti con i privilegi del processo MS-Agent sul sistema host come parte del normale flusso di esecuzione dell'agente, portando potenzialmente al pieno compromesso del sistema host.
Il Shell tool è un componente interno di MS-Agent che consente agli agenti di eseguire comandi del sistema operativo sull'host. È progettato per supportare flussi di lavoro dell'agente come gestione dei file, navigazione delle directory e attività di automazione delegando l'esecuzione dei comandi al sistema operativo sottostante.
Questo PoC semplificato mostra come la funzione check_safe() nel Shell tool di ms-agent può essere bypassata per stabilire una reverse shell utilizzando Python.
nc (netcat)Esegui il PoC per verificare che il comando bypassi i controlli di sicurezza. Output atteso: ✓ BYPASS SUCCESSFUL - il comando supera tutti i controlli di sicurezza
Apri una NUOVA finestra del terminale ed esegui:
nc -l 1111
Questo avvia un listener sulla porta 1111. Lascia questo terminale aperto e in attesa.
Nel tuo terminale originale, esegui:
./reverse_shell_poc.py --execute
Quando richiesto, digita yes e premi Invio.
Passa al terminale con il listener netcat (dal Passo 2). Ora dovresti avere un prompt della shell!
Prova comandi come:
whoami - visualizza il tuo nome utentepwd - visualizza la directory correntels - elenca i fileexit - chiudi la connessionepython3 per eseguire codice arbitrariopython3 NON è nella lista dei comandi bloccatiLa funzione check_safe() blocca comandi come:
sudo, rm -rf /, chmod, curl | bash, ecc.Ma NON blocca:
python3 (esecuzione di codice arbitrario)nc (netcat - connessioni di rete)perl, ruby, node (altri interpreti)Questo dimostra una vulnerabilità CRITICA:
Dopo il test, puoi rimuovere la directory di test:
rm -rf /tmp/test_output
Questa è una dimostrazione solo localhost (si connette a 127.0.0.1). Questo PoC evita intenzionalmente la connettività remota per ridurre il rischio di abuso.