SAML XML Signature wrapping in PySAML2
### Impact All users of pysaml2 that use the default `CryptoBackendXmlSec1` backend and need to verify signed SAML documents are impacted. `pysaml2 <= 6.4.1` does not validate the SAML document against an XML schema. This allows invalid XML documents to trick the verification process, by presenting elements with a valid signature inside elements whose content has been malformed. The verification is offloaded to `xmlsec1` and `xmlsec1` will not validate every signature in the given document, but only the first it finds in the given scope. ### Patches Users should upgrade to pysaml2 `v6.5.0`. ### Workarounds No workaround provided at this point. ### References No references provided at this point. ### Credits - Victor Schönfelder Garcia (isits AG International School of IT Security) - Juraj Somorovsky (Paderborn University) - Vladislav Mladenov (Ruhr University Bochum) ### For more information If you have any questions or comments about this advisory: * Open an issue in [pysaml2](https://github.com/IdentityPython/pysaml2) * Email us at [the incident-response address](mailto:[email protected])
02 / AFFECTED SOFTWARE
Affected packages
37 explicit affected versions
45 explicit affected versions
45 explicit affected versions
03 / CONNECTIONS
Connected vulnerabilities
04 / EVIDENCE
Source records
### Impact All users of pysaml2 that use the default `CryptoBackendXmlSec1` backend and need to verify signed SAML documents are impacted. `pysaml2 <= 6.4.1` does not validate the SAML document against an XML schema. This allows invalid XML documents to trick the verification process, by presenting elements with a valid signature inside elements whose content has been malformed. The verification is offloaded to `xmlsec1` and `xmlsec1` will not validate every signature in the given document, but only the first it finds in the given scope. ### Patches Users should upgrade to pysaml2 `v6.5.0`. ### Workarounds No workaround provided at this point. ### References No references provided at this point. ### Credits - Victor Schönfelder Garcia (isits AG International School of IT Security) - Juraj Somorovsky (Paderborn University) - Vladislav Mladenov (Ruhr University Bochum) ### For more information If you have any questions or comments about this advisory: * Open an issue in [pysaml2](https://github.com/IdentityPython/pysaml2) * Email us at [the incident-response address](mailto:[email protected])
PySAML2 is a pure python implementation of SAML Version 2 Standard. PySAML2 before 6.5.0 has an improper verification of cryptographic signature vulnerability. All users of pysaml2 that need to validate signed SAML documents are impacted. The vulnerability is a variant of XML Signature wrapping because it did not validate the SAML document against an XML schema. This allowed invalid XML documents to be processed and such a document can trick pysaml2 with a wrapped signature. This is fixed in PySAML2 6.5.0.
PySAML2 is a pure python implementation of SAML Version 2 Standard. PySAML2 before 6.5.0 has an improper verification of cryptographic signature vulnerability. All users of pysaml2 that need to validate signed SAML documents are impacted. The vulnerability is a variant of XML Signature wrapping because it did not validate the SAML document against an XML schema. This allowed invalid XML documents to be processed and such a document can trick pysaml2 with a wrapped signature. This is fixed in PySAML2 6.5.0.
05 / REFERENCES
Further evidence
- https://github.com/IdentityPython/pysaml2
- https://github.com/IdentityPython/pysaml2/commit/1d8fd268f5bf887480a403a7a5ef8f048157cc14
- https://github.com/IdentityPython/pysaml2/releases/tag/v6.5.0
- https://github.com/IdentityPython/pysaml2/security/advisories/GHSA-f4g9-h89h-jgv9
- https://github.com/pypa/advisory-database/tree/main/vulns/pysaml2/PYSEC-2021-48.yaml
- https://nvd.nist.gov/vuln/detail/CVE-2021-21238
- https://pypi.org/project/pysaml2