CVE-2026-107380 SVG/XMLサニタイザ「savg-sanitizer」脆弱性によるスクリプト実行
この記事はAIがNVDのCVE情報をもとに要約・生成したものです。影響範囲や対策は、必ずNVDおよび各ベンダーの公式情報をご確認ください。
PHPで動作するSVG/XMLサニタイザ「savg-sanitizer」のバージョン1.0.0以前に、XML DTDエンティティ展開後のSVG href検証処理と、DTD宣言除去後のエンティティ参照のシリアル化処理に不備がありました。このため、特定のエンティティがサニタイズ後もHTMLレンダリング時にJavaScript URLとして評価される可能性があり、埋め込みSVGを含むページでスクリプト実行が可能になる脆弱性が確認されています。影響範囲はPHPでSVGを処理するアプリケーションに限られますが、サニタイズ処理を依存している環境では、ユーザー操作時にリモートコード実行のリスクが生じる可能性があります。確認時は使用ライブラリのバージョンを確認し、1.0.0以降へのアップグレードを検討してください。また、SVGのインライン埋め込み処理が存在する場合は、出力内容の検証を再評価する必要があります。
- NVD Detail (NVD) [日本語で表示]
ソクラテスの問い、プラトンの備え
プラトンよ、この脆弱性の本質に問う。サニタイザが「安全」を誤認する根拠は何か。それは設計の前提に誤りがあるのだろうか。
確かに、ソクラテス。このライブラリはXML DTDとSVG hrefの処理に矛盾がある。例えば、DTD宣言を除去した後もエンティティ参照が残る点が問題です。運用者はまず、使用中のライブラリバージョンを確認する必要があります。PHPでSVGを処理するアプリケーションであれば、1.0.0以前かどうかをチェックしましょう。
では、その不備が「実害」を生む条件は何か。哲学的には、信頼の基盤が破綻する瞬間を問うが、現場ではどうか。
実害の条件は、SVGがインラインで埋め込まれ、ユーザーがリンクをクリックすることです。運用者は、SVGのインライン処理が存在するかを確認し、出力内容を再評価する必要があります。パッチ適用は1.0.0へのアップグレードが前提ですが、変更管理としてテスト環境での検証が不可欠です。
しかし、リスクを回避するためには「検証」が不可欠だ。では、運用者はどうすれば影響範囲を特定できるのか。
影響調査では、アプリケーション内でSVGを処理するモジュールを特定し、サニタイズ処理がどの段階で行われているかを確認してください。また、ベンダー情報確認として、ライブラリの公式ドキュメントで1.0.0以降の変更点を確認し、影響を評価しましょう。
では、この脆弱性に対応する「監視」の重要性は何か。
監視では、パッチ適用後の動作変化をログで追跡し、SVG出力に異常がないかを定期的にチェックする必要があります。また、変更管理として、適用したパッチとその理由をドキュメント化し、チーム内で共有することが重要です。
だが、プラトン、この脆弱性は「小さな」ものではないか。CVSSが5.4という数値に、哲学的な安心感があるのか。
確かに、数値は中程度ですが、リモートコード実行のリスクが存在します。運用者は、サニタイズ処理を依存している環境であれば、軽視せず、即時対応を検討すべきです。少なくとも、この話題を「哲学の領域」に留めず、実際のコードとログに目を向けるべきです。
なるほど。では、プラトンよ、この会話の最後に、運用者に向けた戒めを述べよ。
戒めはこうです——「バージョンを確認し、パッチを適用し、変更を記録し、監視を怠らず。そして、サニタイズが『安全』を保証するわけではないことを、常に心に留めてください」。
関連キーワード: php