Symfonyに複数の脆弱性、サーバーのファイルを読まれるおそれ

PHP の
脆弱性の概要
- 対象
- Symfony
- 悪用
- 確認されていない
- 影響
- サーバーのファイルを読まれる、処理を止められる
- 修正版
- 修正版あり
- 公表元
- Symfony / GitHub
| 製品 | 対象のバージョン | 修正版 |
|---|---|---|
| Symfony 8系 | 8.1.11 より前 | 8.1.11 |
| Symfony 7系 | 7.4.23 より前 | 7.4.23 |
| Symfony 6系 | 6.4.50 より前 | 6.4.50 |
| Symfony 5系 | 5.4.56 より前 | 5.4.56 |
製品の履歴:PHPの脆弱性一覧公表されたらすぐ通知を受け取る
やること
Symfony は PHP で Web システムを作るためのフレームワークです。部品ごとに分かれていて、ほかの製品やフレームワークの中で使われていることもあります。次の順で進めてください。
- Symfony の部品を、使っている系統の修正版(8.1.11、7.4.23、6.4.50、5.4.56)以降に更新してください。たとえば Serializer の部品なら、アドバイザリは
composer update symfony/serializer --with-all-dependenciesの形で更新する例を示しています - 自社で作ったシステムでなくても、
composer.lockにsymfony/から始まる名前があれば、その製品の提供元や委託先に対応を聞いてください - 管理画面などを Web サーバーや WAF の設定だけで守っている場合は、Symfony の中の
access_controlでも守るように見直してください
何が危ないのか
Symfony は11月4日に 5.4.56、6.4.50、7.4.23、8.1.11 を公開しました。7.4.23 の変更の一覧には Config、HttpFoundation、Serializer、Yaml など、多くの部品の修正が並んでいます。GitHub のアドバイザリで深刻度が High のものは次の3件です。
1つ目は受け取ったデータをファイルの型に戻す処理の欠陥(CVE-2026-121623、CVSS v4 8.2)です。Serializer の DataUriNormalizer はデータを URI の形(data: で始まる書き方)で受け取ります。この部品は DATA: のような大文字の書き方も受け付けますが、PHP は小文字の data: しかデータとして扱わず、大文字の書き方はサーバーの中のファイルの場所として読まれます。.. で上の階層へさかのぼれるので、利用者が送ったデータからサーバーの任意のファイルの中身を読まれるおそれがあります。利用者が送ったデータを SplFileObject などのファイルの型に戻す処理が対象で、6.4 以降は #[MapRequestPayload] で受け取る項目にこの型がある場合も当てはまります。標準の構成でこの部品は有効になっています。
2つ目は YAML の読み込みの欠陥(CVE-2026-123792、CVSS v4 8.7)です。YAML は設定ファイルなどに使う書式です。細工した文書を読ませると処理の時間が極端に延び、最悪の場合は100バイトに満たない文書で PHP の処理を数秒から数分止められます。7.4 以降で Yaml の部品が入っている場合、#[MapRequestPayload] を使う窓口で acceptFormat を絞っていないと、ログインなしの1回の要求で処理を max_execution_time まで止められます。修正版では acceptFormat に挙げない限り CSV と YAML の受け付けをしなくなりました。
3つ目は Filesystem の Path の欠陥(CVE 番号なし)です。:// の前をすべて根として扱うため、決めたフォルダーの外のファイルを指せてしまいます。6.4 以降の AssetMapper では、悪意のある外部のパッケージが assets/vendor の外にファイルを書き込めるおそれがあります。
Web サーバーの制限を回避される欠陥
GitHub の評価は Low や Moderate ですが、構成によって影響が出る欠陥もあります。
GHSA-3h27-hjv7-fqjx は /index.phpadmin のような URL が /admin として扱われる欠陥です。nginx や Apache、CDN、WAF で /admin への接続を制限している構成では、この制限を回避されて保護された画面に届くおそれがあります。Symfony の中の access_control やファイアウォールは影響を受けません。以前の修正(CVE-2025-64500)で入った不具合で、5.4.50、6.4.29、7.3.7、8.0 以降の、修正版より前のバージョンが対象です。
GHSA-5mx8-mwrp-5693 は、細工したリンクを開かせると、画面の中に作られるリンクやフォームの送り先が攻撃者のホストを指す欠陥です。ログインのフォームの入力が攻撃者に送られるおそれがあります。公式の文書で推奨している Web サーバーの設定では影響を受けず、framework.trusted_hosts では防げません。
対象
上の表の修正版より前が対象です。欠陥ごとに影響を受け始めるバージョンは異なります。Symfony の発表と GitHub のアドバイザリに、悪用されたという記載はありません。
中小企業が確かめること
委託して作った PHP のシステムがあれば、Symfony の部品を使っているか、使っていれば修正版への更新の予定を委託先に聞いてください。管理画面を Web サーバーの設定だけで守っているかどうかも、あわせて確かめてください。
自社で確かめること
- Symfony の部品の版を見るcomposer.lock で symfony/ から始まる部品のバージョンを確かめてください。ほかの製品やフレームワークの中に入っていることもあります。
- 管理画面の守り方を確かめるnginx や Apache、WAF の設定だけで /admin などを制限していないかを見てください。
- 外から受け取る形式を見る#[MapRequestPayload] を使う窓口で、受け付ける形式を acceptFormat で絞っているかを確かめてください。
出典
- Symfony「Symfony 7.4.23 released」
- Symfony「GHSA-pxj9-jh84-vhm5: DataUriNormalizer Opens Data URIs With a Non-Lowercase Scheme as Local Files, Letting a Client Read Any Server File」
- GitHub「DataUriNormalizer Opens Data URIs With a Non-Lowercase Scheme as Local Files, Letting a Client Read Any Server File」
- GitHub「Exponential and Quadratic Parse Times in the YAML Parser Let a Single Document Hold a Process」
- GitHub「Filesystem Path Treats Any Prefix Before "://" as a Root, Letting Paths Escape Their Base Directory」
- Symfony「GHSA-3h27-hjv7-fqjx: Path Rules Enforced in Front of PHP Can Be Bypassed by Appending the Path to the Script Name」
- Symfony「GHSA-5mx8-mwrp-5693: Generated URLs Can Point to a Host Chosen by the Client」



コメント 0
まだコメントはありません。