Medium · published June 10, 2026
Stack-based Buffer Overflow vulnerability in Erlang OTP (erl_interface) allows Stack-based Buffer Overflow.
This vulnerability is associated with program file lib/erl_interface/src/misc/ei_printterm.c and program routine ei_s_print_term.
The C function ei_s_print_term uses an internal 2000-character stack buffer to format terms. When called with an encoded Erlang term containing a very large integer (encoded representation exceeding 2000 characters), the buffer overflows. The overflow bytes are restricted to the ASCII values of 0-9 and A-F, which limits exploitation to Denial of Service.
The companion function ei_print_term, which prints directly to a FILE instead of a memory buffer, does not contain this bug.
This issue affects OTP from OTP 17.0 before OTP 27.3.4.13, OTP 28.5.0.2, and OTP 29.0.2, corresponding to erl_interface from 3.7.16 before 5.5.2.1, 5.7.0.1, and 5.8.1. Whether OTP before OTP 17.0, corresponding to erl_interface before 3.7.16, is affected is unknown.
| Product | Versions | Fixed in |
|---|---|---|
| erlang/erl_interface | ≥ 3.7.16, < 5.5.2.1 | 5.5.2.1 |
| erlang/erl_interface | ≥ 5.7, < 5.7.0.1 | 5.7.0.1 |
| erlang/erl_interface | ≥ 5.8, < 5.8.1 | 5.8.1 |
| erlang/erlang\/otp | ≥ 17.0, < 27.3.4.13 | 27.3.4.13 |
| erlang/erlang\/otp | ≥ 28.0, < 28.5.0.2 | 28.5.0.2 |
| erlang/erlang\/otp | ≥ 29.0, < 29.0.2 | 29.0.2 |