【活用ガイド】

JVNDB-2026-027048

xml::sig プロジェクトのxml::sigにおけるデジタル署名の検証に関する脆弱性

概要

PerlのXML::Sigバージョン0.29から0.72未満では、verify関数が暗号学的チェックを行う前にすべての署名がスキップされた場合にtrueを返すため、署名検証をバイパスされる可能性があります。lib/XML/Sig.pmのverifyは`//dsig:Signature`要素をカウントして`$numsigs`に格納し、それらを繰り返し処理しますが、2つのパスがダイジェストやキーのチェックを行う前に`next`に到達します。ひとつは`SignedInfo/Reference/@URI`が要素に解決されず、かつ`$numsigs`が1より大きい場合、もうひとつは`id_attr`が設定されているときに要求されたIDと一致しないリファレンスの場合です。ループは何をチェックしたかを記録しないため、すべての署名がこれらのパスのいずれかを通過すると、verifyは条件なく`return 1`を実行して終了します。参照URIの名前が存在しないIDを指す2つの`Signature`要素、またはそのような要素1つと`id_attr`があれば、その条件を満たすことになります。信頼されていないXMLをverifyに渡す呼び出し元は、ダイジェストも署名値もチェックされていない文書に対してtrueを受け取る可能性があります。`cert`や`cert_text`の信頼アンカーはキーのチェックを行わないため、この状況を改善しません。バージョン0.28までのXML::XPathベースのverifyには署名スキップの問題がなく、この問題の影響を受けません。
CVSS による深刻度 (CVSS とは?)

CVSS v3 による深刻度
基本値: 7.5 (重要) [その他]
  • 攻撃元区分: ネットワーク
  • 攻撃条件の複雑さ: 低
  • 攻撃に必要な特権レベル: 不要
  • 利用者の関与: 不要
  • 影響の想定範囲: 変更なし
  • 機密性への影響(C): なし
  • 完全性への影響(I): 高
  • 可用性への影響(A): なし
影響を受けるシステム


xml::sig プロジェクト
  • xml::sig 0.29 以上 0.72 未満

想定される影響

・当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。
・当該ソフトウェアが扱う全ての情報が書き換えられる可能性があります。
・当該ソフトウェアは停止しません。
対策

リリース情報、またはパッチ情報が公開されています。参考情報を参照して適切な対策を実施してください。
ベンダ情報

CWEによる脆弱性タイプ一覧  CWEとは?

  1. デジタル署名の不適切な検証(CWE-347) [その他]
共通脆弱性識別子(CVE)  CVEとは?

  1. CVE-2026-18568
参考情報

  1. National Vulnerability Database (NVD) : CVE-2026-18568
  2. 関連文書 : Changes - metacpan.org
  3. 関連文書 : https://github.com/perl-net-saml2/perl-XML-Sig/commit/ef22cfed1ac0f29b316d17eb79cf6480e03ae16a.patch
更新履歴

  • [2026年08月06日]
      掲載