CatalogErlang/OTP SSH
Erlang/OTP SSH RCE (CVE-2025-32433)
Shared component erlang-otp-ssh
Unauthenticated remote code execution in the Erlang/OTP SSH server via pre-authentication protocol message handling. CVSS 10.0. Exploit attempts observed from May 2025, including against OT networks. Listed in CISA KEV on 9 Jun 2025.
- Aliases
- Published
- Updated
What the bug is
CVE-2025-32433 is an unauthenticated remote code execution vulnerability in the Erlang/OTP SSH server. Fabian Baeumer, Marcel Maehren, Marcus Brinkmann, and Joerg Schwenk of Ruhr University Bochum reported it. The Erlang/OTP project published GHSA-37cp-fgq5-7wc2 on 16 Apr 2025 and rates it Critical 10.0.
By exploiting a flaw in SSH protocol message handling, a malicious actor can execute arbitrary commands without valid credentials. The advisory states all users running the Erlang/OTP SSH server are impacted. Patched OTP versions are 27.3.3, 26.2.5.11, and 25.3.2.20. Affected component versions include OTP >= 17.0 and ssh >= 3.0.1; versions prior to OTP 17.0 are also likely affected.
Unit 42 observed a significant increase in exploitation activity from 1-9 May 2025, with 70% of detections from firewalls protecting OT networks. Cisco published a multi-product advisory covering ConfD, NSO, StarOS, Ultra Cloud Core components, and others.
Attack path
- Reach SSH portNetwork access to a host running the Erlang/OTP SSH server (often not only TCP/22).
- Pre-auth messagesAttacker sends SSH connection protocol messages that should only be processed after authentication.
- Missing auth checkFlawed message handling allows critical functions without successful authentication (CWE-306).
- Code execArbitrary commands run on the host. Conceptual impact class only.
High-level only. Not a reproduction guide.
Exploitation status
CISA KEV
Listed in CISA KEV as of .
CISA KEV entry for CVE-2025-32433, Erlang Erlang/OTP SSH Server Missing Authentication for Critical Function Vulnerability. dateAdded 2025-06-09.
First seen
Seen . Source: Unit 42
Unit 42 sensors detected exploit attempts with the earliest observation on 1 May 2025, and a significant increase from 1-9 May 2025.
What defenders should do today
Do today
- 1
Upgrade Erlang/OTP
Move to OTP-27.3.3, OTP-26.2.5.11, or OTP-25.3.2.20 (or later). Rebuild and redeploy any appliance or product that embeds the Erlang/OTP SSH library.
- 2
Disable or firewall the Erlang SSH server until patched
The advisory's temporary workaround is to disable the SSH server or prevent access with firewall rules.
This week
- 1
Inventory unusual SSH ports
Unit 42 notes vulnerable Erlang/OTP SSH services on ports beyond 22, including 2222 used by some industrial components. Inventory process and banner data, not only TCP/22.
- 2
Track vendor product advisories
Cisco and other vendors shipped product-specific timelines. Check each embedded product rather than assuming the host OS OpenSSH patch covers Erlang SSH.
Detection rules
Sigma
Erlang/OTP SSH Server Seen In Zeek SSH Logs
Exposure checktitle: Erlang/OTP SSH Server Seen In Zeek SSH Logs id: 29390c3f-3281-5bde-aa00-695457813a35 status: experimental description: Finds SSH servers that announce Erlang/OTP in their software banner. Unit 42 notes CVE-2025-32433 exposure is inferred from SSH versions tied to Erlang/OTP releases, and ET Open keys its banner rule on the same "Erlang/" string. Use it to build an inventory, then check versions. references: - https://unit42.paloaltonetworks.com/erlang-otp-cve-2025-32433/ - https://rules.emergingthreats.net/open/suricata-7.0.3/rules/emerging-info.rules author: vuln2shell date: 2026-10-23 tags: - attack.initial-access - attack.t1190 - cve.2025-32433 logsource: product: zeek service: ssh detection: selection: server|contains: 'Erlang/' condition: selection falsepositives: - Patched Erlang/OTP SSH servers also match; compare the version against the fixed releases level: lowBy vuln2shell, . Source. License: CC0 1.0
Written by vuln2shell. Untested, tune before use.
Exposure mapping only. Fixed releases: OTP-27.3.3, OTP-26.2.5.11, OTP-25.3.2.20.
SPL (Splunk)
Erlang/OTP SSH servers in Zeek SSH logs
(sourcetype="bro:ssh:json" OR sourcetype="zeek:ssh") server="*Erlang/*" | eval dest=coalesce(dest, 'id.resp_h'), dest_port=coalesce(dest_port, 'id.resp_p') | stats count min(_time) as firstTime max(_time) as lastTime values(server) as server_banner by dest dest_portBy vuln2shell, . Source. License: CC0 1.0
Written by vuln2shell. Untested, tune before use.
Same logic as the Sigma rule. Adjust sourcetypes to your Zeek add-on.
KQL (Microsoft Sentinel / Defender)
Devices with CVE-2025-32433 in Defender Vulnerability Management
Exposure checkDeviceTvmSoftwareVulnerabilities | where CveId == "CVE-2025-32433" | project DeviceName, OSPlatform, SoftwareVendor, SoftwareName, SoftwareVersion, VulnerabilitySeverityLevelBy vuln2shell, . Source. License: CC0 1.0
Written by vuln2shell. Untested, tune before use.
Exposure query. Embedded Erlang/OTP in appliances usually will not show up here.
Suricata / Snort
ET INFO Potentially Vulnerable Erlang/OTP SSH Server Banner (CVE-2025-32433)
alert ssh $HOME_NET any -> any any (msg:"ET INFO Potentially Vulnerable Erlang/OTP SSH Server Banner (CVE-2025-32433)"; flow:established,to_client; flowbits:set,ET.ErlangOTPBanner; ssh.software; content:"Erlang/"; pcre:"/^(?:(?:4\x2e(?:[0-9]|1[0-5])\x2e[0-3]\x2e(?:[0-9]|1[0-1]))|(?:5\x2e2\x2e(?:[0-9]))|(?:5\x2e1\x2e[0-4]\x2e[0-7]))/R"; reference:url,www.runzero.com/blog/erlang-otp-ssh/; reference:cve,2025-32433; classtype:misc-activity; sid:2061790; rev:3; metadata:affected_product Erlang_OTP, attack_target Server, tls_state plaintext, created_at 2025_04_22, cve CVE_2025_32433, deployment Perimeter, deployment Internal, performance_impact Low, confidence High, signature_severity Informational, tag Exploit, updated_at 2025_06_26, mitre_tactic_id TA0001, mitre_tactic_name Initial_Access, mitre_technique_id T1190, mitre_technique_name Exploit_Public_Facing_Application; target:src_ip;)By Emerging Threats (Proofpoint), . Source. License: BSD-3-Clause (ET Open, sids 2000000-2799999)
Sets the ET.ErlangOTPBanner flowbit that the channel-request rule needs.
ET EXPLOIT SSH Erlang/OTP SSH Server Unencryped Channel Request (Message Type 98) (CVE-2025-32433)
alert ssh any any -> $HOME_NET any (msg:"ET EXPLOIT SSH Erlang/OTP SSH Server Unencryped Channel Request (Message Type 98) (CVE-2025-32433)"; flow:established,to_server; flowbits:isset,ET.ErlangOTPBanner; content:"exec"; fast_pattern; byte_jump:0,0,relative,post_offset -13; content:"|62|"; within:1; reference:cve,2025-32433; reference:url,github.com/darses/CVE-2025-32433/blob/main/README.md; classtype:attempted-admin; sid:2061797; rev:3; metadata:affected_product Erlang_OTP, attack_target Server, tls_state plaintext, created_at 2025_04_22, cve CVE_2025_32433, deployment Perimeter, deployment Internal, performance_impact Significant, confidence High, signature_severity Major, tag Exploit, updated_at 2025_06_26, mitre_tactic_id TA0001, mitre_tactic_name Initial_Access, mitre_technique_id T1190, mitre_technique_name Exploit_Public_Facing_Application; target:dest_ip;)By Emerging Threats (Proofpoint), . Source. License: BSD-3-Clause (ET Open, sids 2000000-2799999)
Depends on the banner rule's flowbit; deploy both.
YARA
VULN_Erlang_OTP_SSH_CVE_2025_32433_Apr25
Exposure checkrule VULN_Erlang_OTP_SSH_CVE_2025_32433_Apr25 { meta: description = "Detects binaries vulnerable to CVE-2025-32433 in Erlang/OTP SSH" author = "Pierre-Henri Pezier, Florian Roth" reference = "https://www.upwind.io/feed/cve-2025-32433-critical-erlang-otp-ssh-vulnerability-cvss-10" date = "2025-04-18" score = 60 id = "fd0ff924-d0f3-5dcc-90f3-55875b90102e" strings: $a1 = { 46 4F 52 31 ?? ?? ?? ?? 42 45 41 4D } $s1 = "ssh_connection.erl" $fix1 = "chars_limit" $fix2 = "allow macro_log" $fix3 = "logger" $fix4 = "max_log_item_len" condition: filesize < 1MB and $a1 at 0 // BEAM file header and $s1 and not 1 of ($fix*) }By Pierre-Henri Pezier, Florian Roth, . Source. License: DRL-1.1
Finds unpatched ssh_connection BEAM files. Exposure, not compromise.
More detection content
- Unit 42: Erlang/OTP SSH vulnerability analysis and exploits observed in the wild
By Unit 42, . Describes pre-auth connection protocol messages (codes 80 and up) and reverse-shell payloads; PAN Threat ID 96163.
- ET Open: Potentially Vulnerable Cisco ConfD SSH Server Banner (sid 2061806)
By Emerging Threats, . For Cisco products that embed Erlang/OTP SSH.
- Cisco multi-product Erlang/OTP advisory
By Cisco PSIRT,
Affected products
Products that share
Many network and orchestration products embed Erlang/OTP. Patch status is product-specific even when the host OS OpenSSH package is current.
| Product | Status | Fixed version / ETA | Advisory | Notes |
|---|---|---|---|---|
| NAS & consumer devices1 | ||||
| NetApp productsNetApp | Affected | See NTAP-20250425-0001 | NetApp advisory NTAP-20250425-0001 referenced from NVD for CVE-2025-32433. | |
| Network & security appliances5 | ||||
| Cisco ASR 5000 Series Software (StarOS) / Ultra Packet CoreCisco | Affected | 2025.03 (Jul 2025) | ASR 5000 Series Software (StarOS) and Ultra Packet Core CSCwo83806 fixed release availability 2025.03 (Jul 2025). | |
| Cisco ConfD / ConfD BasicCisco | Affected | 7.7.19.1 / 8.0.17.1 / 8.1.16.2 / 8.2.11.1 / 8.3.8.1 / 8.4.4.1 | ConfD, ConfD Basic CSCwo83759 fixed releases listed in the Cisco advisory. | |
| Cisco Network Services Orchestrator (NSO)Cisco | Affected | 5.7.19.1 / 6.1.16.2 / 6.2.11.1 / 6.3.8.1 / 6.4.x fixes | Network Services Orchestrator (NSO) CSCwo83796 fixed releases listed in the Cisco advisory. | |
| Cisco Small Business RV Series RoutersCisco | Affected | No fix planned (end of software maintenance) | Small Business RV Series Routers: No fix planned. These routers have reached end of software maintenance. | |
| Cisco Ultra Services PlatformCisco | Affected | No fix planned | Ultra Services Platform CSCwo83750: No fix planned. | |
| CMS & applications1 | ||||
| Erlang/OTPErlang/OTP Project | Affected | 27.3.3 / 26.2.5.11 / 25.3.2.20 | Patched versions 27.3.3, 26.2.5.11, 25.3.2.20. Affected versions >= 17.0. | |
Timeline6
Key events
Newest first.
Unit 42 publishes OT-focused exploitation analysis.
SourceCISA adds CVE-2025-32433 to KEV.
SourceUnit 42 records earliest exploit attempts; activity spikes through 9 May 2025.
SourceCisco publishes a multi-product advisory for Erlang/OTP SSH in Cisco products.
SourcePublic PoC repository ProDefense/CVE-2025-32433 appears on GitHub.
SourceErlang/OTP publishes GHSA-37cp-fgq5-7wc2 and patched OTP 27.3.3 / 26.2.5.11 / 25.3.2.20.
Source
Full timeline (6)
Mon 11 Aug 20251
Unit 42 publishes OT-focused exploitation analysis.
Source
Mon 9 Jun 20251
CISA adds CVE-2025-32433 to KEV.
Source
Thu 1 May 20251
Unit 42 records earliest exploit attempts; activity spikes through 9 May 2025.
Source
Tue 22 Apr 20251
Cisco publishes a multi-product advisory for Erlang/OTP SSH in Cisco products.
Source
Fri 18 Apr 20251
Public PoC repository ProDefense/CVE-2025-32433 appears on GitHub.
Source
Wed 16 Apr 20251
Erlang/OTP publishes GHSA-37cp-fgq5-7wc2 and patched OTP 27.3.3 / 26.2.5.11 / 25.3.2.20.
Source
News & write-ups
PoC index (for defenders)
Public proof-of-concept links for defensive validation, with a source and a validation status.
- ProDefense/CVE-2025-32433Validated
Public repository created 18 Apr 2025 and referenced from NVD.