GHSA-38cx-cq6f-5755 / CVE-2026-48736
この脆弱性で確認すること
- 対象製品
- symfony/http-client / symfony/http-foundation / symfony/symfony
- WATRIXで確認できる範囲
- 利用製品・バージョン・設定を確認し、影響調査や対策の進め方をご相談いただけます。掲載だけで自動診断や復旧の対応を保証するものではありません。
- 情報の作成方法
- 収集した原典情報
情報整理:WATRIX合同会社。影響の確定や侵害の有無は、実際の版・設定・ログ等を確認して判断します。
- CVSS
- 6.3
- 公開元の公表日時
- 2026/06/16 2:31
- 公開元の更新日時
- 2026/06/16 2:31
- 当サイトの収集処理
- 2026/11/07 0:00
原典の説明
公開元の記載です。日本語での確認手順・対処の解説が付いていない項目も含まれます。
Symfony: IpUtils::PRIVATE_SUBNETS Omits IPv6 Transition Forms (6to4, NAT64, Teredo, IPv4-compatible): SSRF Bypass in NoPrivateNetworkHttpClient
### Description `Symfony\Component\HttpClient\NoPrivateNetworkHttpClient` is documented as a decorator that blocks requests to private networks by default. The list of blocked subnets (`Symfony\Component\HttpFoundation\IpUtils::PRIVATE_SUBNETS` on 6.4+, a private constant in `NoPrivateNetworkHttpClient` on 5.4) enumerates RFC1918, loopback, link-local and IPv4-mapped IPv6 (`::ffff:0:0/96`) prefixes, but omits the remaining IPv6 transition forms that can embed a private IPv4 destination: 6to4 (`2002::/16`, RFC 3056), Teredo (`2001::/32`, RFC 4380), NAT64 (`64:ff9b::/96`, RFC 6052 and `64:ff9b:1::/48`, RFC 8215) and IPv4-compatible IPv6 (`::/96`, RFC 4291 §2.5.5.1). `IpUtils::checkIp6()` is a pure bitwise CIDR comparison against the constants list and never extracts the embedded IPv4, so an attacker who can supply a URL writes the loopback / RFC1918 IPv4 target as e.g. `http://[2002:7f00:1::]/` (6to4 → 127.0.0.1), `http://[64:ff9b::7f00:1]/` (NAT64 → 127.0.0.1), `http://[::7f00:1]/` (IPv4-compatible → 127.0.0.1) or `http://[2001::1]/` (Teredo). `IpUtils::isPrivateIp()` returns `false` and `NoPrivateNetworkHttpClient` dispatches the request. Real-world reachability of the embedded IPv4 depends on the deploy's IPv6 routing (6to4 tunnel interface, upstream NAT64 gateway, kernel handling of IPv4-compatible addresses), but the security boundary the decorator promises — the dispatch decision — is crossed regardless of whether the packet ultimately lands on the embedded IPv4. ### Resolution The private-subnet list now includes `::/96`, `2002::/16`, `2001::/32`, `64:ff9b::/96` and `64:ff9b:1::/48`. Blanket blocking of these prefixes matches the policy applied by Chromium and Mozilla's Private Network Access; server-side HTTPS APIs are not legitimately published on these prefixes. The patches for this issue are available [here](https://github.com/symfony/symfony/commit/82765368cf74177c36613575182f168a2eb765b2) for branch 5.4 and [here](https://github.com/symfony/symfony/commit/85b831555be8ea1f43bf01078afe87bc4c92f65e) for branch 6.4 (and forward-ported to 7.4, 8.0 and 8.1). ### Credits Symfony would like to thank tonghuaroot for reporting the issue and Nicolas Grekas for providing the fix.
公開元の対処情報
個別の対処手順は未記録です。開発元の最新の案内と、対象の製品・系列に合う修正版を確認してください。
出典・著作権・ライセンスを確認する
- 出典
GitHub Advisory Database
- 利用許諾
CC-BY-4.0
- 利用条件
当サイトでの保存履歴
当サイトが取得した原本の履歴です。公開元での過去の改訂日時とは異なります。
初回保存のみです。訂正前の版はまだありません。
現在の保存内容2026/10/31 17:00
掲載中修正版あり
このページは公表情報を確認するためのデータです。製品を使っているだけで被害や脆弱性への該当が確定するものではありません。現在のバージョン、設定条件、開発元の更新情報を確認してください。

