NIST deprecates RSA-2048 from 2030. Find every one of them before attackers do.
🐘 Packagist
Not in CISA KEV

CVE-2012-6431 — http-foundation

Fix: symfony/symfony@55014a6

CVE-2012-6431 is a CWE-264 vulnerability in symfony/http-foundation. A fix is available for symfony/http-foundation — see the affected versions and patch details below.

Symfony Allows URI Restrictions Bypass Via Double-Encoded String

Published
Updated
Affected
4 pkgs
Patched
4 / 4
Exploits
None indexed
Exploitation data as of Nov 3, 2026 · OSV.dev, NVD, FIRST.org (EPSS)

EPSS Exploitation Probability

via FIRST.org ↗
1.9%probability of exploitation in next 30 days
Lower Risk0.00%
Lower risk than most CVEs79th percentile — riskier than 79% of all scored CVEsHighest risk
0.00%0.79%1.58%2.38%0.2%1.9%May 26Sep 26Nov 26

Probability of exploitation in the next 30 days, from FIRST.org EPSS.

Real-World Exposure

4 pkgs affected
🐘symfony/http-foundation🐘symfony/routing🐘symfony/security🐘symfony/symfony

Real-time download stats are indexed for npm and PyPI packages. This vulnerability affects Packagist packages — download data is not available via public APIs for these ecosystems.

Description

On the Symfony 2.0.x version, there's a security issue that allows access to routes protected by a firewall even when the user is not logged in.

Both the Routing component and the Security component uses the path returned by getPathInfo() to match a Request. The getPathInfo() returns a decoded path, but the Routing component (Symfony\Component\Routing\Matcher\UrlMatcher) decodes the path a second time; whereas the Security component, Symfony\Component\HttpFoundation\RequestMatcher, does not.

This difference causes Symfony 2.0 to be vulnerable to double encoding attacks.

Affected Packages

4 total 4 fixed
EcosystemPackageVulnerable rangeFix
🐘Packagistsymfony/http-foundation≥ 2.0.0&&< 2.0.192.0.19composer require symfony/http-foundation:^2.0.19
🐘Packagistsymfony/routing≥ 2.0.0&&< 2.0.192.0.19composer require symfony/routing:^2.0.19
🐘Packagistsymfony/security≥ 2.0.0&&< 2.0.192.0.19composer require symfony/security:^2.0.19
🐘Packagistsymfony/symfony≥ 2.0.0&&< 2.0.192.0.19composer require symfony/symfony:^2.0.19

Affected Products

1 product · 20 configurations
Application
symfonysensiolabs
20 versions
2.0.02.0.12.0.22.0.32.0.42.0.52.0.62.0.72.0.82.0.92.0.102.0.11

Detection & mitigation playbook

Open-source dependency
  1. Detect

    Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for symfony/http-foundation, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.

  2. Fix

    Update symfony/http-foundation to 2.0.19 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms CVE-2012-6431 is resolved across your whole dependency graph.

  3. Workarounds

    If you can't upgrade right away: gate or disable the affected feature, validate untrusted input at the boundary, and avoid passing attacker-controlled data into the vulnerable path. O3's runtime protection blocks exploitation in production as an interim safeguard until the upgrade lands.

Frequently Asked Questions

On the Symfony 2.0.x version, there's a security issue that allows access to routes protected by a firewall even when the user is not logged in. Both the Routing component and the Security component uses the path returned by `getPathInfo()` to match a Request. The `getPathInfo()` returns a decoded path, but the Routing component (`Symfony\Component\Routing\Matcher\UrlMatcher`) decodes the path a second time; whereas the Security component, `Symfony\Component\HttpFoundation\RequestMatcher`, does not. This difference causes Symfony 2.0 to be vulnerable to double encoding attacks.
O3 Security · Impact-Aware SCA

Is CVE-2012-6431 in your dependencies?

Find it across Packagist, including transitive dependencies.

CVE-2012-6431: http-foundation — Fixed in 2.0.19