Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessIdentify endpoint decoding untrusted ETF
-
DeliverySend crafted BIT_BINARY_EXT term (zero length/trailing-bits)
-
ExploitSize computation underflows to ~2^64
-
ExecutionAllocator aborts entire BEAM node
-
ImpactUncatchable VM crash denies service
Vulnerability Assessment
| Weakness |
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Integer underflow checks
|
| Exploitation Conditions | Exploitation requires that the target application decode Erlang External Term Format from an untrusted source via binary_to_term/1,2 or enif_binary_to_term() - this is the concrete gate (reflected as AT:P in the vendor vector). The [safe] option to binary_to_term/2 does NOT mitigate it, since [safe] only restricts atom creation and performs no structural validation of binary encodings. The Erlang distribution protocol traverses the same decoder, but per OTP Secure Coding Guideline DSG-011 distribution is expected to run only on trusted networks, so distribution-only exposure is not a realistic attack surface. Affected: OTP 27.0 up to (not including) 29.0.4, plus 28.5.0.4 and 27.3.4.15 (erts 15.0 up to 17.0.4, and 16.4.0.4 / 15.2.7.11). The limiting factor is application design: nodes that never pass untrusted bytes to term decoding are not exposed regardless of version. |
| Impact | This is a genuine but bounded availability risk, not a top-tier emergency. The vendor CVSS 4.0 vector (AV:N/AC:L/AT:P/PR:N/UI:N) with VA:H and VC:N/VI:N correctly scopes this as an availability-only, network-reachable, unauthenticated flaw whose only impact is a full VM abort of the Erlang node - there is no code execution or data disclosure despite the 'Forced Integer Overflow' framing. The AT:P (attack requirements present) metric is the pivotal honest signal: exploitation is not universal against a default install but requires an application that feeds attacker-controlled bytes into binary_to_term/1,2 or enif_binary_to_term(). All exploitation-maturity signals point away from urgency: EPSS is 0.32% (24th percentile), there is no CISA KEV listing, no public exploit code is referenced, and CISA SSVC records Exploitation:none / Automatable:no / Technical Impact:partial. These are internally consistent - a low-EPSS, non-KEV, non-automatable finding with partial technical impact. The severity driver is the un-catchable nature of the crash (it bypasses supervision trees, try/catch, and the [safe] option), which turns a single crafted term into an unrecoverable node kill for exposed services. Net: treat as a standard-priority patch for any service that decodes untrusted ETF; deprioritize for nodes that only decode ETF over trusted distribution links. |
| Exploit ScenarioDerived | An attacker identifies a service that deserializes external input with binary_to_term (e.g. a message queue, cache, session token, or custom protocol endpoint that accepts ETF), and sends the 7-byte crafted BIT_BINARY_EXT term <<131,77,0,0,0,0,0>> with both length and trailing-bits set to zero. The size computation underflows to ~2^64, the allocator refuses the impossible allocation, and the entire BEAM VM aborts - killing all processes on the node in one shot, uncatchable by supervision. No public exploit code is identified at time of analysis, but the trigger is trivially small and fully documented in the fix's test case. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 16, 2026
Erlang/OTP nodes that decode External Term Format (ETF) from untrusted sources can be aborted outright by a single malformed term, in versions from OTP 27.0 up to but not including the fixed releases OTP 29.0.4, 28.5.0.4 and 27.3.4.15 (erts 15.0 up to 17.0.4, 16.4.0.4 and 15.2.7.11). The BIT_BINARY_EXT tag (77) handler accepts an encoding with zero length and zero trailing bits, causing an unsigned underflow in the computed bitstring size; the resulting value near 2^64 is handed to the allocator, which terminates the entire VM with an abort rather than raising a catchable Erlang exception. The vulnerability is unauthenticated (CVSS 4.0 vector PR:N) but requires the target application to feed attacker-controlled bytes into binary_to_term/1,2 or enif_binary_to_term(), an application-design precondition reflected as AT:P in the vendor vector and assessed as AC:H in our CVSS 3.1 evaluation; impact is availability-only (C:N/I:N/A:H). There is no indication of active exploitation (not in CISA KEV; SSVC exploitation: none) and EPSS is low at 0.32% (24th percentile), and no public exploit code has been identified at time of analysis. Vendor-released patches are available.
RemediationAI
Vendor-released patches are available: upgrade to OTP 29.0.4, or to the branch backports 28.5.0.4 (OTP 28.x) or 27.3.4.15 (OTP 27.x), which ship erts 17.0.4, 16.4.0.4 and 15.2.7.11 respectively; the fix is upstream commit dc1bf9344c0ce62717cf60866590cea0242780fd, documented in GHSA-54pw-5645-jh86 and https://cna.erlef.org/cves/CVE-2026-54890.html, and Red Hat users should track RHSA-2026:47009 for backported packages. Because the crash is a VM-level abort, no in-VM mitigation is reliable: try/catch, supervision trees and the [safe] flag on binary_to_term/2 all fail to contain it, so patching is the only complete fix. Where immediate upgrade is not possible, treat ETF strictly as a trusted-boundary format: stop passing untrusted bytes to binary_to_term/1,2 or enif_binary_to_term() (for example, accept JSON, Protocol Buffers or another externally validated format from clients, or keep untrusted payloads as opaque binaries and never decode them in the exposed node) - the trade-off is application refactoring and possible loss of Erlang term fidelity; if decoding untrusted ETF is unavoidable, isolate it in a dedicated, disposable node that only speaks to untrusted peers and never holds state, so its abort does not take down the service tier - the trade-off is extra infrastructure, connection overhead and the need for a parent process (heart, systemd restart, or an external manager) to restart the sacrificial node; and confirm distribution is confined to trusted networks per OTP Secure Coding Guideline DSG-011, with TLS and cookie-based authentication on the distribution port and no distribution listener exposed to untrusted segments, which reduces but does not eliminate the risk for applications that legitimately decode untrusted ETF.
Affected VersionsENISA
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 External Term Format is Erlang's binary serialization protocol, decoded in the emulator by erts/emulator/beam/external.c and exposed to Erlang code through binary_to_term/1,2 and to NIFs through enif_binary_to_term(). The BIT_BINARY_EXT tag (77) encodes a bitstring as a byte length plus a trailing-bit count; a valid overlong zero-bit bitstring (encoded in the wild as 0 bytes with 0 trailing bits) should be normalized to an empty binary, but the original check only verified that the trailing-bit count and byte length were consistent and that trailing_bits did not exceed 8. By supplying length 0 and trailing bits 0, the subsequent size computation (roughly trailing_bits + 8*size, decremented and interpreted unsigned) underflows, yielding approximately 2^64, which is then passed as an allocation size and trips the allocator assertion, e.g. 'Cannot allocate 2305843009213693951 bytes of memory (of type binary)'. This is CWE-191 (Integer Underflow / Wrap or Wraparound) in the erts decode path, and the fix (upstream commit dc1bf9344c0ce62717cf60866590cea0242780fd) rewrites the guard to reject trailing_bits < 1, trailing_bits > 8, or size_in_bits < 8, with a regression test in erts/emulator/test/binary_SUITE.erl covering the overlong 0-bit bitstring <<131,77,0,0,0,0,0>>. Critically, this is a VM-level abort, not an Erlang-level exception: it cannot be trapped by try/catch or supervision trees, and the [safe] option to binary_to_term/2 does not help because [safe] only restricts atom creation and performs no structural validation of binary encodings. The Erlang distribution protocol traverses the same decoder, but per the OTP Secure Coding Guidelines (DSG-011) distribution is expected to run on trusted networks, so distribution-only exposure is not considered a realistic attack surface.
Know when Erlang Otp 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
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
Network-reachable and unauthenticated, but AC:H because it requires an application that feeds untrusted input to ETF decoding; impact is availability-only (uncatchable node abort), so C:N/I:N/A:H.
AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:N/A:H
Primary rating from Vendor (6b3ad84c-e1a6-4bf7-a703-f496b71e49db).
CVSS VectorVendor: 6b3ad84c-e1a6-4bf7-a703-f496b71e49db
DescriptionCVE.org
Integer Underflow (Wrap or Wraparound) vulnerability in erlang otp erlang/otp (erts modules), erlang otp erts (erts modules) allows Forced Integer Overflow, Excessive Allocation. This vulnerability is associated with program files erts/emulator/beam/external.c, emulator/beam/external.c.
The BIT_BINARY_EXT tag (77) handler in the External Term Format (ETF) decoder accepts an encoding with both length and trailing-bits fields set to zero. The subsequent computation of the bitstring size underflows an unsigned integer, producing a value of roughly 2^64 that is then passed as a memory allocation size. The allocator aborts the entire node with a message such as "Cannot allocate 2305843009213693951 bytes of memory (of type binary)".
The crash is a VM-level abort, not an Erlang-level exception. It cannot be intercepted by supervision trees, by try/catch, or by passing the [safe] option to binary_to_term/2 (which only restricts atom creation and does not perform structural validation of binary encodings).
Any application that decodes ETF from untrusted sources via binary_to_term/1,2 or enif_binary_to_term() is exposed. The Erlang distribution protocol also decodes incoming terms through the same code path, but distribution is expected to run on trusted networks per the OTP Secure Coding Guidelines (DSG-011).
This issue affects OTP from OTP 27.0 before OTP 29.0.4, OTP 28.5.0.4 and OTP 27.3.4.15, corresponding to erts from 15.0 before 17.0.4, 16.4.0.4 and 15.2.7.11.
Executive ViewAI
A remotely reachable input-validation flaw in Erlang/OTP can crash an entire node, taking down any service built on it - messaging platforms, telecom infrastructure, message brokers, and distributed databases. Although no public exploit code or active exploitation has been observed, the trigger is a single malicious byte sequence delivered to any endpoint that decodes External Term Format data from untrusted sources, making availability loss achievable with minimal attacker effort. Leadership should care because the failure mode is a full virtual machine abort rather than a contained error, so a single inbound packet can produce a complete service outage rather than a degraded one.
Apply vendor patch.
Threat Intelligence Overview
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.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Integer overflow occurs when an arithmetic operation produces a result that exceeds the maximum value a given integer type can store.
Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.
More in Erlang Otp
View allErlang/OTP SSH server allows unauthenticated remote code execution by exploiting a flaw in SSH protocol message handling
The Erlang otp TLS server answers with different TLS alerts to different error types in the RSA PKCS #1 1.5 padding. Rat
The SSH transport protocol with certain OpenSSH extensions, found in OpenSSH before 9.6 and other products, allows remot
Multiple CRLF injection vulnerabilities in the FTP module in Erlang/OTP R15B03 allow context-dependent attackers to inje
A local privilege escalation vulnerability was discovered in Erlang/OTP prior to version 23.2.3. Rated high severity (CV
An issue was discovered in Erlang/OTP 18.x. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitab
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
Denial of service in Erlang/OTP's TLS handshake allows remote unauthenticated attackers to crash the BEAM VM by sending
TLS server impersonation in Erlang/OTP's public_key library lets a name-constrained subordinate CA forge a trusted ident
Erlang/OTP 22.3.x before 22.3.4.6 and 23.x before 23.1 allows Directory Traversal. Rated high severity (CVSS 7.5), this
Certificate chain forgery in Erlang/OTP's public_key application (pubkey_cert module) lets a non-CA end-entity certifica
OCSP responder certificate validity bypass in Erlang OTP's public_key library allows forged OCSP responses-signed with t
Same weakness CWE-191 – Integer Underflow
View allSame technique Denial Of Service
View allVendor StatusVendor
SUSE
Severity: Moderate| Product | Status |
|---|---|
| SUSE Linux Enterprise High Performance Computing 15 SP7 | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP7 | Not-Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP7 | Not-Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP7 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP7 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP7 | Not-Affected |
| SUSE Linux Enterprise Server 16.0 | Affected |
| SUSE Linux Enterprise Server 16.1 | Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP7 | Not-Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP7 | Not-Affected |
| SUSE Linux Enterprise Server for SAP applications 16.0 | Affected |
| SUSE Linux Enterprise Server for SAP applications 16.1 | Affected |
| openSUSE Leap 16.0 | Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4 | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5 | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-LTSS | Not-Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP4 | Not-Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP5 | Not-Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP6 | Not-Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP6 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP4 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP4-LTSS | Not-Affected |
| SUSE Linux Enterprise Server 15 SP5 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP5-LTSS | Not-Affected |
| SUSE Linux Enterprise Server 15 SP6 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP6 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP6-LTSS | Not-Affected |
| SUSE Linux Enterprise Server 15 SP6-LTSS | Not-Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP6 | Not-Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP6 | Not-Affected |
| SUSE Manager Proxy 4.3 | Not-Affected |
| SUSE Manager Proxy LTS 4.3 | Not-Affected |
| SUSE Manager Retail Branch Server 4.3 | Not-Affected |
| SUSE Manager Retail Branch Server LTS 4.3 | Not-Affected |
| SUSE Manager Server 4.3 | Not-Affected |
| SUSE Manager Server LTS 4.3 | Not-Affected |
| SUSE Enterprise Storage 7 | Not-Affected |
| SUSE Enterprise Storage 7.1 | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2 | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2-ESPOS | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP2-LTSS | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3 | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3-ESPOS | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP3-LTSS | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP6 | Not-Affected |
| SUSE Linux Enterprise High Performance Computing 15 SP6 | Not-Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP2 | Not-Affected |
| SUSE Linux Enterprise Module for Server Applications 15 SP3 | Not-Affected |
| SUSE Linux Enterprise Real Time 15 SP2 | Not-Affected |
| SUSE Linux Enterprise Real Time 15 SP3 | Not-Affected |
| SUSE Linux Enterprise Real Time 15 SP4 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP2 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP2-BCL | Not-Affected |
| SUSE Linux Enterprise Server 15 SP2-LTSS | Not-Affected |
| SUSE Linux Enterprise Server 15 SP3 | Not-Affected |
| SUSE Linux Enterprise Server 15 SP3-BCL | Not-Affected |
| SUSE Linux Enterprise Server 15 SP3-LTSS | Not-Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP2 | Not-Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP3 | Not-Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP4 | Not-Affected |
| SUSE Linux Enterprise Server for SAP Applications 15 SP5 | Not-Affected |
| SUSE Manager Proxy 4.1 | Not-Affected |
| SUSE Manager Proxy 4.2 | Not-Affected |
| SUSE Manager Retail Branch Server 4.1 | Not-Affected |
| SUSE Manager Retail Branch Server 4.2 | Not-Affected |
| SUSE Manager Server 4.1 | Not-Affected |
| SUSE Manager Server 4.2 | Not-Affected |
| openSUSE Leap 15.3 | Not-Affected |
| openSUSE Leap 15.4 | Not-Affected |
| openSUSE Leap 15.5 | Not-Affected |
| openSUSE Leap 15.6 | Not-Affected |
| openSUSE Leap 15.6 | Not-Affected |
EUVD-2026-49326
NVD
CVE.org
EPSS
Vulnrichment
GitHub
Exploit-DB