Red Hot Cyber
Sicurezza Informatica, Notizie su Cybercrime e Analisi Vulnerabilità
Il PoC è online per OpenSSH! Remote Code Execution (RCE) tramite ProxyCommand

Il PoC è online per OpenSSH! Remote Code Execution (RCE) tramite ProxyCommand

10 Ottobre 2025 16:13

È stata scoperta una nuova vulnerabilità, CVE-2025-61984, in OpenSSH. Consente l’esecuzione di codice remoto (RCE) manipolando il parametro ProxyCommand e la gestione dei caratteri della shell.

Lo sfruttamento è possibile anche con protezioni contro i metacaratteri standard della shell, a causa dell’uso di caratteri di controllo ed errori di sintassi che non interrompono l’esecuzione dei comandi in alcune shell.

Advertising

OpenSSH fornisce il meccanismo ProxyCommand per la connessione tramite un proxy intermedio. In genere, viene utilizzato in questo modo: ProxyCommand /usr/bin/nc -X connect -x 192.0.2.0:8080 %h %p . Tuttavia, nella configurazione di ~/.ssh/config, se viene specificato %r, il nome utente potrebbe contenere caratteri di controllo.

Sebbene la maggior parte dei caratteri pericolosi siano filtrati, come ;, |, (, ), &, in precedenza non filtrati erano “\n” (nuova riga), $, [ e altri, che in alcune shell possono modificare il comportamento del comando. Questo comportamento consente a un aggressore di costruire un valore di nome utente falso contenente un comando dannoso dopo l’errore sulla prima riga.

Se un repository Git contiene un sottomodulo dannoso con un URL del tipo url = “$[+]nsource poc.sh [email protected] :foo”, e l’utente ha la seguente riga in ~/.ssh/config: ProxyCommand some-command %r@%h:%p, la clonazione con git clone –-recursive eseguirà la seconda riga (source poc.sh) se la shell utilizzata è Bash, Fish o csh. Ciò è possibile perché l’errore di sintassi $[+] causa un’interruzione di riga. Zsh, a differenza di altre shell, interrompe automaticamente tali errori.

Teleport è uno degli strumenti interessati, che genera un ProxyCommand con %r nella configurazione tsh. Questo consente a un aggressore che conosce il nome del cluster di avviare un attacco tramite sottomoduli git.

La patch OpenSSH abilita il filtraggio rigoroso dei caratteri di controllo nella funzione valid_ruser(): if (iscntrl((u_char)s[i])) return 0;. Si consiglia inoltre: aggiornare a OpenSSH 10.1; modificare ProxyCommand per utilizzare gli apici singoli: ‘%r’ per evitare interpretazioni; disabilitare SSH nei sottomoduli: git config –global protocol.ssh.allow user; disabilitare i gestori URL per ssh:// se consentono i caratteri di controllo; passare a shell con un comportamento più rigoroso (ad esempio Zsh).

Sebbene l’attacco richieda una configurazione specifica , è un ulteriore esempio della complessità e dell’imprevedibilità delle interazioni tra git, SSH e gli interpreti shell. Anche senza uno sfruttamento diretto, tali vulnerabilità dimostrano l’importanza di una gestione rigorosa dell’input utente negli strumenti da riga di comando e di automazione.



Ti è piaciuto questo articolo? Ne stiamo discutendo nella nostra Community su LinkedIn, Facebook e Instagram. Seguici anche su Google News, per ricevere aggiornamenti quotidiani sulla sicurezza informatica o Scrivici se desideri segnalarci notizie, approfondimenti o contributi da pubblicare.

Agostino Pellegrino 300x300
E’ un libero professionista, insegnante e perito di informatica Forense, Cyber Security ed Ethical Hacking e Network Management. Ha collaborato con importanti istituti di formazione a livello internazionale e ha esercitato teaching e tutorship in tecniche avanzate di Offensive Security per la NATO ottenendo importanti riconoscimenti dal Governo degli Stati Uniti. Il suo motto è “Studio. Sempre”.
Aree di competenza: Cybersecurity architecture, Threat intelligence, Digital forensics, Offensive security, Incident response & SOAR, Malware analysis, Compliance & frameworks