Executive brief
A vulnerability in the Erlang SSH library allows an attacker to crash or disable services by sending specially crafted, highly compressed data. This 'compression bomb' can exhaust a server's memory, leading to a denial of service that prevents legitimate users from accessing the system. Because the flaw can be triggered before a user even logs in, it poses a significant risk to any publicly accessible Erlang-based SSH service.
Technical details
The Erlang OTP SSH transport layer (ssh_transport modules) fails to impose size limits on decompressed data when using zlib compression. An attacker can send a 'compression bomb'—a small payload that expands significantly upon decompression (up to a 1029:1 ratio)—to trigger an Out-of-Memory (OOM) condition. The 'zlib' algorithm is enabled by default and operates pre-authentication, allowing unauthenticated remote attackers to exhaust memory. The 'zlib@openssh.com' algorithm is also affected but requires successful authentication. The issue is fixed in OTP versions 28.4.1, 27.3.4.9, and 26.2.5.18 by disabling zlib by default and implementing decompression size limits.
Affected products
- Erlang OTP 17.0 to 26.2.5.17, 27.0 to 27.3.4.8, 28.0 to 28.4.0
- Erlang ssh 3.0.1 to 5.1.4.13, 5.2 to 5.2.11.5, 5.5 to 5.5.0
Timeline
- 2026-03-12: patched: Fixes merged into maintenance branches.
- 2026-03-13: disclosed: Initial vulnerability disclosure.
- 2026-03-13: advisory: NVD and Vendor advisories published.
References
- https://cna.erlef.org/cves/CVE-2026-23943.html
- https://github.com/erlang/otp/commit/0c1c04b191f6ab940e8fcfabce39eb5a8a6440a4
- https://github.com/erlang/otp/commit/43a87b949bdff12d629a8c34146711d9da93b1b1
- https://github.com/erlang/otp/commit/93073c3bd338c60cd2bae715ce6a1d4ffc1a8fd3
- https://github.com/erlang/otp/security/advisories/GHSA-c836-qprm-jw9r
- https://www.erlang.org/doc/system/versions.html