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.
Published: 2026-03-23
Score: 6.3 Medium
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

esaml and its forks parse attacker‑controlled SAML messages with xmerl_scan:string/2 before signature validation, leaving XML entity expansion enabled on Erlang/OTP versions earlier than 27. This configuration permits a pre‑signature XML External Entity (XXE) attack, allowing an adversary to embed entities that reference arbitrary local files (such as Kubernetes‑mounted secrets) into the SAML envelope. When processed, the application reads these files and injects their contents into the SAML document; if the actor is not a trusted Service Provider the signature check will fail and the message will be discarded, yet the file data can still leak via logs or error messages. The flaw also opens the door to Server‑Side Request Forgery through crafted SAML packets. The vulnerability is identified as CWE‑611 and carries a CVSS score of 6.3.

Affected Systems

All releases of the esaml library and its forks—including Jump‑App esaml, arekinath esaml, dropbox esaml, and handnot2 esaml—are affected. Every available version before Erlang/OTP 27 carries the flaw, while users on OTP 27 or later are not impacted.

Risk and Exploitability

The risk is moderate, with a CVSS score of 6.3 and an EPSS score lower than 1 %. The vulnerability is not listed in the CISA KEV catalog, indicating it is not currently known to be exploited in the wild. The likely attack vector involves an attacker sending a specifically crafted SAML message to the target application over the network; the vulnerability can be triggered without authentication depending on the application’s exposure of the SAML endpoint. If the attacker is not a trusted service provider, signature verification will fail but the local file contents may still leak through logs, providing potential information disclosure and further exploitation via SSRF. The workaround of upgrading to Erlang/OTP 27 or later disables entity expansion by default, greatly reducing exploitability.

Generated by OpenCVE AI on August 3, 2026 at 08:09 UTC.

Remediation

Vendor Workaround

Upgrade to Erlang/OTP 27 or later. Starting with OTP 27, xmerl_scan disables entity expansion by default, which mitigates this vulnerability without changes to esaml.


OpenCVE Recommended Actions

  • Upgrade Erlang/OTP to version 27 or later
  • Update the esaml library to a version that has been patched or is aware of the OTP 27 change
  • Disable XML entity expansion in any custom XML processing logic or set xmerl_scan's params to prohibit entity resolution
  • Audit application logs for unexpected file read content or error messages indicating entity processing

Generated by OpenCVE AI on August 3, 2026 at 08:09 UTC.

Tracking

Sign in to view the affected projects.

Advisories
Source ID Title
Github GHSA Github GHSA GHSA-4g2h-vm7x-747c esaml XXE vulnerability allows local file disclosure and SSRF via crafted SAML messages
History

Fri, 24 Jul 2026 18:30:00 +0000

Type Values Removed Values Added
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. 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.

Tue, 26 May 2026 13:45:00 +0000

Type Values Removed Values Added
CPEs cpe:2.3:a:dropbox:esaml:-:*:*:*:*:*:*:*
Metrics cvssV3_1

{'score': 5.3, 'vector': 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N'}


Mon, 06 Apr 2026 16:45:00 +0000

Type Values Removed Values Added
First Time appeared Jump-app
Jump-app esaml
CPEs cpe:2.3:a:jump-app:esaml:*:*:*:*:*:*:*:*
Vendors & Products Jump-app
Jump-app esaml
References

Tue, 24 Mar 2026 05:15:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Mon, 23 Mar 2026 10:45:00 +0000

Type Values Removed Values Added
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.
Title XXE in esaml SAML library allows local file read and potential SSRF
First Time appeared Arekinath
Arekinath esaml
Dropbox
Dropbox esaml
Handnot2
Handnot2 esaml
Weaknesses CWE-611
CPEs cpe:2.3:a:arekinath:esaml:*:*:*:*:*:*:*:*
cpe:2.3:a:dropbox:esaml:*:*:*:*:*:*:*:*
cpe:2.3:a:handnot2:esaml:*:*:*:*:*:*:*:*
Vendors & Products Arekinath
Arekinath esaml
Dropbox
Dropbox esaml
Handnot2
Handnot2 esaml
References
Metrics cvssV4_0

{'score': 6.3, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N'}


cve-icon MITRE

Status: PUBLISHED

Assigner: EEF

Published:

Updated: 2026-07-24T14:14:51.289Z

Reserved: 2026-03-03T14:40:00.590Z

Link: CVE-2026-28809

cve-icon Vulnrichment

Updated: 2026-03-23T15:07:18.519Z

cve-icon NVD

Status : Modified

Published: 2026-03-23T11:16:24.343

Modified: 2026-07-24T15:17:15.077

Link: CVE-2026-28809

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-03T08:15:03Z

Weaknesses
  • CWE-611

    Improper Restriction of XML External Entity Reference