CVE-2026-96596 in OTP
Zusammenfassung
von VulDB • 15.10.2026
Eine Schwachstelle mit einer nicht erreichbaren Exit-Bedingung („Endlosschleife“) in Erlang OTP stdlib (erl_tar-Modul), hexpm hex_core (hex_erl_tar-Modul), hexpm hex (mix_hex_erl_tar-Modul) und erlang rebar3 (r3_hex_erl_tar-Modul) ermöglicht es einem Angreifer, der ein tar-Archiv bereitstellt, einen Denial-of-Service-Angriff durchzuführen, indem ein speziell konstruiertes GNU-sparse-Mitglied verwendet wird.
Wenn erl_tar:extract/1,2 ein Mitglied auf die Festplatte schreibt, liest erl_tar:stream_to_file_loop/3 es standardmäßig in 65536-Byte-Chunks. Für ein GNU-sparse-Mitglied, dessen sparse map vor seiner tatsächlichen Größe endet, stimmt erl_tar:do_sparse_read/3 seine trailing-hole-Klausel (Nachlauf-Loch) vor der Klausel für die Länge Null ab. Nachdem der Chunk aufgebraucht ist, liest die trailing-hole-Klausel null Bytes, bewegt die Position nicht weiter und rekursiert endlos. Ein 2048-Byte-Archiv hält den extrahierenden Prozess und einen Scheduler bis zur Beendigung des Prozesses beschäftigt. Die Option {max_size, N} verhindert dies nur, wenn N unter der tatsächlichen Größe des Mitglieds liegt. Die Extraktion mit der memory-Option ist davon nicht betroffen.
hex_core liefert eine eigene Kopie von erl_tar als hex_erl_tar aus, und Hex sowie rebar3 liefern hex_core mit vorangestellten Modulnamen (mix_hex_erl_tar und r3_hex_erl_tar). Diese Kopien enthalten denselben Code und rufen stdlib's erl_tar nicht auf, sodass sie bei jeder OTP-Version betroffen sind. OTP 28 ist nicht betroffen, jedoch ist eine Anwendung, die unter OTP 28 ausgeführt wird, betroffen, wenn sie Archive über eine betroffene Version von hex_core, Hex oder rebar3 extrahiert.
Dieses Problem betrifft OTP ab OTP 29.0 vor OTP 29.1.2, entsprechend stdlib ab 8.0 vor 8.1.1 sowie rebar3 ab 3.27.1 und hex ab 2.4.2; hex_core: ab 0.14.0.
If you want to get best quality of vulnerability data, you may have to visit VulDB.