---
id: CVE-2021-21239
aliases:
  - GHSA-5p3x-r448-pc62
  - PYSEC-2021-49
title: Improper Verification of Cryptographic Signature in PySAML2
summary: Improper Verification of Cryptographic Signature in PySAML2
severity: medium
cvss: 6.5
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:H/A:N'
vendor: pysaml2
product: pysaml2
ecosystem: pip
affected:
  - pysaml2 < 6.5.0
patched:
  - pysaml2 6.5.0
published: '2021-01-21'
updated: '2026-09-10'
sourceUpdated: '2026-09-10T03:49:13.846262945Z'
source: OSV
sourceUrl: 'https://osv.dev/vulnerability/GHSA-5p3x-r448-pc62'
references:
  - url: >-
      https://github.com/IdentityPython/pysaml2/security/advisories/GHSA-5p3x-r448-pc62
  - url: 'https://nvd.nist.gov/vuln/detail/CVE-2021-21239'
  - url: >-
      https://github.com/IdentityPython/pysaml2/commit/46578df0695269a16f1c94171f1429873f90ed99
  - url: 'https://github.com/IdentityPython/pysaml2'
  - url: 'https://github.com/IdentityPython/pysaml2/releases/tag/v6.5.0'
  - url: >-
      https://github.com/pypa/advisory-database/tree/main/vulns/pysaml2/PYSEC-2021-49.yaml
  - url: 'https://lists.debian.org/debian-lts-announce/2021/02/msg00038.html'
  - url: 'https://pypi.org/project/pysaml2'
  - url: 'https://www.aleksey.com/pipermail/xmlsec/2013/009717.html'
tags:
  - osv
  - pip
  - exploit-available
epss: 0.01271
epssPercentile: 0.68609
exploits:
  github: 4
  githubRepos:
    - 'https://github.com/RyanBoomer30/CVE-2021-21239-Exploit'
    - 'https://github.com/GrantBirki/redash-vulnerable'
    - 'https://github.com/illera88/CVE-2021-21239'
  checkedAt: '2026-09-26T09:05:26.222Z'
exploitAvailable: true
ingestedAt: '2026-09-12T03:13:01.661Z'
---

## Overview

### 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

- `pysaml2 < 6.5.0`

## Remediation

Upgrade to a patched release:

- `pysaml2 6.5.0`
