p PatchFirst

CVE-2025-48994

CVE-2025-48994 · SignXML's signature verification with HMAC is vulnerable to an algorithm confusion attack

This page contains facts from public vulnerability sources. Check the original advisory before updating.

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.

CVSS 6.9 · Medium · EPSS 0.2% · Fix available

Published
Updated

Stack: system · python

Affected products and versions

  • signxml

    Versions
    • < 4.0.4: Affected

    No fix published

  • python-signxml Debian:13

    Affected ranges
    • ECOSYSTEM: < 4.0.5+dfsg-1

    Update to 4.0.5+dfsg-1

  • python-signxml Debian:14

    Affected ranges
    • ECOSYSTEM: < 4.0.5+dfsg-1

    Update to 4.0.5+dfsg-1

  • signxml PyPI

    Versions
    • 0.0.1
    • 0.1.0
    • 0.1.1
    • 0.1.2
    • 0.1.3
    • 0.1.4
    • 0.1.5
    • 0.1.6
    • 0.1.7
    • 0.1.8
    • 0.1.9
    • 0.2.0
    • 0.2.1
    • 0.2.2
    • 0.2.3
    • 0.2.4
    • 0.2.5
    • 0.2.6
    • 0.2.7
    • 0.2.8
    • 0.2.9
    • 0.3.0
    • 0.3.1
    • 0.3.2
    • 0.3.3
    • 0.3.4
    • 0.3.5
    • 0.3.6
    • 0.3.7
    • 0.3.8
    • 0.3.9
    • 0.4.0
    • 0.4.1
    • 0.4.2
    • 0.4.3
    • 0.4.4
    • 0.4.5
    • 0.4.6
    • 0.5.0
    • 0.6.0
    • 1.0.0
    • 1.0.1
    • 1.0.2
    • 2.0.0
    • 2.1.4
    • 2.10.0
    • 2.10.1
    • 2.2.0
    • 2.2.1
    • 2.2.2
    • 2.2.3
    • 2.2.4
    • 2.2.6
    • 2.3.0
    • 2.4.0
    • 2.5.2
    • 2.6.0
    • 2.7.0
    • 2.7.1
    • 2.7.2
    • 2.7.3
    • 2.8.0
    • 2.8.1
    • 2.8.2
    • 2.9.0
    • 3.0.0
    • 3.0.1
    • 3.0.2
    • 3.1.0
    • 3.1.1
    • 3.2.0
    • 3.2.1
    • 3.2.2
    • 4.0.0
    • 4.0.1
    • 4.0.2
    • 4.0.3
    Affected ranges
    • ECOSYSTEM: < 4.0.4

    Update to 4.0.4

  • python-signxml Ubuntu:25.10

    Versions
    • 4.0.3+dfsg-1
    • 4.0.5+dfsg-1
    • 4.0.5+dfsg-2
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • python-signxml Ubuntu:26.10

    Versions
    • 4.2.0+dfsg-1
    • 4.4.0+dfsg-1
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

  • python-signxml Ubuntu:26.04:LTS

    Versions
    • 4.0.5+dfsg-2
    • 4.2.0+dfsg-1
    Affected ranges
    • ECOSYSTEM: (−∞, +∞)

    No fix published

Original sources

Check your server →