Skip to main content

Erlang OTP SSH CVE-2026-54886

| EUVDEUVD-2026-41413 MEDIUM
Loop with Unreachable Exit Condition (Infinite Loop) (CWE-835)
2026-07-02 EEF
5.3
CVSS 4.0 · Vendor: EEF
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Authenticate to OTP SSH server
  2. Delivery
    Open SFTP subsystem channel
  3. Exploit
    Send SSH_MSG_CHANNEL_EXTENDED_DATA with non-zero type code
  4. Execution
    Trigger infinite tail-recursive loop in ssh_sftpd:handle_data/4
  5. Persist
    Repeat across additional channels (default max_channels=infinity)
  6. Impact
    Exhaust CPU shares and accumulate unbounded memory queue

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Loop termination conditions
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

Exploitation requires a valid authenticated SFTP session on an Erlang OTP SSH server running an affected OTP version with the ssh_sftpd subsystem enabled. The attacker must be able to open an SSH channel and send a raw SSH_MSG_CHANNEL_EXTENDED_DATA message with any non-zero data_type_code and a non-empty payload not exceeding the SFTP packet size limit, while the sftpd pending buffer for that channel is empty (which is the default state before any SFTP packet is partially received). Limiting exploitation: the attacker must hold valid SSH credentials (PR:L per CVSS vector); no privilege escalation or special SFTP permissions are required beyond authentication. The amplification to full-node resource exhaustion is facilitated - but not required - by the default max_channels=infinity setting; even a single stuck channel degrades the node. No file access, code execution, or credential theft is possible through this path.

Impact

The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:L) reflects a network-accessible, low-complexity flaw requiring authenticated access, with availability impact limited to the vulnerable system. The 5.3 medium score is broadly consistent with the description: the attack is straightforward once authenticated but cannot escalate to code execution or data exfiltration. No EPSS data was provided in the input; absent that signal, exploitation likelihood must be inferred from the low barrier (any valid SFTP credential suffices) and the simple primitive (a single malformed SSH message triggers the loop). No CISA KEV listing and no public POC are present, which reduces urgency for most environments. However, the amplification vector - default max_channels=infinity allows unlimited channels per authenticated session - elevates practical severity above the raw VA:L score suggests: a single authenticated attacker can progressively consume all CPU shares and exhaust memory on an SFTP node without re-authenticating. Organizations exposing OTP-based SFTP servers to semi-trusted or untrusted users (multi-tenant SFTP services, developer gateway hosts) face meaningfully higher real-world risk than the CVSS score alone conveys.

Exploit ScenarioDerived

An authenticated user with valid SFTP credentials connects to an OTP SSH server and opens one or more SFTP subsystem channels. Instead of sending normal SFTP requests, they transmit SSH_MSG_CHANNEL_EXTENDED_DATA frames with any non-zero data_type_code and a non-empty payload below the SFTP packet size limit. Each targeted ssh_sftpd process immediately enters an infinite tail-recursive loop, consuming its CPU share continuously and accumulating incoming SSH messages in an ever-growing queue. By repeating the operation across many channels (permitted by the default max_channels=infinity), the attacker can saturate CPU and exhaust memory on the SFTP node without any additional authentication or TCP connections.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Jul 02, 2026

Infinite loop denial-of-service in Erlang OTP's ssh_sftpd module allows an authenticated SFTP user to permanently freeze individual SFTP channel processes by sending SSH_MSG_CHANNEL_EXTENDED_DATA frames. The affected function handle_data/4 tail-calls itself indefinitely when it receives extended-data channel messages (type != 0) with an empty pending buffer, because the SFTP protocol never expects such messages and the catch-all clause has no exit condition for them. No public exploit code or active exploitation has been identified at time of analysis; the vulnerability was disclosed and patched by the Erlang Ecosystem Foundation.

RemediationAI

Upgrade Erlang OTP to one of the patched releases: 29.0.3, 28.5.0.3, or 27.3.4.14, which contain the fix committed at https://github.com/erlang/otp/commit/eaf9550b8ad4738b81149d3f617102d980c6dd18. The advisory is at https://github.com/erlang/otp/security/advisories/GHSA-7wp4-pc27-2vj9. If immediate patching is not feasible, set the max_channels option to a small integer (e.g., 1 or 2) in the SSH daemon configuration to cap the number of channels an authenticated user can open per connection - this limits memory and CPU amplification but does not prevent a single channel from looping. Additionally, restricting SFTP access to trusted, explicitly authorized users via authentication controls (certificate-based auth, IP allowlists) reduces the attack surface, since PR:L means a valid credential is the only prerequisite. Note that rate-limiting TCP connections does not help because the attack requires only one authenticated connection.

Affected VersionsENISA

otp 3.0.1 <*
otp 84adefa3318eef8631bf25cd233246a86eea18cd <eaf9550b8ad4738b81149d3f617102d980c6dd18
otp 17.0 <*

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

The vulnerability resides in lib/ssh/src/ssh_sftpd.erl, specifically the handle_data/4 function of the ssh_sftpd module, which is the server-side SFTP subsystem within Erlang OTP's SSH library (CPE: cpe:2.3:a:erlang:otp). CWE-835 (Loop with Unreachable Exit Condition) precisely describes the root cause: a catch-all clause processes SSH_MSG_CHANNEL_EXTENDED_DATA frames without any mechanism to exit the recursion when the incoming data type is non-zero, the pending buffer is empty, and the payload is within the SFTP packet size limit. SFTP operates exclusively over normal channel data (type 0) per the SSH protocol spec; extended data (type != 0) is valid at the SSH transport layer but semantically meaningless for SFTP. Because the BEAM virtual machine's reduction-based scheduler continues to preempt stuck processes, the broader OTP node is not halted, but the looping process monopolizes its CPU share and accumulates an unbounded message queue in memory. The default max_channels=infinity OTP configuration permits an authenticated user to open unlimited channels per TCP connection, making the resource amplification trivial.

Know when Erlang gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (EEF) PRIMARY 5.3 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
vuln.today AI 4.3 MEDIUM

Network-reachable with low complexity, requires authenticated access (PR:L); no confidentiality or integrity impact; availability limited to channel/process level with BEAM scheduler preventing full node starvation.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
SUSE 6.5 MEDIUM
AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
Red Hat 6.5 MEDIUM

Primary rating from Vendor (EEF).

CVSS VectorVendor: EEF

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
Low
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Loop with Unreachable Exit Condition ('Infinite Loop') vulnerability in Erlang OTP ssh (ssh_sftpd module) allows an authenticated SFTP user to render an SFTP channel permanently unresponsive.

The handle_data/4 function in ssh_sftpd contains a catch-all clause that accepts channel data of any type. When channel data with a non-zero type code (SSH_MSG_CHANNEL_EXTENDED_DATA) arrives with an empty pending buffer and a payload at or below the SFTP packet size limit, the clause tail-calls itself with identical arguments, creating an infinite loop.

The SFTP protocol operates exclusively on normal channel data (type 0). Extended data (non-zero type) is meaningless for SFTP and is never sent by conforming clients. However, the SSH protocol permits any channel participant to send extended data on an open channel, so an authenticated SFTP client can trigger the loop by sending SSH_MSG_CHANNEL_EXTENDED_DATA with any data_type_code and any non-empty payload at or below the size limit.

The targeted ssh_sftpd process enters an infinite tail-recursive loop. It never processes another message, its message queue grows without bound, and it can only be stopped by killing the process. BEAM's reduction-based scheduler preemption continues to function, so other processes on the node are not starved, but each stuck channel process consumes its full CPU time share continuously and accumulates unbounded message queue memory. Opening many channels amplifies the CPU and memory impact.

Erlang/OTP SSH configurations using the default max_channels setting (infinity) allow an authenticated user to open unlimited channels per connection, amplifying the attack without requiring multiple TCP connections or authentications.

No file contents, credentials, or write access are obtainable through this issue. The impact is limited to denial of service on targeted SFTP channels, with secondary CPU degradation and memory growth.

This vulnerability is associated with program file lib/ssh/src/ssh_sftpd.erl and program routine ssh_sftpd:handle_data/4.

This issue affects OTP from OTP 17.0 until OTP 29.0.3, 28.5.0.3, and 27.3.4.14 corresponding to ssh from 3.0.1 until 6.0.2, 5.5.2.2, and 5.2.11.9.

Threat Intelligence Overview

EPSS Score
0.3%
Top 74% exploitable
Prevalence
Medium
used in telecom, distributed systems, and select Elixir/Erlang deployments
Data Quality
8 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment MSRC Vendor GitHub VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

26
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +26
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

More in Erlang

View all
CVE-2025-32433 CRITICAL POC
10.0 Apr 16

Erlang/OTP SSH server allows unauthenticated remote code execution by exploiting a flaw in SSH protocol message handling

CVE-2017-1000385 MEDIUM POC
5.9 Dec 12

The Erlang otp TLS server answers with different TLS alerts to different error types in the RSA PKCS #1 1.5 padding. Rat

CVE-2023-48795 MEDIUM POC
5.9 Dec 18

The SSH transport protocol with certain OpenSSH extensions, found in OpenSSH before 9.6 and other products, allows remot

CVE-2020-13802 CRITICAL POC
9.8 Sep 02

Rebar3 versions 3.0.0-beta.3 to 3.13.2 are vulnerable to OS command injection via URL parameter of dependency specificat

CVE-2014-1693 HIGH POC
7.5 Dec 08

Multiple CRLF injection vulnerabilities in the FTP module in Erlang/OTP R15B03 allow context-dependent attackers to inje

CVE-2021-29221 HIGH POC
7.0 Apr 09

A local privilege escalation vulnerability was discovered in Erlang/OTP prior to version 23.2.3. Rated high severity (CV

CVE-2016-10253 CRITICAL
9.8 Mar 18

An issue was discovered in Erlang/OTP 18.x. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitab

CVE-2022-37026 CRITICAL
9.8 Sep 21

In Erlang/OTP before 23.3.4.15, 24.x before 24.3.4.2, and 25.x before 25.0.2, there is a Client Authentication Bypass in

CVE-2026-89422 CRITICAL
9.3 Sep 22

Erlang/OTP's ssl application in affected releases (OTP 22.2 through the fixed 27.3.4.18, 28.5.0.7 and 29.1.1) will compl

CVE-2026-67404 CRITICAL
9.2 Sep 23

RabbitMQ brokers that use the OAuth2 plugin can silently fall back to disabled TLS certificate verification when no CA b

CVE-2026-67231 CRITICAL
9.1 Sep 23

TLS client-authentication bypass in the RabbitMQ trust-store plugin lets a remote unauthenticated attacker whose forged

CVE-2026-55953 CRITICAL
9.1 Jul 27

An on-path attacker can force an Erlang/OTP TLS 1.2 or DTLS client to accept an anonymous cipher suite not offered by th

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise High Performance Computing 15 SP7 Affected
SUSE Linux Enterprise High Performance Computing 15 SP7 Affected
SUSE Linux Enterprise Module for Server Applications 15 SP7 Affected
SUSE Linux Enterprise Module for Server Applications 15 SP7 Affected
SUSE Linux Enterprise Server 15 SP7 Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy