Skip to main content

Dropbox esaml EUVDEUVD-2026-108035

| CVE-2026-105270 HIGH
Allocation of Resources Without Limits or Throttling (CWE-770)
2026-10-22 6b3ad84c-e1a6-4bf7-a703-f496b71e49db GHSA-6m7w-85hw-3q64
8.7
CVSS 4.0 · Vendor: 6b3ad84c-e1a6-4bf7-a703-f496b71e49db
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Locate unauthenticated SAML ACS/SLO endpoint
  2. Delivery
    Craft SAMLResponse with thousands of unique names
  3. Exploit
    POST to endpoint before signature check
  4. Execution
    xmerl interns each name as permanent atom
  5. Persist
    Repeat to exhaust atom table
  6. Impact
    Erlang VM node crashes (DoS)

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A06:2025 - Insecure Design
ASVS 5.0
V2 - Validation and Business Logic Resource allocation limits
MITRE ATT&CK

1 technique across 1 tactic: Impact

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The target must run a service that uses esaml (0.1.0 or later) and expose its SAML assertion-consumer (ACS) or single-logout (SLO) endpoint, which esaml parses via esaml_binding:decode_response/2 before any signature validation - so no authentication, credentials, or valid SAML trust relationship is required. No non-default configuration is needed beyond having SAML SSO enabled, which is the library's intended use. The practical limiting factor is reach rather than access: exploitation only affects deployments that actually use this specific Erlang library, and the impact is confined to availability (node crash) with no data exposure. An additional amplifying condition is that co-located applications sharing the same Erlang VM would also go down when the node aborts.

Impact

This is a genuine but narrowly-scoped availability risk. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:N) confirms a remote, low-complexity, unauthenticated trigger with no user interaction, and the impact profile is purely availability (VC:N/VI:N/VA:H) - there is no confidentiality or integrity exposure. The mechanism is credible and well-documented in the advisory and patch commit: esaml_binding:decode_response/2 feeds attacker-controlled XML to xmerl_scan, which interns element/attribute/namespace names as permanent Erlang atoms; because the ACS and single-logout endpoints parse before any signature check, and the atom table is capped near one million entries and never garbage-collected, a few dozen crafted 128 KB requests can abort the entire node. No EPSS score, no CISA KEV listing, and no public proof-of-concept were provided in the input, so there is no public exploit identified at time of analysis and no evidence of active exploitation - exploitation ease is high in principle but opportunistic weaponization is unproven. The dominant factor limiting real-world priority is product reach: esaml is a niche Erlang SAML library, not widely-deployed infrastructure, so despite the 8.7 score this should be treated as a patch-promptly-where-used item rather than an emergency across a broad fleet. Note the full-node crash could affect co-hosted applications sharing the Erlang VM, a scope consideration not captured by the input vector's SC/SI/SA:N.

Exploit ScenarioDerived

An attacker identifies a web service using esaml for SAML SSO and locates its assertion-consumer (ACS) or single-logout endpoint, both reachable without authentication. They POST a well-formed SAMLResponse containing thousands of distinct element, attribute, and namespace names while staying under the 128 KB body limit, and repeat it a few dozen times; each unique name is interned as a permanent atom, exhausting the ~1 million-entry atom table and crashing the entire Erlang node. No public exploit code is identified at time of analysis, but the technique is simple and fully described in the advisory.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
No patch listed yet 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Oct 22, 2026

Unauthenticated remote attackers can crash an Erlang node running the Dropbox esaml SAML library (versions 0.1.0 and later) by sending a crafted SAMLResponse to the SAML assertion-consumer (ACS) or single-logout (SLO) endpoint. Because esaml_binding:decode_response/2 hands the decoded XML to xmerl_scan:string/2 before any signature check, every distinct element name, attribute name, and namespace prefix in the document is interned as a permanent Erlang atom; a few dozen requests carrying documents with thousands of unique names exhaust the roughly one-million-entry atom table and abort the VM. The CNA rates this CVSS 4.0 at 8.7, while independent assessment aligns with a CVSS:3.1 vector of AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H - pure availability impact with no confidentiality or integrity loss; no public exploit code was identified at time of analysis and there is no CISA KEV listing, though the flaw is trivially reachable by anyone who can POST to a SAML endpoint.

RemediationAI

The primary fix is to update esaml to a revision containing commit deeb84378d5c82153b470e99d24f77c38afca14a (https://github.com/dropbox/esaml/commit/deeb84378d5c82153b470e99d24f77c38afca14a); this is an upstream commit-level fix, and a released patched version number was not independently confirmed, so rebar/hex pins should be pointed at the fixed revision or a later tag explicitly confirmed against the advisory at https://cna.erlef.org/cves/CVE-2026-105270.html rather than assumed. If patching must be deferred, restrict the ACS and SLO paths at the reverse proxy or WAF to the source addresses of the expected identity providers (SAML POST binding traffic originates from the IdP, not arbitrary clients) - the trade-off is that legitimate IdPs with dynamic or broad egress ranges, or users behind IdP-initiated flows from new addresses, will break until the allowlist is updated. Add per-source rate limiting on those endpoints as a secondary brake, accepting that distributed sources can still accumulate atoms slowly. Lowering the HTTP request body limit below 128 KB reduces atoms minted per request but does not eliminate the attack, since a small document with very short unique names still interns thousands of atoms, and it may reject legitimate large assertions carrying many attributes. Raising the atom table ceiling with the Erlang +t emulator flag buys headroom but only delays the crash and increases memory footprint, so it should be treated as temporary insurance, not a fix. Because a successful attack aborts the entire VM, running the SAML service provider in a dedicated Erlang node with no co-located applications limits blast radius. Monitor erlang:system_info(atom_count) against the configured limit and alert on abnormal growth as a detection control for exploitation attempts. Full details are also tracked at https://osv.dev/vulnerability/EEF-CVE-2026-105270.

Affected VersionsENISA

esaml deeb84378d5c82153b470e99d24f77c38afca14a <*
esaml 0.1.0 <*

Affects your stack

Find out whether the stacks and servers you run are on an affected version.

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

esaml is an Erlang SAML service-provider library built on xmerl, the OTP-native XML parser, and cowboy for HTTP handling. The root cause is CWE-770 (Allocation of Resources Without Limits or Throttling) applied to the Erlang atom table: atoms are globally interned, never garbage collected, and capped by default at 1,048,576 entries (tunable with the +t emulator flag), after which the VM terminates with a system_limit error. xmerl_scan:string/2 converts XML element names, attribute names, and namespace prefixes into atoms as part of building its #xmlElement records, so a single well-formed SAML document containing thousands of distinct tag or attribute names creates thousands of permanent atoms - and the payload need only stay under the 128 KB request body limit esaml deployments typically enforce, meaning roughly 4,000-8,000 unique names per request depending on name length. The vulnerable path is reached from the ACS and SLO handlers via esaml_binding:decode_response/2, which parses the base64-decoded SAMLResponse before the library validates the XML signature or any assertion conditions, so no valid trust relationship, credential, or prior session is required. The impact is confined to the VM hosting the library; however, because Erlang nodes commonly co-host multiple applications, a crash takes down every co-located service on that node. No CPE identifiers were supplied with the CVE record, so affected-product scoping rests on the package name and version range. The upstream remediation commit is deeb84378d5c82153b470e99d24f77c38afca14a, mirrored across the dropbox/esaml, arekinath/esaml, and handnot2/esaml repositories, indicating the fix propagates to the project's principal forks.

Know when Erlang gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (6b3ad84c-e1a6-4bf7-a703-f496b71e49db) PRIMARY 8.7 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
vuln.today AI 7.5 HIGH

Unauthenticated remote request to a pre-signature-check endpoint gives AV:N/AC:L/PR:N/UI:N; impact is availability-only (A:H), with C:N/I:N and S:U for the vulnerable node.

3.1 AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
4.0 AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N

Primary rating from Vendor (6b3ad84c-e1a6-4bf7-a703-f496b71e49db).

CVSS VectorVendor: 6b3ad84c-e1a6-4bf7-a703-f496b71e49db

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
None
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
High
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Allocation of Resources Without Limits or Throttling vulnerability in esaml_binding in dropbox esaml allows an unauthenticated attacker to exhaust the Erlang VM atom table and crash the node via a crafted SAMLResponse.

esaml_binding:decode_response/2 parses the decoded SAMLResponse with xmerl_scan:string/2, which interns every element name, attribute name, and namespace prefix it reads as a permanent atom. The SAML consume (ACS) and single-logout endpoints call it on unauthenticated requests before any signature check, so one well-formed document with thousands of distinct names mints thousands of atoms while staying inside the 128 KB request body limit. Atoms are never reclaimed and the VM caps the atom table at about one million entries, so a few dozen requests abort the node.

This issue affects esaml: from 0.1.0 onward.

Executive ViewAI

Why It Matters

Dropbox's esaml SAML library (versions 0.1.0 and later), embedded in Erlang-based identity services, can be crashed by unauthenticated HTTP requests, taking down SAML assertion-consumer and single-logout endpoints. No credentials or public exploit code are required, and a successful attack produces a full authentication outage rather than data compromise. Leadership should treat this as an availability risk to the enterprise login path, with impact proportional to how widely the affected Erlang nodes front authentication for customers and staff.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: enforce strict HTTP body-size limits and reject SAMLResponse documents with excessive unique element, attribute, or namespace names at a reverse proxy or WAF before they reach esaml_binding:decode_response/2; rate-limit and IP-allowlist ACS/SLO endpoints where operationally feasible; monitor Erlang atom-table utilization and VM memory with automatic restart and load-balancer health checks; and run affected nodes with spare capacity so a single VM abort does not cause an authentication outage.

Threat Intelligence Overview

EPSS Score
0.3%
Top 73% exploitable
Prevalence
Low
niche open-source Erlang SAML library, limited deployment footprint
Social Media
1
Sightings
Data Quality
6 sources
Confidence: High

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available No
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Open
Automatable· derived
Yes
Human Impact
High

Priority Score

44
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +44
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Denial of Service attacks render applications or systems unavailable by overwhelming resources or triggering failure conditions.

More in Erlang

View all
CVE-2025-32433 CRITICAL POC
10.0 Apr 16

Erlang/OTP SSH server allows unauthenticated remote code execution by exploiting a flaw in SSH protocol message handling

CVE-2017-1000385 MEDIUM POC
5.9 Dec 12

The Erlang otp TLS server answers with different TLS alerts to different error types in the RSA PKCS #1 1.5 padding. Rat

CVE-2023-48795 MEDIUM POC
5.9 Dec 18

The SSH transport protocol with certain OpenSSH extensions, found in OpenSSH before 9.6 and other products, allows remot

CVE-2020-13802 CRITICAL POC
9.8 Sep 02

Rebar3 versions 3.0.0-beta.3 to 3.13.2 are vulnerable to OS command injection via URL parameter of dependency specificat

CVE-2014-1693 HIGH POC
7.5 Dec 08

Multiple CRLF injection vulnerabilities in the FTP module in Erlang/OTP R15B03 allow context-dependent attackers to inje

CVE-2021-29221 HIGH POC
7.0 Apr 09

A local privilege escalation vulnerability was discovered in Erlang/OTP prior to version 23.2.3. Rated high severity (CV

CVE-2016-10253 CRITICAL
9.8 Mar 18

An issue was discovered in Erlang/OTP 18.x. Rated critical severity (CVSS 9.8), this vulnerability is remotely exploitab

CVE-2022-37026 CRITICAL
9.8 Sep 21

In Erlang/OTP before 23.3.4.15, 24.x before 24.3.4.2, and 25.x before 25.0.2, there is a Client Authentication Bypass in

CVE-2026-89422 CRITICAL
9.3 Sep 22

Erlang/OTP's ssl application in affected releases (OTP 22.2 through the fixed 27.3.4.18, 28.5.0.7 and 29.1.1) will compl

CVE-2026-67404 CRITICAL
9.2 Sep 23

RabbitMQ brokers that use the OAuth2 plugin can silently fall back to disabled TLS certificate verification when no CA b

CVE-2026-67231 CRITICAL
9.1 Sep 23

TLS client-authentication bypass in the RabbitMQ trust-store plugin lets a remote unauthenticated attacker whose forged

CVE-2026-55953 CRITICAL
9.1 Jul 27

An on-path attacker can force an Erlang/OTP TLS 1.2 or DTLS client to accept an anonymous cipher suite not offered by th

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy