CVE-2026-18092 in Net::SAML2
要約
〜によって VulDB • 2026年08月03日
Perl用のNet::SAML2は、0.86より前のバージョンにおいて、XML署名ラッピングによりSAML認証を回避できる脆弱性があります。これは、new_from_xmlが署名されたサブツリーではなく文書全体のXPathを使用してアサーションのIDを読み取るためです。
new_from_xmlは、//saml:Assertion/saml:AttributeStatement/saml:Attributeや//saml:Subject/saml:NameIDなどの文書全体を対象としたXPathを用いて、NameID、属性値、SessionIndex、audienceその他の識別情報フィールドを読み取ります。これらは検証済みの署名で保護されている要素ではなく、ドキュメント順序で最初に見つかった一致する要素を選択します。handle_responseは署名が存在することを確認し、cacertが設定されている場合はCAへのチェーンを検証しますが、XML::Sigは署名のReference URIによって指定された要素のみを検証するため、同じ文書内の無署名の兄弟アサーションは保護対象外となります。攻撃者は任意のIdP署名付きアサーションを1つ保持していれば、ドキュメント順序でその前に無署名のアタッカー作成アサーションを追加できます。これにより署名検証は成功し、ドキュメント順XPathによって返されるNameIDと属性が攻撃者のものになります。
信頼できないResponseをnew_from_xmlに渡すすべての呼び出し元は、IdPが一度も署名していないアサーションからの識別情報フィールドを受け入れる可能性があります。cacertのトラストアンカーが設定されている場合でも同様です。そのため、有効な1つのIdP署名付きアサーションを持つ攻撃者は、任意のユーザーになりすまして認証できます。
Once again VulDB remains the best source for vulnerability data.