Une vulnérabilité (CVE-2025-32433) a été identifiée dans la bibliothÚque ssh, qui fait partie de l'outil Erlang/OTP, permettant l'exécution de code à distance sans authentification sur un serveur SSH créé avec cette bibliothÚque vulnérable. Le problÚme a été classé comme critique (10 sur 10).
Un des chercheurs en sécurité a déjà préparé un exploit fonctionnel pour exécuter du code sur les serveurs SSH vulnérables. Fait intéressant, selon le chercheur, le code a été généré à l'aide d'assistants IA comme GPT-4, Cursor et Sonnet, basé sur l'analyse des modifications apportées pour corriger la vulnérabilité, y compris un test pour vérifier la résolution du problÚme.
La bibliothĂšque du projet Erlang/OTP fournit des implĂ©mentations prĂȘtes Ă l'emploi du client et de serveurs SSH et SFTP, prenant en charge le protocole SSH 2.0. On peut distinguer les serveurs SSH problĂ©matiques par l'en-tĂȘte « SSH-2.0-Erlang/version ». Les serveurs SSH basĂ©s sur Erlang/OTP sont utilisĂ©s dans des systĂšmes spĂ©cialisĂ©s, par exemple, sur des dispositifs IoT et pour le edge computing, ainsi qu'en tant qu'outil de dĂ©bogage â Erlang permet d'activer facilement un serveur SSH pour le dĂ©bogage Ă distance des applications (il est probable que cette capacitĂ© de dĂ©bogage ait Ă©tĂ© laissĂ©e activĂ©e dans de nombreux projets Ă©crits en Erlang). Le problĂšme se manifeste Ă©galement dans l'outil Elixir (rĂ©alisĂ© au-dessus d'Erlang) et dans le framework Phoenix qui en est dĂ©rivĂ©, mais le serveur SSH dans Phoenix n'accepte par dĂ©faut pas les requĂȘtes provenant de rĂ©seaux externes.
La vulnĂ©rabilitĂ© est causĂ©e par une erreur dans le code d'analyse des messages, entraĂźnant le traitement des messages SSH_MSG_CHANNEL_REQUEST, qui permettent l'exĂ©cution de la commande « exec », Ă un stade antĂ©rieur Ă l'authentification. Exemple de code extrait de l'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 vulnérabilité a été corrigée dans les versions Erlang/OTP-27.3.3, 26.2.5.11 et 25.3.2.20. Vous pouvez suivre la correction de cette vulnérabilité dans les distributions suivantes : Debian, Ubuntu, Fedora, SUSE/openSUSE, RHEL, Arch, FreeBSD.
Source : opennet.ru
