XXE in esaml SAML library allows local file read and potential SSRF
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- None
- Attack complexity
- Low
- Attack requirements
- Present
- Impact type
- Information disclosure
- Confidentiality · integrity · availability
- Low · None · None
- Fix status
- Fixed
Attack profile from CVSS 4.0 · CNA. Fix status from CNA and GitHub. Impact type from CWE-611 and the CVSS impact.
Summary
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.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Partial
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| dropbox | esaml | — | — | No fix listed | CNA |
| arekinath | esaml | — | — | No fix listed | CNA |
| handnot2 | esaml | — | — | No fix listed | CNA |
| dropbox | esaml | — | — | No fix listed | CNA |
| — | esaml (Hex) | up to 4.6.0 | — | No fix listed | GHSA-4g2h-vm7x-747c |
- esaml Vendordropbox Affected — Fixed in — No fix listed CNA
- esaml Vendorarekinath Affected — Fixed in — No fix listed CNA
- esaml Vendorhandnot2 Affected — Fixed in — No fix listed CNA
- esaml Vendordropbox Affected — Fixed in — No fix listed CNA
- esaml (Hex) Vendor— Affected up to 4.6.0 Fixed in — No fix listed GHSA-4g2h-vm7x-747c
CPE configurations NVD · 4
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:arekinath:esaml:*:*:*:*:*:*:*:* | up to 1.1 | Vulnerable | arekinath |
| cpe:2.3:a:dropbox:esaml:-:*:*:*:*:*:*:* | not specified by NVD | Vulnerable | dropbox |
| cpe:2.3:a:handnot2:esaml:*:*:*:*:*:*:*:* | up to 4.2.0 | Vulnerable | handnot2 |
| cpe:2.3:a:jump-app:esaml:*:*:*:*:*:*:*:* | up to 4.6.0 | Vulnerable | Jump-App |
- cpe:2.3:a:arekinath:esaml:*:*:*:*:*:*:*:* Versions up to 1.1 Vulnerable ·arekinath
- cpe:2.3:a:dropbox:esaml:-:*:*:*:*:*:*:* Versions not specified by NVD Vulnerable ·dropbox
- cpe:2.3:a:handnot2:esaml:*:*:*:*:*:*:*:* Versions up to 4.2.0 Vulnerable ·handnot2
- cpe:2.3:a:jump-app:esaml:*:*:*:*:*:*:*:* Versions up to 4.6.0 Vulnerable ·Jump-App
Remediation
No fixed version listed by the sources yet.
Timeline
- 2026-10-02 Threatist record created from CVE-2026-28809
- 2026-10-03 Alias added: GHSA-4g2h-vm7x-747c
References
Sources
- CVE-2026-28809 · CVE Program
- CVE-2026-28809 · NVD
- FIRST EPSS
- GHSA-4g2h-vm7x-747c · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences