CVE-2026-68956: SSH daemon allocates unbounded idle session channels, bypassing max_channels
Allocation of Resources Without Limits or Throttling vulnerability in Erlang/OTP ssh allows an authenticated remote attacker to exhaust node memory by repeatedly opening session channels that are never assigned a handler.
The "session" clause of sshconnection:handlemsg/4 checks only minimalremotemaxpacketsize before calling setupsession/5, which unconditionally builds a #channel{} record and stores it in the ETS channel cache. The maxchannels daemon option is consulted only by sshchannelsup:maxnumchannelsnotexceeded/2, which counts supervisor children, so a channel that never gets a shell, exec, or subsystem handler is invisible to the limit and setting the option to a finite value does not mitigate the attack. RFC 4254 section 5.1 permits many session channels per connection, and each record costs only a few hundred bytes, so a single authenticated connection can accumulate channels until the node runs out of memory and the emulator terminates, affecting every application on it. No file contents, credentials, or write access are obtainable.
This issue affects OTP from OTP 17.0 before OTP 27.3.4.18, OTP 28.5.0.7, and OTP 29.1.1, corresponding to ssh from 3.0.1 before 5.2.11.13, 5.5.2.6, and 6.0.6. Whether OTP before OTP 17.0, corresponding to ssh before 3.0.1, is affected is unknown.
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
Erlang/OTPto a version that resolves this vulnerability.Fixed in 27.3.4.18 - Upgrade
Upgrade
Erlang/OTPto a version that resolves this vulnerability.Fixed in 28.5.0.7 - Upgrade
Upgrade
Erlang/OTPto a version that resolves this vulnerability.Fixed in 29.1.1
Event History
Frequently Asked Questions
Who can exploit this issue?
An attacker must be able to authenticate to the Erlang/OTP SSH daemon. A single authenticated remote connection can repeatedly open unhandled session channels and consume node memory.
Does configuring a finite max_channels value prevent the attack?
No. Unhandled session channels are stored in the ETS channel cache without becoming supervisor children, so they are not counted by the max_channels limit.
What is the impact if exploitation succeeds?
The attacker can exhaust memory until the Erlang emulator terminates, disrupting every application running on that node. The issue does not provide access to file contents, credentials, or write capabilities.
Which releases are affected?
Affected releases include OTP 17.0 through versions before OTP 27.3.4.18, OTP 28.5.0.7, and OTP 29.1.1. The provided data does not include the complete corresponding ssh version range.