Summary
CVE-2026-48489 is a high-severity security firewall bypass vulnerability in the symfony/security-http component of the Symfony PHP framework. When a firewall is configured with failure_forward: true, an unauthenticated attacker can craft a failing login request to bypass access_control rules and receive the response from a protected route as if they were authenticated. The vulnerability carries a CVSS 4.0 base score of 8.7 (Critical).
Technical details
- Root cause:
DefaultAuthenticationFailureHandlerreads the attacker-controlled_failure_pathrequest parameter whenfailure_forward: trueis enabled, and uses its value as the target path for an internal subrequest dispatched viaHttpKernelInterface::SUB_REQUEST. - Trigger condition: A firewall must be configured with form-login (or any authenticator backed by
DefaultAuthenticationFailureHandler) with thefailure_forward: trueoption set. This is a non-default configuration. - Why the bypass works: Symfony’s
Firewall::onKernelRequestlistener intentionally skips subrequests on the assumption they are internally generated and trusted. As a result,AccessListener— which evaluatesaccess_controlrules — never executes for the subrequest. The attacker effectively reaches a protected GET route outside the firewall perimeter. - Attack vector: An unauthenticated attacker sends a POST to the login check path with a crafted
_failure_pathparameter (e.g.,_failure_path=/admin/protected-resource) and receives the controller response for the targeted route without any credentials. - Impact: Unauthorized read access to
access_control-protected GET endpoints — including data exports, internal APIs, and administrative views — constitutes a significant authentication bypass and information disclosure. No privileges, user interaction, or prior knowledge of application internals are required beyond a valid login endpoint. Classified as CWE-863 (Incorrect Authorization).
Affected software
- symfony/security-http (and symfony/symfony) — all versions prior to 5.4.53
- symfony/security-http (and symfony/symfony) — versions 6.0.0 through 6.4.40 (prior to 6.4.41)
- symfony/security-http (and symfony/symfony) — versions 7.0.0 through 7.4.12 (prior to 7.4.13)
- symfony/security-http (and symfony/symfony) — versions 8.0.0 through 8.0.12 (prior to 8.0.13)
Severity
CVSS 4.0 base score: 8.7
Vector: CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
Mitigation and recommended actions
- Immediate — apply the vendor patch: Upgrade to one of the fixed releases that corresponds to your active branch:
- 5.4.53
- 6.4.41
- 7.4.13
- 8.0.13
- If immediate upgrade is not feasible — configuration workaround: Disable the
failure_forward: trueoption in yoursecurity.yamlfirewall configuration and revert to the default redirect-on-failure behavior (failure_forward: false). This eliminates the subrequest code path exploited by this vulnerability. - Audit scope: Review all Symfony firewall configurations for the presence of
failure_forward: trueto determine whether your deployment is in the vulnerable configuration.
IONIX Status
The IONIX research team is tracking ongoing exploitation attempts and recommends immediate patching. Potentially affected assets are outlined in this post.

