Moov signedxml: Unauthenticated denial of service in exclusive XML canonicalization
CVE-2026-113729 · GHSA-5588-rp99-5fjh
- Affected
- Go github.com/moov-io/signedxml <= 1.4.0
- Fixed in
- 1.4.1· Vendor fix available
- Issue
- Exclusive XML canonicalization (http://www.w3.org/2001/10/xml-exc-c14n#) in github.com/moov-io/signedxml copied the entire accumulated namespace map at every node during ValidateReferences(), before any reference digest or signature check. For a chain of nested elements that each declare many unused namespace prefixes, that produced O(m × depth²) time and peak memory (m = prefixes per level). beevik/etree caps tree depth (~1024), but m is unbounded, so a small attacker-controlled document (on the order of 1 MB) could drive multi-gigabyte allocations and OOM the process. No valid signature, matching certificate, or authentication is required. This is the library’s core path for SAML / WS-Federation service providers, which canonicalize attacker-supplied XML prior to authentication. Affected - Package: github.com/moov-io/signedxml - Function: ExclusiveCanonicalization (exclusivecanonicalization.go) - Verified: v1.4.0 and current default branch (commit d79064a). Earlier v1.2.x–v1.3.x…
Recommended action: Upgrade to 1.4.1 or later, then redeploy and verify.A vendor fix does not resolve your finding until you verify it in your own systems.