{
  "schemaVersion": 1,
  "attribution": [
    {
      "source": "CISA Known Exploited Vulnerabilities",
      "url": "https://www.cisa.gov/known-exploited-vulnerabilities-catalog",
      "licence": "US government work"
    },
    {
      "source": "GitHub Advisory Database",
      "url": "https://github.com/advisories",
      "licence": "CC BY 4.0"
    },
    {
      "source": "Have I Been Pwned",
      "url": "https://haveibeenpwned.com/",
      "licence": "CC BY 4.0"
    },
    {
      "source": "CVE Program (CVE records)",
      "url": "https://www.cve.org/Legal/TermsOfUse",
      "licence": "CVE Terms of Use",
      "notice": "Copyright © 1999-2026, The MITRE Corporation. CVE is a trademark and the CVE logo is a registered trademark of The MITRE Corporation.",
      "terms": "CVE Usage: MITRE hereby grants you a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Common Vulnerabilities and Exposures (CVE™). Any copy you make for such purposes is authorized provided that you reproduce MITRE's copyright designation and this license in any such copy."
    },
    {
      "source": "FIRST EPSS",
      "url": "https://www.first.org/epss/",
      "licence": "free to use; FIRST requests attribution"
    }
  ],
  "record": {
    "id": "CVE-2026-54890",
    "sourceURL": "https://www.cve.org/CVERecord?id=CVE-2026-54890",
    "idYear": 2026,
    "status": "PUBLISHED",
    "publishedAt": "2026-07-27T15:39:03.475Z",
    "updatedAt": "2026-07-28T09:55:08.138Z",
    "importedAt": "2026-10-24T01:58:20.586Z",
    "snapshot": {
      "id": "cve_2026-10-24_midnight_baseline",
      "at": "2026-10-24T00:00:00.000Z",
      "source": "https://github.com/CVEProject/cvelistV5/releases/tag/cve_2026-10-24_0100Z"
    },
    "facts": {
      "title": "BEAM VM crash via integer underflow in binary_to_term BIT_BINARY_EXT decoding",
      "summary": "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.\n\nThe 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)\".\n\nThe 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).\n\nAny 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).\n\nThis 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.",
      "affected": [
        {
          "vendor": "Erlang",
          "product": "OTP",
          "packageName": "erts",
          "defaultStatus": "unaffected",
          "versions": [
            {
              "version": "15.0",
              "status": "affected",
              "versionType": "otp",
              "lessThan": "*",
              "changes": [
                {
                  "at": "15.2.7.11",
                  "status": "unaffected"
                },
                {
                  "at": "16.4.0.4",
                  "status": "unaffected"
                },
                {
                  "at": "17.0.4",
                  "status": "unaffected"
                }
              ]
            }
          ]
        },
        {
          "vendor": "Erlang",
          "product": "OTP",
          "packageName": "erlang/otp",
          "collectionURL": "https://github.com",
          "defaultStatus": "unaffected",
          "versions": [
            {
              "version": "27.0",
              "status": "affected",
              "versionType": "otp",
              "lessThan": "*",
              "changes": [
                {
                  "at": "27.3.4.15",
                  "status": "unaffected"
                },
                {
                  "at": "28.5.0.4",
                  "status": "unaffected"
                },
                {
                  "at": "29.0.4",
                  "status": "unaffected"
                }
              ]
            },
            {
              "version": "24ef4cbaeda9b9c26682cba75f2f15b0c58722aa",
              "status": "affected",
              "versionType": "git",
              "lessThan": "dc1bf9344c0ce62717cf60866590cea0242780fd"
            }
          ]
        }
      ]
    }
  }
}