Skip to content
Heist/ feed
UnratedFix available

UBUNTU-CVE-2026-54890

Type: advisorySource: OSV1 source record

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.

Announced Group revision 1
Original source ↗

UBUNTU-CVE-2026-54890

Primary source · Revision 1

Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.

Security context

Source reference: osv:UBUNTU-CVE-2026-54890

erlang

Source reference: /affected/0/package/name

Affected versions
1:27.3.4.1+dfsg-1build1

Source reference: /affected/0/versions

1:27.3.4.3+dfsg-1

Source reference: /affected/0/versions

1:27.3.4.4+dfsg-1

Source reference: /affected/0/versions

1:27.3.4.6+dfsg-1

Source reference: /affected/0/versions

Fixed versions
1:27.3.4.6+dfsg-1ubuntu0.1

Source reference: /affected/0/ranges

Prerequisites
Not stated in this record

Structured affected-version data

Original package identities and version rules from this source.

[
  {
    "ranges": [
      {
        "type": "ECOSYSTEM",
        "events": [
          {
            "introduced": "0"
          },
          {
            "fixed": "1:27.3.4.6+dfsg-1ubuntu0.1"
          }
        ]
      }
    ],
    "package": {
      "name": "erlang",
      "purl": "pkg:deb/ubuntu/erlang?arch=source&distro=resolute",
      "ecosystem": "Ubuntu:26.04:LTS"
    },
    "versions": [
      "1:27.3.4.1+dfsg-1build1",
      "1:27.3.4.3+dfsg-1",
      "1:27.3.4.4+dfsg-1",
      "1:27.3.4.6+dfsg-1"
    ],
    "database_specific": {
      "source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-54890.json"
    },
    "ecosystem_specific": {
      "binaries": [
        {
          "binary_name": "erlang",
          "binary_version": "1:27.3.4.6+dfsg-1ubuntu0.1"
        },
        {
          "binary_name": "erlang-asn1",
          "binary_version": "1:27.3.4.6+dfsg-1ubuntu0.1"
        },
        {
          "binary_name": "erlang-base",
          "binary_version": "1:27.3.4.6+dfsg-1ubuntu0.1"
        },
        {
          "binary_name": "erlang-common-test",
          "binary_version": "1:27.3.4.6+dfsg-1ubuntu0.1"
        },
        {
          "binary_name": "erlang-crypto",
          "binary_version": "1:27.3.4.6+dfsg-1ubuntu0.1"
        },
        {
          "binary_name": "erlang-debugger",
          "binary_version": "1:27.3.4.6+dfsg-1ubuntu0.1"
        },
        {
          "binary_name": "erlang-dialyzer",
          "binary_version": "1:27.3.4.6+dfsg-1ubuntu0.1"
        },
        {
          "binary_name": "erlang-diameter",
          "binary_version": "1:27.3.4.6+dfsg-1ubuntu0.1"
        },
        {
          "binary_name": "erlang-edoc",
          "binary_version": "1:27.3.4.6+dfsg-1ubuntu0.1"
        },
        {
          "binary_name": "erlang-eldap",
          "binary_version": "1:27.3.4.6+dfsg-1ubuntu0.1"
        },
        {
          "binary_name": "erlang-et",
          "binary_version": "1:27.3.4.6+dfsg-1ubuntu0.1"
        },
        {
          "binary_name": "erlang-eunit",
          "binary_version": "1:27.3.4.6+dfsg-1ubuntu0.1"
        },
        {
          "binary_name": "erlang-examples",
          "binary_version": "1:27.3.4.6+dfsg-1ubuntu0.1"
        },
        {
          "binary_name": "erlang-ftp",
          "binary_version": "1:27.3.4.6+dfsg-1ubuntu0.1"
        },
        {
          "binary_name": "erlang-inets",
          "binary_version": "1:27.3.4.6+dfsg-1ubuntu0.1"
        },
        {
          "binary_name": "erlang-jinterface",
          "binary_version": "1:27.3.4.6+dfsg-1ubuntu0.1"
        },
        {
          "binary_name": "erlang-megaco",
          "binary_version": "1:27.3.4.6+dfsg-1ubuntu0.1"
        },
        {
          "binary_name": "erlang-mnesia",
          "binary_version": "1:27.3.4.6+dfsg-1ubuntu0.1"
        },
        {
          "binary_name": "erlang-mode",
          "binary_version": "1:27.3.4.6+dfsg-1ubuntu0.1"
        },
        {
          "binary_name": "erlang-nox",
          "binary_version": "1:27.3.4.6+dfsg-1ubuntu0.1"
        },
        {
          "binary_name": "erlang-observer",
          "binary_version": "1:27.3.4.6+dfsg-1ubuntu0.1"
        },
        {
          "binary_name": "erlang-odbc",
          "binary_version": "1:27.3.4.6+dfsg-1ubuntu0.1"
        },
        {
          "binary_name": "erlang-os-mon",
          "binary_version": "1:27.3.4.6+dfsg-1ubuntu0.1"
        },
        {
          "binary_name": "erlang-parsetools",
          "binary_version": "1:27.3.4.6+dfsg-1ubuntu0.1"
        },
        {
          "binary_name": "erlang-public-key",
          "binary_version": "1:27.3.4.6+dfsg-1ubuntu0.1"
        },
        {
          "binary_name": "erlang-reltool",
          "binary_version": "1:27.3.4.6+dfsg-1ubuntu0.1"
        },
        {
          "binary_name": "erlang-runtime-tools",
          "binary_version": "1:27.3.4.6+dfsg-1ubuntu0.1"
        },
        {
          "binary_name": "erlang-snmp",
          "binary_version": "1:27.3.4.6+dfsg-1ubuntu0.1"
        },
        {
          "binary_name": "erlang-src",
          "binary_version": "1:27.3.4.6+dfsg-1ubuntu0.1"
        },
        {
          "binary_name": "erlang-ssh",
          "binary_version": "1:27.3.4.6+dfsg-1ubuntu0.1"
        },
        {
          "binary_name": "erlang-ssl",
          "binary_version": "1:27.3.4.6+dfsg-1ubuntu0.1"
        },
        {
          "binary_name": "erlang-syntax-tools",
          "binary_version": "1:27.3.4.6+dfsg-1ubuntu0.1"
        },
        {
          "binary_name": "erlang-tftp",
          "binary_version": "1:27.3.4.6+dfsg-1ubuntu0.1"
        },
        {
          "binary_name": "erlang-tools",
          "binary_version": "1:27.3.4.6+dfsg-1ubuntu0.1"
        },
        {
          "binary_name": "erlang-wx",
          "binary_version": "1:27.3.4.6+dfsg-1ubuntu0.1"
        },
        {
          "binary_name": "erlang-x11",
          "binary_version": "1:27.3.4.6+dfsg-1ubuntu0.1"
        },
        {
          "binary_name": "erlang-xmerl",
          "binary_version": "1:27.3.4.6+dfsg-1ubuntu0.1"
        }
      ],
      "availability": "No subscription required"
    }
  }
]

Publisher severity

No explicit severity was provided.

Event
#23711 · Revision 1
Added to Heist Feed
Publisher date
Read the original announcement