OTP: Integer Underflow (Wrap or Wraparound)
CVE-2026-54890 is a high-severity integer underflow (wrap or wraparound) vulnerability in OTP from Erlang, with a CVSS 3.1 base score of 7.5 out of 10. It can be exploited remotely over the network by an unauthenticated attacker, without any action from a user. The record lists version dc1bf9344c0ce62717cf60866590cea0242780fd as the first without the flaw, so updating OTP to that release or later removes the exposure. There is no confirmed exploitation so far. EPSS estimates a 0.45% chance of exploitation within 30 days, which is low compared with other CVEs.
High severity with no evidence of exploitation so far.
What to do
- Update OTP to dc1bf9344c0ce62717cf60866590cea0242780fd or a later version.
- Update Erlang/otp to 27.3.4.15 or 28.5.0.4 or 29.0.4, whichever matches your release line, or a later version.
- Update Erts to 15.2.7.11 or 16.4.0.4 or 17.0.4, whichever matches your release line, or a later version.
- Read the advisory on github.com for workarounds and exact fixed builds.
- Until you can update, restrict network access to the affected service so it is not reachable from untrusted networks.
Affected products and versions
| Vendor | Product | Affected versions | Fixed in |
|---|---|---|---|
| Erlang | OTP | 27.0 and later; 15.0 and later; 24ef4cbaeda9b9c26682cba75f2f15b0c58722aa up to, but not including, dc1bf9344c0ce62717cf60866590cea0242780fd | dc1bf9344c0ce62717cf60866590cea0242780fd |
| Erlang | Erlang/otp | 27.0 up to, but not including, 27.3.4.15; 28.0 up to, but not including, 28.5.0.4; 29.0 up to, but not including, 29.0.4 | 27.3.4.15, 28.5.0.4, 29.0.4 |
| Erlang | Erts | 15.0 up to, but not including, 15.2.7.11; 16.0 up to, but not including, 16.4.0.4; 17.0 up to, but not including, 17.0.4 | 15.2.7.11, 16.4.0.4, 17.0.4 |
Version data comes from the organisation that assigned the CVE. Confirm against the vendor advisory before deciding you are unaffected.
How the severity score breaks down
- Attack vector
- NetworkCan be exploited remotely over a network, including the internet.
- Attack complexity
- LowNo special conditions are needed; the attack works reliably.
- Privileges required
- NoneNo account or login is needed.
- User interaction
- NoneNo action by a victim is required.
- Scope
- UnchangedImpact stays within the vulnerable component.
- Confidentiality
- NoneNo data is disclosed.
- Integrity
- NoneNothing can be modified.
- Availability
- HighThe component can be taken down completely.
Vector: CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H. Scored by NVD.
| Scoring system | Score | Severity | Scored by |
|---|---|---|---|
| CVSS 4.0 | 8.2 | High | CNA |
| CVSS 3.1 | 7.5 | High | NVD |
Official description
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 27.3.4.15, OTP 28.5.0.4, and OTP 29.0.4, corresponding to erts from 15.0 before 15.2.7.11, 16.4.0.4, and 17.0.4.
Source: the CVE record as published by its numbering authority, via NVD and CVE.org.
The underlying weakness: Integer Underflow (Wrap or Wraparound)
The product subtracts one value from another, such that the result is less than the minimum allowable integer value, which produces a value that is not equal to the correct result.
More Integer Underflow (Wrap or Wraparound) vulnerabilities (CWE-191)
Timeline
- CVE record published.
- CISA published its SSVC assessment (exploitation: none, automatable: no, technical impact: partial).
- Record last changed materially (score, affected products, status or references).
References
Patches and release notes
- cna.erlef.org/cves/CVE-2026-54890.htmlThird Party Advisory
- github.com/erlang/otp/commit/24ef4cbaeda9b9c26682cba75f2f15b0c58722aa
- github.com/erlang/otp/commit/dc1bf9344c0ce62717cf60866590cea0242780fd
- osv.dev/vulnerability/EEF-CVE-2026-54890Third Party Advisory
- erlang.org/doc/system/versions.html#order-of-versionsRelease Notes
Other vulnerabilities in OTP
- 8.2 High severity
- 9.3 Critical severity
- 7.1 High severity
- 8.2 High severity
- 8.2 High severity
- 8.7 High severity
Recent Integer Underflow (Wrap or Wraparound) vulnerabilities
- 8.8 High severity
- 7.8 High severity
- 8.8 High severity
- 7.8 High severity
- 9.3 Critical severity
- 8.8 High severity
Spotted an error? Tell us.