CVE-2026-18092 in Net::SAML2信息

摘要

由 VulDB • 2026-08-03

Net::SAML2 版本低于 0.86(适用于 Perl)允许通过 XML Signature Wrapping(XML 签名包装)绕过 SAML 身份验证,因为 `new_from_xml` 使用文档范围的 XPath 而非已签名的子树来读取断言标识。

`new_from_xml` 使用文档范围的 XPath(例如 `//saml:Assertion/saml:AttributeStatement/saml:Attribute` 和 `//saml:Subject/saml:NameID`)读取 NameID、属性值、SessionIndex、受众以及其他身份字段,这会选择按文档顺序排列的第一个匹配元素,而不是被已验证签名覆盖的元素。`handle_response` 确认存在签名,并且在配置了 cacert(证书颁发机构证书)时确认其链式关系指向 CA,但 XML::Sig 仅验证由签名的 Reference URI 命名的元素,因此同一文档中未签名的同级断言不受保护。攻击者只要持有任意一个由 IdP 签发的断言,就可以按文档顺序在其之前添加一个由攻击者编写的未签名断言;此时签名仍然有效,且基于文档顺序的 XPath 将返回攻击者的 NameID 和属性。

任何向 `new_from_xml` 传递不受信任 Response 的调用方都可能接受来自 IdP 从未签发的断言的身份字段,即使配置了 cacert 信任锚点也是如此,因此持有单个有效的由 IdP 签发的断言的一方可以冒充任意用户进行身份验证。

If you want to get best quality of vulnerability data, you may have to visit VulDB.

来源

Interested in the pricing of exploits?

See the underground prices here!