Executive brief
A vulnerability exists in the Erlang runtime system (erts) used to build and run Erlang and Elixir applications. By providing a specially crafted data binary to the system's data conversion functions, an attacker can cause the virtual machine to crash. This results in a denial of service, potentially disrupting business operations and application availability.
Technical details
A vulnerability exists in the Erlang External Term Format (ETF) decoder within erts/emulator/beam/external.c. When processing a LARGE_TUPLE_EXT term, the validation function (decoded_size) treats the 32-bit arity field as unsigned, while the decoding function (dec_term) treats it as a signed integer. By providing an arity value such as 0x80000000, the decoder interprets the value as negative, causing the heap allocation pointer to move backward. This leads to an out-of-bounds heap write and a subsequent virtual machine abort. The issue is mitigated in patched versions by enforcing the MAX_ARITYVAL limit (16777215).
Affected products
- Erlang OTP 25.0 to 27.3.4.14, 28.0 to 28.5.0.3, 29.0 to 29.0.3
- Erlang erts 13.0 to 15.2.7.10, 16.0 to 16.4.0.3, 17.0 to 17.0.3
Timeline
- 2026-07-27: advisory
- 2026-07-27: disclosed
- 2026-07-27: patched