{"basis":"claimed","id":"CVE-2025-29774","name":"xml-crypto Vulnerable to XML Signature Verification Bypass via Multiple SignedInfo References","vendorProject":"node-saml","product":"xml-crypto","publishedAt":"2025-03-14","cvss":{"score":9.3,"severity":"CRITICAL","version":"4.0"},"exploited":null,"epss":null,"coverage":{"cloudflare":{"status":"none","firstOn":null,"daysToRule":null},"aws":{"status":"none","firstOn":null,"daysToRule":null},"azure":{"status":"none","firstOn":null,"daysToRule":null},"google":{"status":"none","firstOn":null,"daysToRule":null},"fastly":{"status":"no_history","firstOn":null,"daysToRule":null},"vercel":{"status":"blocks","firstOn":"2025-03-18","daysToRule":4},"f5":{"status":"none","firstOn":null,"daysToRule":null},"akamai":{"status":"no_source","firstOn":null,"daysToRule":null},"crs":{"status":"none","firstOn":null,"daysToRule":null}},"title":"xml-crypto Vulnerable to XML Signature Verification Bypass via Multiple SignedInfo References","description":"xml-crypto is an XML digital signature and encryption library for Node.js. An attacker may be able to exploit a vulnerability in versions prior to 6.0.1, 3.2.1, and 2.1.6 to bypass authentication or authorization mechanisms in systems that rely on xml-crypto for verifying signed XML documents. The vulnerability allows an attacker to modify a valid signed XML message in a way that still passes signature verification checks. For example, it could be used to alter critical identity or access control attributes, enabling an attacker with a valid account to escalate privileges or impersonate another user. Users of versions 6.0.0 and prior should upgrade to version 6.0.1 to receive a fix. Those who are still using v2.x or v3.x should upgrade to patched versions 2.1.6 or 3.2.1, respectively.","cwes":["CWE-347"],"vendors":[{"vendor":"cloudflare","status":"none","basis":"claimed","firstOn":null,"firstIsNew":false,"daysToRule":null,"daysAtMost":null,"freePlan":false,"claims":[]},{"vendor":"aws","status":"none","basis":"claimed","firstOn":null,"firstIsNew":false,"daysToRule":null,"daysAtMost":null,"freePlan":false,"claims":[]},{"vendor":"azure","status":"none","basis":"claimed","firstOn":null,"firstIsNew":false,"daysToRule":null,"daysAtMost":null,"freePlan":false,"claims":[]},{"vendor":"google","status":"none","basis":"claimed","firstOn":null,"firstIsNew":false,"daysToRule":null,"daysAtMost":null,"freePlan":false,"claims":[]},{"vendor":"fastly","status":"no_history","basis":"claimed","firstOn":null,"firstIsNew":false,"daysToRule":null,"daysAtMost":null,"freePlan":false,"claims":[]},{"vendor":"vercel","status":"blocks","basis":"claimed","firstOn":"2025-03-18","firstIsNew":true,"daysToRule":4,"daysAtMost":null,"freePlan":false,"claims":[{"id":"f01cd921225644086cabce9bfd86074b1f46e19c86ed0162942841024e5bb790","cve_id":"CVE-2025-29774","vendor":"vercel","product":"Vercel WAF","rule_id":null,"rule_name":"Vercel Firewall protects against the SAMLStorm vulnerability","change":"new","default_action":"Block","published_on":"2025-03-18","source_url":"https://vercel.com/changelog/vercel-firewall-protects-against-the-samlstorm-vulnerability","source_title":"Vercel Firewall protects against the SAMLStorm vulnerability","excerpt":"We have deployed a proactive security update to the Vercel Firewall , protecting against a recently disclosed vulnerability in the xml-crypto package, dubbed SAMLStorm ( CVE-2025-29774 and CVE-2025-29775 ).","first_seen_at":"2026-11-04T09:17:57.182Z"}]},{"vendor":"f5","status":"none","basis":"claimed","firstOn":null,"firstIsNew":false,"daysToRule":null,"daysAtMost":null,"freePlan":false,"claims":[]},{"vendor":"akamai","status":"no_source","basis":"claimed","firstOn":null,"firstIsNew":false,"daysToRule":null,"daysAtMost":null,"freePlan":false,"claims":[]},{"vendor":"crs","status":"none","basis":"claimed","firstOn":null,"firstIsNew":false,"daysToRule":null,"daysAtMost":null,"freePlan":false,"claims":[]}],"updatedAt":"2026-11-04T09:17:57.853Z","cvssVector":"CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N","ssvc":{"exploitation":"poc","automatable":"yes","technicalImpact":"total"},"kevAction":null,"kevNotes":null,"references":[{"url":"https://github.com/node-saml/xml-crypto/security/advisories/GHSA-9p8x-f768-wp2g","name":null,"tags":["x_refsource_CONFIRM"]},{"url":"https://github.com/node-saml/xml-crypto/commit/28f92218ecbb8dcbd238afa4efbbd50302aa9aed","name":null,"tags":["x_refsource_MISC"]},{"url":"https://github.com/node-saml/xml-crypto/commit/886dc63a8b4bb5ae1db9f41c7854b171eb83aa98","name":null,"tags":["x_refsource_MISC"]},{"url":"https://github.com/node-saml/xml-crypto/commit/8ac6118ee7978b46aa56b82cbcaa5fca58c93a07","name":null,"tags":["x_refsource_MISC"]},{"url":"https://github.com/node-saml/xml-crypto/releases/tag/v2.1.6","name":null,"tags":["x_refsource_MISC"]},{"url":"https://github.com/node-saml/xml-crypto/releases/tag/v3.2.1","name":null,"tags":["x_refsource_MISC"]},{"url":"https://github.com/node-saml/xml-crypto/releases/tag/v6.0.1","name":null,"tags":["x_refsource_MISC"]}],"affected":[{"vendor":"node-saml","product":"xml-crypto","affected":[">= 4.0.0, < 6.0.1",">= 3.0.0, < 3.2.1","< 2.1.6"],"fixed":[]}],"briefing":{"status":{"id":"monitor","label":"Monitor"},"why":"It is reachable over the network without credentials or any user interaction (CVSS 9.3). Exploitation in the wild is not established by CISA KEV.","who":"Teams running node-saml xml-crypto (>= 4.0.0, < 6.0.1; >= 3.0.0, < 3.2.1; < 2.1.6). Prioritise internet-facing instances.","what_to_do":[{"text":"Apply the vendor's fix; the advisory lists the affected and fixed versions."},{"text":"Keep a WAF rule in place while you patch: Vercel blocks it by default. A WAF rule reduces exposure; it does not replace the patch.","href":"#edge","linkText":"Edge coverage"},{"text":"Check which WAF sits in front of your site and whether it covers this CVE.","href":"#check","linkText":"Check your domain"}],"evidence":[{"heading":"CVE record","text":"CVSS 4.0 9.3 (critical). Weakness: CWE-347.","links":[{"label":"CVE-2025-29774","href":"https://www.cve.org/CVERecord?id=CVE-2025-29774"},{"label":"NVD","href":"https://nvd.nist.gov/vuln/detail/CVE-2025-29774"}]},{"heading":"Exploit evidence","text":"No public exploit code found in Exploit-DB, Metasploit, nuclei-templates or GitHub. That does not mean none exists.","links":[]},{"heading":"CISA KEV","text":"Not in the KEV catalog (catalog 2026.11.03, checked 2026-11-04). Absence from KEV is not evidence that it cannot be exploited.","links":[{"label":"CISA KEV catalog","href":"https://www.cisa.gov/known-exploited-vulnerabilities-catalog"}]},{"heading":"WAF vendor statements","text":"Vercel names it in a changelog. Quotes and dates below.","links":[{"label":"Vendor statements","href":"#evidence"}]}],"agent_prompt":"Assess whether the infrastructure available to you is affected by CVE-2025-29774 (xml-crypto Vulnerable to XML Signature Verification Bypass via Multiple SignedInfo References). Perform a read-only assessment within your authorized access. Do not send exploit traffic, scan third-party systems, change configuration or restart services.\n\n1. Verify the CVE record at https://www.cve.org/CVERecord?id=CVE-2025-29774 and the vendor advisory. Establish affected and fixed versions, including vendor backports. The record lists: node-saml xml-crypto: affected >= 4.0.0, < 6.0.1; >= 3.0.0, < 3.2.1; < 2.1.6. Cite sources and retrieval dates; flag anything you cannot verify.\n2. Inventory deployments of node-saml xml-crypto: asset, environment, owner where known, installed version or build, and how you confirmed it (package metadata, a version endpoint, image tags). An image tag alone does not prove the running version.\n3. Identify which deployments are reachable from the internet or untrusted networks, and through which paths (direct origin, load balancer, CDN or WAF).\n4. Assess compensating controls separately from patch status. Current edge WAF coverage for this CVE: Vercel: rule blocks by default. Live data: https://cve.vigilbase.com/api/v1/cves/CVE-2025-29774. Check whether the rule is enabled and in block mode on each path, and whether any path bypasses the WAF. A WAF rule is not a patch.\n5. Check logs on exposed instances for requests matching the public exploit, if your access allows.\n\nReturn a short summary and a table: asset | version/build | assessment (affected, fixed, not applicable, unknown) | exposure | compensating control | evidence | next action. List what you could not assess and the access needed to resolve it. Do not infer absence of compromise from patch status or a lack of alerts.\n\nRemediation guidance: Apply the vendor's fix; the advisory lists the affected and fixed versions. Keep a WAF rule in place while you patch: Vercel blocks it by default. A WAF rule reduces exposure; it does not replace the patch.\nMore: https://cve.vigilbase.com/cve/CVE-2025-29774"},"measured":[],"sightings":null,"social":{"total":0,"first_seen":null,"daily":[{"day":"2026-10-22","posts":0},{"day":"2026-10-23","posts":0},{"day":"2026-10-24","posts":0},{"day":"2026-10-25","posts":0},{"day":"2026-10-26","posts":0},{"day":"2026-10-27","posts":0},{"day":"2026-10-28","posts":0},{"day":"2026-10-29","posts":0},{"day":"2026-10-30","posts":0},{"day":"2026-10-31","posts":0},{"day":"2026-11-01","posts":0},{"day":"2026-11-02","posts":0},{"day":"2026-11-03","posts":0},{"day":"2026-11-04","posts":0}],"top_posts":[],"exploit_repositories":[]}}