Vulnerabilità nel server SSH di Erlang/OTP che consente l'esecuzione remota di codice

Nel library ssh, che fa parte dell'insieme di strumenti Erlang/OTP, è stata scoperta una vulnerabilità (CVE-2025-32433) che consente di eseguire codice a distanza senza autenticazione su un server SSH creato utilizzando la libreria vulnerabile. Il problema è stato classificato con un livello di gravità critico (10 su 10).

Uno dei ricercatori di sicurezza ha già preparato un exploit funzionante per eseguire codice sui server SSH vulnerabili. È interessante notare che, secondo il ricercatore, il codice è stato creato utilizzando assistenti AI come GPT-4, Cursor e Sonnet, analizzando le modifiche apportate per correggere la vulnerabilità, che include un test per verificare la risoluzione del problema.

La libreria del progetto Erlang/OTP fornisce implementazioni pronte di client e server SSH e SFTP, che supportano il protocollo SSH 2.0. I server SSH problematici possono essere identificati dall'intestazione «SSH-2.0-Erlang/versione». I server SSH basati su Erlang/OTP sono utilizzati in sistemi specializzati, come dispositivi IoT e per il calcolo edge, e anche come strumento di debug: Erlang consente di attivare facilmente un server SSH per il debug remoto delle proprie applicazioni (si presuppone che tale funzionalità di debug possa essere rimasta abilitata in molti progetti scritti in Erlang). Il problema si manifesta anche nell'insieme di strumenti Elixir (implementato sopra Erlang) e nel framework Phoenix basato su di esso, ma il server SSH in Phoenix, per impostazione predefinita, non accetta richieste da reti esterne.

La vulnerabilità è causata da un errore nel codice di parsing dei messaggi, che fa sì che i messaggi SSH_MSG_CHANNEL_REQUEST, che consentono l'esecuzione del comando «exec», vengano elaborati prima dell'autenticazione. Esempio di codice dall'exploit: command = ‘file:write_file(«/lab.txt», <>).’ return ( b»\x62″ # SSH_MSG_CHANNEL_REQUEST + struct.pack(«>I», channel_id) + string_payload(«exec») + b»\x01″ # want_reply = true + string_payload(command) )

La vulnerabilità è stata risolta nelle versioni Erlang/OTP-27.3.3, 26.2.5.11 e 25.3.2.20. È possibile tenere traccia della risoluzione della vulnerabilità nelle distribuzioni alle seguenti pagine: Debian, Ubuntu, Fedora, SUSE/openSUSE, RHEL, Arch, FreeBSD.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster