Medium severity · published Mar 23, 2026
CVE-2026-28809
XXE in esaml SAML library allows local file read and potential SSRF
5.3
CVSS
0.3%
EPSS
No
On KEV
Description
XML External Entity (XXE) vulnerability in esaml (and its forks) allows an attacker to cause the system to read local files and incorporate their contents into processed SAML documents, and potentially perform SSRF via crafted SAML messages.
esaml parses attacker-controlled SAML messages using xmerl_scan:string/2 before signature verification without disabling XML entity expansion. On Erlang/OTP versions before 27, Xmerl allows entities by default, enabling pre-signature XXE attacks. An attacker can cause the host to read local files (e.g., Kubernetes-mounted secrets) into the SAML document. If the attacker is not a trusted SAML SP, signature verification will fail and the document is discarded, but file contents may still be exposed through logs or error messages.
This issue affects all versions of esaml, including forks by arekinath, handnot2, and dropbox. Users running on Erlang/OTP 27 or later are not affected due to Xmerl defaulting to entities disabled.
CVSS vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N
Attack vector
Network
Complexity
Low
Privileges
None
User interaction
None
Confidentiality
Low
Integrity
None
Availability
None
Scope
Unchanged
Exploitation
Is it being used?
Exploit prediction (EPSS)0.3% · higher than 21% of CVEs
Exploited in the wildNo evidence yet
CISA KEVNot listed
Ransomware campaign useNot known
Affected products
Which versions
ES
esaml · Jump-App
deeb84378d5c82153b470e99d24f77c38afca14a before bab85efde7c136911402a881ca55173759467a26 · source: vendor, NVD
References
NVD
https://nvd.nist.gov/vuln/detail/CVE-2026-28809
CVE.org
https://www.cve.org/CVERecord?id=CVE-2026-28809
Patch
https://cna.erlef.org/cves/CVE-2026-28809.html
Patch
https://github.com/Jump-App/esaml/commit/bab85efde7c136911402a881ca55173759467a26
Third Party Advisory
https://osv.dev/vulnerability/EEF-CVE-2026-28809
More from esaml
8.7
CVE-2026-93471
Unbounded SAML message decompression in esaml allows memory exhaustion
8.7
CVE-2026-105270
Unbounded atom creation while parsing SAML messages in esaml allows atom table exhaustion
8.2
CVE-2026-86696
Unbounded atom creation from unsigned LogoutResponse status codes in esaml allows atom table exhaustion
