En la biblioteca ssh que forma parte de las herramientas de Erlang/OTP, se ha identificado una vulnerabilidad (CVE-2025-32433) que permite ejecutar código de forma remota sin necesidad de autenticación en un servidor SSH creado con la biblioteca vulnerable. Se ha asignado un nivel crítico de peligrosidad (10 de 10) a este problema.
Un investigador de seguridad ya ha preparado un exploit funcional para ejecutar código en servidores SSH vulnerables. Notablemente, el investigador mencionó que el código fue creado utilizando asistentes de IA como GPT-4, Cursor y Sonnet, basado en el análisis de los cambios realizados para corregir la vulnerabilidad, que incluye una prueba para verificar la remoción del problema.
La biblioteca del proyecto Erlang/OTP proporciona implementaciones listas para clientes y servidores SSH y SFTP que soportan el protocolo SSH 2.0. Los servidores SSH problemáticos se pueden identificar por la salida del encabezado "SSH-2.0-Erlang/version". Los servidores SSH basados en Erlang/OTP se utilizan en sistemas especializados, como en dispositivos IoT y de edge computing, así como herramienta de depuración; Erlang permite habilitar fácilmente un servidor SSH para la depuración remota de sus aplicaciones (se supone que esta capacidad de depuración pudo haber permanecido habilitada en muchos proyectos escritos en Erlang). El problema también se refleja en las herramientas de Elixir (implementadas sobre Erlang) y en el marco Phoenix basado en él, aunque el servidor SSH en Phoenix no acepta solicitudes de redes externas por defecto.
La vulnerabilidad es causada por un error en el código de análisis de mensajes, que hace que los mensajes SSH_MSG_CHANNEL_REQUEST, que permiten la ejecución del comando "exec", sean procesados en la etapa anterior a la autenticación. Ejemplo de código del 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 vulnerabilidad ha sido corregida en las versiones Erlang/OTP-27.3.3, 26.2.5.11 y 25.3.2.20. Se puede seguir la resolución de la vulnerabilidad en los siguientes distribuidores: Debian, Ubuntu, Fedora, SUSE/openSUSE, RHEL, Arch, FreeBSD.
Fuente: opennet.ru
