Am I affected?

type your erlang.org/otp version to check

Description

Improper Validation of Specified Quantity in Input vulnerability in Erlang/OTP eldap allows a malicious or compromised LDAP server to degrade availability by returning a referral URL whose port component is a very long run of digits.

eldap:parse_port/2 passes the port substring straight to list_to_integer/1 with no length bound. The surrounding try ... catch only rejects a value that fails to parse, so a syntactically valid port of up to roughly 1.26 million digits converts successfully and costs the caller hundreds of milliseconds of arbitrary-precision arithmetic per referral. The conversion function itself is documented to accept integers of any size, so bounding the input is the caller's responsibility. Reaching the flaw requires the application to pass a server-supplied referral to eldap:parse_ldap_url/1, which eldap never calls itself: referral strings are returned to the caller unparsed.

This issue affects OTP from OTP 17.0 before OTP 27.3.4.17, from OTP 28.0 before OTP 28.5.0.6, and from OTP 29.0 before OTP 29.0.6, corresponding to eldap from 1.0.3 before 1.2.14.2, from 1.2.15 before 1.2.16.1, and from 1.3 before 1.3.1.

Weaknesses & attack patterns

Weakness

CWE-1284 · Improper Validation of Specified Quantity in Input in catalog → MITRE ↗

Attack patterns

CAPEC-231 · Oversized Serialized Data Payloads MITRE ↗

Affected — Erlang

17.0 < 27.3.4.17 affected
maint-28 28.0 < 28.5.0.6 affected
maint-29 29.0 < 29.0.6 affected
every other version: unaffected
cpe cpe:2.3:a:erlang:erlang/otp:*:*:*:*:*:*:*:*
modules · source files · routines
modules eldap
source files lib/eldap/src/eldap.erl
routines eldap:parse_port/2 · eldap:parse_hostport/1 · eldap:parse_ldap_url/1

Affected — pkg:otp/eldap Repository ↗

1.0.3 < 1.2.14.2 affected
1.2.15 < 1.2.16.1 affected
1.3 < 1.3.1 affected
every other version: unaffected
cpe cpe:2.3:a:erlang:erlang/otp:*:*:*:*:*:*:*:*
modules · source files · routines
modules eldap
source files src/eldap.erl
routines eldap:parse_port/2 · eldap:parse_hostport/1 · eldap:parse_ldap_url/1

Affected — GitHub / erlang/otp Repository ↗

d8dbf15 and up affected
aba0fe8 not affected
e3be1cf not affected
every other version: unaffected
cpe cpe:2.3:a:erlang:erlang/otp:*:*:*:*:*:*:*:*
modules · source files · routines
modules eldap
source files lib/eldap/src/eldap.erl
routines eldap:parse_port/2 · eldap:parse_hostport/1 · eldap:parse_ldap_url/1

References

Credits

Eric Meadows-Jönsson Finder
Jonatan Männchen / EEF Finder
Peter Ullrich Finder
José Valim Finder
Konrad Pietrzak / Ericsson Remediation developer

CVSS breakdown

CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N
« All CVEs