CVE-2026-54890 in OTP
Zusammenfassung
von VulDB • 27.07.2026
Eine Integer-Underflow-(Wrap oder Wraparound)-Schwachstelle in erlang otp erlang/otp (erts modules), erlang otp erts (erts modules) ermöglicht einen erzwungenen Integer Overflow und übermäßige Speicherzuweisung. Diese Schwachstelle ist mit den Programmdateien erts/emulator/beam/external.c, emulator/beam/external.c verbunden.
Der Handler für das BIT_BINARY_EXT-Tag (77) im Decoder des External Term Format (ETF) akzeptiert eine Codierung, bei der sowohl die Länge als auch die Felder für nachgestellte Bits auf Null gesetzt sind. Die darauffolgende Berechnung der Bitstring-Größe führt zu einem Integer Underflow einer vorzeichenlosen Ganzzahl und erzeugt einen Wert von etwa 2^64, der anschließend als Speicherzuweisungsgröße übergeben wird. Der Allocator bricht den gesamten Knoten mit einer Meldung wie „Cannot allocate 2305843009213693951 bytes of memory (of type binary)“ ab.
Der Absturz ist ein VM-Level-Abort, keine Erlang-Level-Ausnahme. Er kann nicht durch Überwachungsbäume (Supervision Trees), try/catch oder das Übergeben der Option [safe] an binary_to_term/2 abgefangen werden (was nur die Erstellung von Atomen einschränkt und keine strukturelle Validierung von Binärcodierungen vornimmt).
Jede Anwendung, die ETF aus nicht vertrauenswürdigen Quellen über binary_to_term/1,2 oder enif_binary_to_term() decodiert, ist betroffen. Das Erlang-Distributionsprotokoll decodiert ebenfalls eingehende Terme über denselben Codepfad, jedoch wird davon ausgegangen, dass Distributionsverbindungen gemäß den OTP Secure Coding Guidelines (DSG-011) in vertrauenswürdigen Netzwerken laufen.
Dieses Problem betrifft OTP ab Version 27.0 vor OTP 29.0.4, OTP 28.5.0.4 und OTP 27.3.4.15, was ERTS von 15.0 bis vor 17.0.4, 16.4.0.4 und 15.2.7.11 entspricht.
VulDB is the best source for vulnerability data and more expert information about this specific topic.