CVE-2026-48736: Symfony: IpUtils::PRIVATE_SUBNETS Omits IPv6 Transition Forms (6to4, NAT64, Teredo, IPv4-compatible): SSRF Bypass in NoPrivateNetworkHttpClient

Published Jun 15, 2026
·
Updated

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::PRIVATESUBNETS 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 for branch 5.4 and here 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.

Other sources

Symfony is a PHP framework for web and console applications and a set of reusable PHP components. From 5.4.0 to 5.4.53, 6.4.41, 7.4.13, and 8.0.13, NoPrivateNetworkHttpClient and IpUtils::PRIVATESUBNETS omitted IPv6 transition prefixes such as 6to4, NAT64, Teredo, and IPv4-compatible IPv6, allowing attacker-supplied URLs to represent private IPv4 targets in forms that IpUtils::isPrivateIp() did not block. This issue is fixed in versions 5.4.53, 6.4.41, 7.4.13, and 8.0.13.

MITRE

Affected Software

12 affected componentsFixes available
composer/symfony/symfony>=8.0.0<8.0.13
8.0.13
composer/symfony/symfony>=7.0.0<7.4.13
7.4.13
composer/symfony/symfony>=6.4.0<6.4.41
6.4.41
composer/symfony/symfony>=5.4.0<5.4.53
5.4.53
composer/symfony/http-foundation>=8.0.0<8.0.13
8.0.13
composer/symfony/http-foundation>=7.0.0<7.4.13
7.4.13
composer/symfony/http-foundation>=6.4.0<6.4.41
6.4.41
composer/symfony/http-client>=5.4.0<5.4.53
5.4.53
SensioLabs Symfony>=5.4.0<5.4.43
SensioLabs Symfony>=6.4.0<6.4.41
SensioLabs Symfony>=7.0.0<7.4.13
SensioLabs Symfony>=8.0.0<8.0.13

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade composer/symfony/symfony to a version that resolves this vulnerability.

    Fixed in 8.0.13
  2. Upgrade

    Upgrade composer/symfony/symfony to a version that resolves this vulnerability.

    Fixed in 7.4.13
  3. Upgrade

    Upgrade composer/symfony/symfony to a version that resolves this vulnerability.

    Fixed in 6.4.41
  4. Upgrade

    Upgrade composer/symfony/symfony to a version that resolves this vulnerability.

    Fixed in 5.4.53
  5. Upgrade

    Upgrade composer/symfony/http-foundation to a version that resolves this vulnerability.

    Fixed in 8.0.13
  6. Upgrade

    Upgrade composer/symfony/http-foundation to a version that resolves this vulnerability.

    Fixed in 7.4.13
  7. Upgrade

    Upgrade composer/symfony/http-foundation to a version that resolves this vulnerability.

    Fixed in 6.4.41
  8. Upgrade

    Upgrade composer/symfony/http-client to a version that resolves this vulnerability.

    Fixed in 5.4.53
  9. Upgrade

    Upgrade Symfony to a version that resolves this vulnerability.

    Fixed in 5.4.53
  10. Upgrade

    Upgrade Symfony to a version that resolves this vulnerability.

    Fixed in 6.4.41
  11. Upgrade

    Upgrade Symfony to a version that resolves this vulnerability.

    Fixed in 7.4.13
  12. Upgrade

    Upgrade Symfony to a version that resolves this vulnerability.

    Fixed in 8.0.13
  13. Configuration

    Update the blocked private-subnet list used by IpUtils::PRIVATE_SUBNETS (6.4+) and the private constant in NoPrivateNetworkHttpClient (5.4) to include the IPv6 transition prefixes ::/96, 2002::/16, 2001::/32, 64:ff9b::/96, and 64:ff9b:1::/48 to prevent SSRF bypass via embedded IPv4 destinations.

    Symfony\Component\HttpFoundation\IpUtils::PRIVATE_SUBNETS / Symfony\Component\HttpClient\NoPrivateNetworkHttpClient PRIVATE_SUBNETS list (blocked subnets) = Add IPv6 transition forms: ::/96, 2002::/16, 2001::/32, 64:ff9b::/96, 64:ff9b:1::/48

Event History

Jun 15, 2026
Advisory Published
via GitHub·05:31 PM
Data Sourced
via GitHub·05:31 PM
DescriptionWeaknessAffected Software
Jul 14, 2026
CVE Published
via MITRE·07:09 PM
Data Sourced
via MITRE·07:09 PM
DescriptionWeakness
Data Sourced
via NVD·08:17 PM
RemedyDescriptionSeverityWeaknessAffected Software
Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of CVE-2026-48736?

The severity of CVE-2026-48736 is rated as risk 65.

2

What does CVE-2026-48736 affect?

CVE-2026-48736 affects components of the Symfony framework, including Symfony HttpClient and HttpFoundation.

3

How can I mitigate the risks associated with CVE-2026-48736?

To mitigate the risks of CVE-2026-48736, ensure that you are using the latest version of Symfony where the vulnerability is patched.

4

What type of vulnerability is CVE-2026-48736 classified as?

CVE-2026-48736 is classified as a Server-Side Request Forgery (SSRF) vulnerability.

5

How does the NoPrivateNetworkHttpClient relate to CVE-2026-48736?

The NoPrivateNetworkHttpClient in Symfony is designed to block requests to private networks, which is crucial in preventing exploitation related to CVE-2026-48736.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203