Skip to main content
← All vulnerabilities
CVE-2025-48994GHSA-6VX8-PCWV-XHF4PYSEC-2026-1921

SignXML's signature verification with HMAC is vulnerable to an algorithm confusion attack

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 4.0.4
None on Exploit-DB, Metasploit or GitHub
  • Exploitation: none
  • Automatable: yes
  • Technical impact: partial

Summary

SignXML is an implementation of the W3C XML Signature standard in Python. When verifying signatures with X509 certificate validation turned off and HMAC shared secret set (`signxml.XMLVerifier.verify(require_x509=False, hmac_key=...`), versions of SignXML prior to 4.0.4 are vulnerable to a potential algorithm confusion attack. Unless the user explicitly limits the expected signature algorithms using the `signxml.XMLVerifier.verify(expect_config=...)` setting, an attacker may supply a signature unexpectedly signed with a key other than the provided HMAC key, using a different (asymmetric key) signature algorithm. Starting with SignXML 4.0.4, specifying `hmac_key` causes the set of accepted signature algorithms to be restricted to HMAC only, if not already restricted by the user.

Timeline

  1. CVE published
  2. CISA SSVC assessment

    Exploitation: none · Automatable: yes · Technical impact: partial

  3. Record last updated

Affected versions

  • XML-Security signxml

    fixed in 4.0.4

  • signxmlPyPI

    fixed in 4.0.4

References 2

GitHub · XML-Security/signxml