CVE-2025-48994CWE-303

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

Medium · published June 2, 2025

CVSS v4.0
6.9
EPSS
0%
Percentile
11.7
In the wild
Unconfirmed
What it is

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.

The record
Technical detail
CVSS v4.0
6.9 · MEDIUM
Vector
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N
EPSS
0.00219 · 11.7th percentile
Weakness
CWE-303 · Incorrect Implementation of Authentication Algorithm
Published
2025-06-02T16:22Z
EPSS history
Timeline
  • 02 JUN 16:22Z
    SignXML's signature verification with HMAC is vulnerable to an algorithm confusion attack
    cvelistv5