Executive brief
Erlang OTP's ASN.1 library contains an inefficient decoder for OBJECT IDENTIFIER values that processes crafted identifiers in quadratic time relative to their size. An attacker can send a specially crafted X.509 certificate with a malformed OID during a TLS handshake to cause a Erlang service to consume excessive CPU and become unresponsive, without requiring authentication or valid trust chain verification. This affects any Erlang application using TLS, including web servers and services that accept client certificates.
Technical details
The BER/PER/JER OID decoders in asn1rtt_ber:dec_subidentifiers/3, asn1rtt_per_common:dec_subidentifiers/3, and asn1rtt_jer:json2oid/1 accumulate base-128 encoded subidentifiers using unbounded integer arithmetic with O(n²) algorithmic complexity per continuation byte. The vulnerability is triggered during X.509 certificate parsing via public_key:pkix_decode_cert/2, which executes before signature or trust verification. A ~262 KB crafted OID can consume ~13 seconds of CPU on typical hardware, enabling remote DoS against TLS endpoints.
Affected products
- Erlang OTP 17.0 before 27.3.4.18, 28.x before 28.5.0.7, 29.x before 29.1.1
- Erlang asn1 3.0 before 5.3.4.3, 5.4.x before 5.4.3.1, 5.5.x before 5.5.2
Timeline
- 2026-09-22: disclosed