{"id":"TECH-202610-xml-signature-wrapping-lets-attackers-bypass-login-in-apps-u","kind":"technique","aliases":[],"related":[],"title":"XML Signature Wrapping lets attackers bypass login in apps using Moldova's MPass SAML NuGet library (Egov.Integrations.MPass.Saml before 10.0.4)","description":null,"summary":"Egov.Integrations.MPass.Saml is the ASP.NET Core handler that relying-party apps use to check SAML 2.0 responses from Moldova's MPass government login. Every version before 10.0.4 checks the signature with SignedXml.CheckSignature(publicCertificate, verifySignatureOnly: true). That call only confirms that the references in SignedInfo are validly signed. It does not tie the signed element to the assertion the app then reads. As a result, an attacker can wrap a validly signed response around a forged assertion (XML Signature Wrapping) and log in as another user. Anyone running an ASP.NET Core app that accepts MPass logins through this package is at risk. A researcher disclosed it on r/netsec on 2026-10-29 with code-level detail. A CVE has been requested (CAN-2026-2041077) and the fix is in 10.0.4. No attacks have been reported; exploitation in the wild is unknown.","severity":"high","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[{"name":"Egov.Integrations.MPass.Saml","fixed":["10.0.4"],"affected":"<10.0.4","ecosystem":"nuget"},{"name":"MPass (Moldova e-government SSO)","fixed":[],"vendor":"Moldova e-Government Agency"}],"ecosystems":[],"tags":["early-warning","technique"],"not_affected_if":[],"how_to_check":"Look for the NuGet package Egov.Integrations.MPass.Saml at any version below 10.0.4 in .csproj, Directory.Packages.props or packages.lock.json. Look for SignedXml.CheckSignature(..., verifySignatureOnly: true) in custom SAML verification code. Look in auth logs for MPass SAML responses with more than one Assertion element or with unexpected extra elements.","fix":"Upgrade Egov.Integrations.MPass.Saml to 10.0.4 or later and redeploy. Check recent MPass logins for impersonation where you can.","status":"open","published_at":null,"first_seen_at":"2026-10-29T01:20:06+00:00","triaged_at":"2026-10-29T01:20:06+00:00","updated_at":"2026-10-29T01:20:06+00:00","category":"package","confidence":null,"triage":null,"analyst_status":"done","analyst_note":null,"search":"'-10':153B '-2026':166B '-202610':21A '-2041077':167B '-29':154B '10.0.4':19A,70B,173B '2.0':59B '2026':152B 'accept':136B 'anoth':127B 'anyon':129B 'app':9A,54B,102B,134B 'apps':31A 'around':116B 'asp.net':47B,132B 'assert':100B,119B 'attack':5A,109B,175B 'attackers':27A 'bypass':6A,28A 'call':80B 'check':57B,71B 'code':157B 'code-level':156B 'confirm':82B 'core':48B,133B 'cve':161B 'detail':159B 'disclos':147B 'e':37A 'e-government':36A 'earli':41B 'early-warn':40B 'egov.integrations.mpass.saml':17A,33A,44B 'element':97B 'everi':67B 'exploit':179B 'fix':170B 'forg':118B 'govern':65B 'government':38A 'handler':49B 'in':30A 'let':4A 'lets':26A 'level':158B 'librari':16A 'log':124B 'login':7A,29A,66B,138B 'moldova':11A,35A,62B 'mpass':13A,34A,64B,137B 'nuget':15A 'packag':141B 'parti':53B 'publiccertif':76B 'r/netsec':150B 'read':104B 'refer':85B 'reli':52B 'relying-parti':51B 'report':178B 'request':164B 'research':146B 'respons':60B,115B 'result':107B 'risk':144B 'run':130B 'saml':14A,58B 'sign':90B,96B,114B 'signatur':2A,73B,121B 'signature':24A 'signedinfo':87B 'signedxml.checksignature':75B 'sso':39A 'tech':20A 'techniqu':43B 'tie':94B 'true':78B 'u':32A 'unknown':184B 'use':10A,55B 'user':128B 'valid':89B,113B 'verifysignatureon':77B 'version':68B 'warn':42B 'wild':182B 'wrap':3A,111B,122B 'wrapping':25A 'xml':1A,23A,120B 'xml-signature-wrapping-lets-attackers-bypass-login-in-apps-u':22A","nicknames":[],"mitigations":[],"who_affected":null,"tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-29T01:00:22+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"analyst","external_id":"TECH-202610-xml-signature-wrapping-lets-attackers-bypass-login-in-apps-u","url":null,"severity":null,"published_at":null,"modified_at":null,"first_seen_at":"2026-10-29T01:20:06+00:00","fetched_at":"2026-10-29T01:20:06+00:00","note":null}],"documents":[{"id":13370,"url":"https://www.reddit.com/r/netsec/comments/1xi65vs/xml_signature_wrapping_authentication_bypass_in/","title":"r/netsec: XML Signature Wrapping authentication bypass in Moldova's MPass SAML NuGet library, fixed in 10.0.4 (CVE requested, CAN-2026-2041077)","kind":"post","source":"reddit","text":"XML Signature Wrapping authentication bypass in Moldova's MPass SAML NuGet library, fixed in 10.0.4 (CVE requested, CAN-2026-2041077)\n\nEgov.Integrations.MPass.Saml, the ASP.NET Core handler that relying parties use to verify MPass SAML 2.0 responses, verified signatures like this in every version before 10.0.4: signedXml.LoadXml(signatureElement); return signedXml.CheckSignature(publicCertificate, verifySignatureOnly: true); CheckSignature confirms that the references in SignedInfo are validly signed. Nothing tied a signed reference to the response root the relying party then reads, so anyone holding one validly signed MPass message could relocate the signed element, put chosen assertion content at the root, and still pass verification. The result is authentication as an arbitrary user. Version 10.0.4 adds the missing check: exactly one reference, and its URI must equal the root element ID. Weakness: CWE-347 (Improper Verification of Cryptographic Signature) Attack pattern: CAPEC-475 (Signature Spoofing by Improper Validation) Affected: 8.0.53 to 8.0.56 and 10.0.2 Fixed: 10.0.4 and 10.0.5 Serghei Zagaiciuc found and publicly disclosed the flaw. I confirmed the affected range and the fix by decompiling the published packages. I have submitted a CVE ID request through the MITRE CNA of Last Resort form; so far it has a tracking number, CAN-2026-2041077, and no CVE ID has been assigned yet. No exploit is published. Advisory with the decompiled diff: https://www.masiutin.net/mpass-saml-xml-signature-wrapping.html Original disclosure: https://www.linkedin.com/posts/sergheizagaiciuc_moldova-had-a-major-cybersecurity-blunder-activity-7520870795661897730-j8_I submitted by /u/maxim-masiutin [link] [comments]","published_at":"2026-10-29T01:00:22+00:00","relation":"describes","confidence":null,"note":null},{"id":13404,"url":"https://x.com/_r_netsec/status/2115610404693131510","title":"@_r_netsec: XML Signature Wrapping authentication bypass in Moldova's MPass SAML NuGet libra","kind":"post","source":"x","text":"XML Signature Wrapping authentication bypass in Moldova's MPass SAML NuGet library, fixed in 10.0.4 (CVE requested, CAN-2026-2041077) https://t.co/4zRUtGD9pQ\n\nlikes 1 reposts 0","published_at":"2026-10-29T01:03:21+00:00","relation":"describes","confidence":null,"note":null}],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}