CVE-2016-10149
High · 7.5CVSS
7.5
EPSS
5.0%
Published
Mar 24, 2017
CISA due date
—
Cloudanix analysis
A login-handling library used by many websites could let attackers read private files stored on the server by sending specially crafted login data.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Low
- Impact
- Data Exposure
- Component
- Library
- Class
- XXE
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The vulnerability permits XML External Entity processing in SAML request/response handling, enabling an attacker to define external entities that resolve to local filesystem paths and exfiltrate their contents through the application's response.
Why it matters to the business
Attackers can obtain sensitive server-side files such as configuration data, private keys, or credential stores, leading to further compromise of authentication systems and potential data breaches in identity-dependent applications.
How an attack unfolds
An unauthenticated remote attacker submits a specially crafted SAML XML document containing an external entity declaration pointing to a local file; the PySAML2 parser resolves the entity and includes the file contents in the processed output, which is then returned or logged for the attacker to retrieve.
How to fix it
Upgrade identitypython/pysaml2 to the commit 6e09a25d9b4b7aa7a506853210a9a14100b8bc9b or later; disable XML external entity resolution in any custom SAML handling code; apply input sanitization that rejects or strips DTD declarations before parsing.
How to confirm the fix worked
Confirm the installed package reports a version containing commit 6e09a25d9b4b7aa7a506853210a9a14100b8bc9b; run a test SAML message containing an XXE payload against a non-production instance and verify that file contents are no longer returned; review parser configuration to ensure external entities are disabled.
Typical attack path
- Identify an endpoint that accepts SAML messages from untrusted sources
- Craft an XML payload containing a malicious DOCTYPE with an external entity referencing a target file path
- Submit the payload via HTTP POST or GET to the SAML consumer or provider endpoint
- Observe the server response or logs for the embedded file contents
- Iterate to exfiltrate additional files or use discovered data for lateral movement
How to detect it
Inspect web server and application logs for SAML POST bodies containing DOCTYPE or ENTITY declarations; monitor file access logs for unexpected reads of configuration or key files triggered by SAML endpoints; correlate unusual outbound network activity following SAML processing.
What your security team should do
- Immediately update all deployments of PySAML2 to the fixed commit
- Scan the environment for any remaining versions 4.4.0 or earlier
- Implement web application firewall rules that block SAML messages containing DOCTYPE or ENTITY declarations
- Review logs for historical SAML traffic containing external entity patterns
The record
XML External Entity (XXE) vulnerability in PySAML2 4.4.0 and earlier allows remote attackers to read arbitrary files via a crafted SAML XML request or response.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| PyPI | pysaml2 | 0 | 4.5.0 |
| PyPI | pysaml2 | 0 | 6e09a25d9b4b7aa7a506853210a9a14100b8bc9b |
| Debian:11 | python-pysaml2 | 0 | 3.0.0-5 |
| Debian:12 | python-pysaml2 | 0 | 3.0.0-5 |
| Debian:13 | python-pysaml2 | 0 | 3.0.0-5 |
| Debian:8 | python-pysaml2 | 0 | 2.0.0-1+deb8u1 |
| Red Hat:openstack:10::el7 | python-defusedxml | 0 | 0:0.5.0-1.el7ost |
| Red Hat:openstack:10::el7 | python-pysaml2 | 0 | 0:3.0.2-3.el7ost |
| Red Hat:openstack:8::el7 | python-defusedxml | 0 | 0:0.5.0-1.el7ost |
| Red Hat:openstack:8::el7 | python-pysaml2 | 0 | 0:3.0.2-3.el7ost |
| Red Hat:openstack:9::el7 | python-defusedxml | 0 | 0:0.5.0-1.el7ost |
| Red Hat:openstack:9::el7 | python-pysaml2 | 0 | 0:3.0.2-3.el7ost |
| SUSE:OpenStack Cloud 6 | python-defusedxml | 0 | 0.4.1-2.1 |
| SUSE:OpenStack Cloud 6 | python-pysaml2 | 0 | 2.4.0-3.1 |
| Ubuntu:16.04:LTS | python-pysaml2 | 0 | 3.0.0-3ubuntu1.16.04.1 |
Related vulnerabilities
- CVE-2026-89260 MoguBlog through 6.2 contains an XML external entity injection vulnerability in the… CWE-611
- CVE-2026-84941 An information disclosure vulnerability in the SAML Single Sign-On (SSO) functionality of… CWE-611
- CVE-2026-79572 An XXE (XML External Entity) vulnerability in the level-rule module of Distribution… CWE-611
- CVE-2026-19614 The API is prone to XML external entity (XXE) injection. CWE-611
- CVE-2026-71375 Improper restriction of XML external entity reference vulnerability in Cosminexus… CWE-611
- CVE-2026-76958 SAP Integration Suite does not sufficiently validate XML documents accepted from… CWE-611
- CVE-2026-17444 IBM App Connect Enterprise 13.0.1.0 through 13.0.8.1, and 12.0.1.0 through 12.0.12.28 and… CWE-611
- CVE-2026-17443 IBM App Connect Enterprise 13.0.1.0 through 13.0.8.1, and 12.0.1.0 through 12.0.12.28 and… CWE-611