CVE-2021-21239
Improper Verification of Cryptographic Signature in PySAML2
Impact
### 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 ensure that a signed SAML document is correctly signed. The default `CryptoBackendXmlSec1` backend is using the `xmlsec1` binary to verify the signature of signed SAML documents, but by default, `xmlsec1` accepts any type of key found within the given document. `xmlsec1` needs to be configured explicitly to only use only _x509 certificates_ for the verification process of the SAML document signature. ### Patches Users should upgrade to pysaml2 `v6.5.0`. ### Workarounds No workaround provided at this point. ### References This issue has been reported in the past at the xmlsec1 mailing list: https://www.aleksey.com/pipermail/xmlsec/2013/009717.html ### Credits - Brian Wolff ### 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:incident-response@idpy.org)
Affected packages
| Ecosystem | Package | Affected | Fixed in |
|---|---|---|---|
| pip | pysaml2 | < 6.5.0 | 6.5.0 |
Affected products
| Vendor | Product | Affected versions |
|---|---|---|
| Pysaml2 Project | Pysaml2 | before 6.5.0 |
| Debian | Debian Linux | Version 9.0 |
Weakness classification
References
- NVD record
- CVE.org record
- GitHub advisory
- https://github.com/IdentityPython/pysaml2/commit/46578df0695269a16f1c94171f1429873f90ed99
- https://github.com/IdentityPython/pysaml2/releases/tag/v6.5.0
- https://github.com/IdentityPython/pysaml2/security/advisories/GHSA-5p3x-r448-pc62
- https://lists.debian.org/debian-lts-announce/2021/02/msg00038.html
- https://pypi.org/project/pysaml2
- https://www.aleksey.com/pipermail/xmlsec/2013/009717.html
- https://github.com/advisories/GHSA-5p3x-r448-pc62
- https://nvd.nist.gov/vuln/detail/CVE-2021-21239
- https://github.com/pypa/advisory-database/tree/main/vulns/pysaml2/PYSEC-2021-49.yaml