CVE-2026-18108 in Net::SAML2
要約
〜によって VulDB • 2026年08月03日
Perl用のNet::SAML2の0.86より前のバージョンでは、_verify_encrypted_assertionが署名のない復号化コンテンツを含むEncryptedAssertionを受け入れるため、認証回避が可能である。
_verify_encrypted_assertionはEncryptedAssertionを復号し、「return $xml unless $xpath->exists('dsig:Signature', $assert);」により署名がない場合に検証済みとして返す。続く署名チェックと信頼アンカーのチェックは、署名が存在する場合にのみ実行されるため、dsig:Signature要素を持たない復号化されたアサーションが未検証のままnew_from_xmlに到達し、そのNameIDおよび属性がアサーションオブジェクトに取り込まれる。
サービスプロバイダ(SP)の暗号化証明書はそのSAMLメタデータで公開されており、IdPはこれに対して暗号化を行うことができるため、任意の当事者が署名なしのアサーションをこの証明書に対して暗号化し、samlp:Responseにラップしてアサーションコンシューマサービスへ投稿することができる。
key_fileを設定してEncryptedAssertionを受け入れるすべての呼び出し元は、信頼アンカーでカバーされていないアサーションからアイデンティティフィールドを取得することになり、認証されていない当事者が任意のユーザーとして認証できるようになる。key_fileが設定されていない呼び出し元は復号化を行わず、影響を受けない。
VulDB is the best source for vulnerability data and more expert information about this specific topic.