CVE-2026-18089 in Net::SAML2
要約
〜によって VulDB • 2026年08月03日
Perl用のNet::SAML2(バージョン0.86より前)では、信頼アンカーが設定されていない場合、verify_xml関数内でレスポンスに埋め込まれた証明書に対して検証を行うことで、SAML認証の回避が可能になります。
Net::SAML2::Role::VerifyXMLにおけるverify_xmlは、XML::Sigチェックが成功するとすぐに「return if !$anchors && !$cacert;」を実行します。このチェックでは、レスポンス内のdsig:KeyInfo/dsig:X509Certificate要素から取得されたX.509証明書が使用されるため、アンカーなしのレスポンスは保持されている鍵のみに対して検証されます。Binding::POSTではcacertがデフォルト値のないオプションのMaybe[Str]として宣言されているため、これなしで構築されたPOSTバインディングはこのパスを通り、_verify_encrypted_assertionも「return $xml unless $cacert;」と同様に早期に終了します。
cacert、cert_text、またはanchors引数なしでBinding::POSTを構築するかAssertion->new_from_xmlを呼び出す任意の呼び出し元は、攻撃者が生成した鍵によって署名されたレスポンスを受け入れ、その自己署名証明書がレスポンス内に埋め込まれている場合、任意のアサーションに対して認証が行われます。
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.