Skip to main content
← Vulnerabilities

Symfony: X.509 Authentication Impersonation via DN Value Injection (incomplete fix for CVE-2026-45063)

Affects Symfony apps that read the X.509 Subject DN from SSL_CLIENT_S_DN before 5.4.56, 6.4.50, 7.4.23 or 8.1.11, which are the fixed releases for each branch.

Written by anthropic/claude-haiku-5.5 from the sources below. Verify against them.

7.7HighCNA
Exploited
No known exploitation
Fix
Fixed in 5.4.56, 6.4.50, 7.4.23, 8.1.11
Who is exposed
Specific setups only

Do first: Check whether your setup matches what the bug needs. Application relies on the X509Authenticator or X509AuthenticationListener to read the Subject DN from $_SERVER['SSL_CLIENT_S_DN'] passed by the web server. No per-attribute user key is configured; applications passing a per-attribute userKey are not affected. Attacker must hold a certificate issued by the application's trusted CA and be able to influence the CN.

26Pcve.now Index 26 of 100 · methodology v3 · provisional
  • Exploitation?/40Exploitation: unknown (data gap). No CISA SSVC exploitation rating yet
  • Exposure8/25Specific setups only, reachable over the network
  • Reach10/20Affects Packagist packages
  • Severity7.7/10CVSS 7.7
  • No patch0/5No signal

What would change the score

  • Would score about 76 if added to CISA KEV
  • Would score about 71 if CISA's SSVC rates exploitation active
  • Would score about 33 if CISA's SSVC rates it automatable

CVE-2026-118513 is not in CISA's Known Exploited Vulnerabilities (KEV) catalog. No public exploit code is tracked. It is rated CVSS 7.7 (high) and affects symfony; fixed in 5.4.56, 6.4.50, 7.4.23 and 1 more.

Published
Last modified
Published
Not listed in CISA KEV
26/100 · provisional
Specific setups only
Fix
Fixed in 5.4.56, 6.4.50, 7.4.23, 8.1.11
None on Exploit-DB, Metasploit or GitHub

Summary

Symfony's X.509 authentication (X509Authenticator and X509AuthenticationListener) can be bypassed by an attacker who holds a certificate from the application's trusted CA and can influence its CN, allowing them to authenticate as any user, including privileged ones. The attack is carried out remotely, with low privileges and no user interaction.

Read the original description

Authentication bypass by spoofing in X509Authenticator and X509AuthenticationListener of Symfony versions prior to 5.4.56, 6.x prior to 6.4.50, 7.x prior to 7.4.23, and 8.x prior to 8.1.11 allows an attacker holding a certificate from the application's trusted CA who can influence the CN to authenticate as an arbitrary user of the application, including a privileged one, following an incomplete fix for CVE-2026-45063. X509Authenticator extracts the user identifier from the Subject DN (Distinguished Name) that the web server passes in $_SERVER['SSL_CLIENT_S_DN']. The fix for CVE-2026-45063 anchored that extraction to an RDN (Relative Distinguished Name) boundary, but the regular expression used was not escape-aware. The expression runs against an already serialized DN, so it cannot tell an RDN separator from a separator character that occurs inside a value. Under RFC 2253, used by Apache and by nginx's $ssl_client_s_dn, a comma inside a value is escaped as \, and the expression reads it as a separator regardless. RFC 2253 also does not treat / as a separator, so it leaves it bare inside a value, while the expression treats every / as one. The legacy X509_NAME_oneline() format, used by Apache's LegacyDNStringFormat and by nginx's $ssl_client_s_dn_legacy, is the mirror image: it escapes / as \/ and leaves , bare. In that format, a certificate with no emailAddress attribute, or whose poisoned CN precedes it, authenticates as the smuggled address. To cover both RFC 2253 and the legacy X509_NAME_oneline() format, X509Authenticator and X509AuthenticationListener now split the DN into RDNs before looking for the attribute, instead of matching the attribute against the serialized string. They select the separator from the serialization, split on unescaped occurrences of that separator only, unescape each RDN afterwards with the rules of its format, and require the attribute to span a whole RDN. The accepted value grammar is unchanged. Applications that pass a per-attribute user key (such as SSL_CLIENT_S_DN_Email) and deployments whose CA generates or validates the subject are not affected by this vulnerability.

What to do

  • Check whether your setup matches what the bug needs.

    Application relies on the X509Authenticator or X509AuthenticationListener to read the Subject DN from $_SERVER['SSL_CLIENT_S_DN'] passed by the web server. No per-attribute user key is configured; applications passing a per-attribute userKey are not affected. Attacker must hold a certificate issued by the application's trusted CA and be able to influence the CN.
  • Upgrade to a fixed version: 5.4.56, 6.4.50, 7.4.23, 8.1.11.

  • Workaround: Switch to the RFC 2253 DN output or pass a per-attribute value as the user key.

Timeline

  1. CVE published
  2. First seen by cve.now
  3. Record last updated

Affected versions

  • symfony/security-httpPackagist

    fixed in 5.4.56; From 6.0.0 · fixed in 6.4.50; From 7.0.0 · fixed in 7.4.23; From 8.0.0 · fixed in 8.1.11

Evidence 3

  1. Advisory
  2. Patch
  3. Patch

Corrections

None so far.

Something wrong on this page? Report an error. Every fix is listed here.

FAQ

Questions about CVE-2026-118513

Is CVE-2026-118513 being exploited?

It is not in CISA's Known Exploited Vulnerabilities catalog, and CISA's SSVC assessment does not mark exploitation as active. That does not mean it has not been attacked: vendors and researchers can report attacks before CISA lists them. No public exploit code is tracked.Source: cve.now feed data

What does this mean?

An attacker holding a certificate from the application's trusted CA who can influence the CN can authenticate as any user of the application, including a privileged one, by spoofing the identifier taken from the certificate's Subject DN.Source: github.com

Which versions are affected by CVE-2026-118513?

symfony/security-http (Packagist): before 5.4.56; from 6.0.0 before 6.4.50; from 7.0.0 before 7.4.23; from 8.0.0 before 8.1.11.Source: cve.now feed data

Am I affected, and how do I check?

Symfony versions before 5.4.56, 6.0.0 to before 6.4.50, 7.0.0 to before 7.4.23, and 8.0.0 to before 8.1.11. The setup matters: the application must rely on the X509Authenticator or X509AuthenticationListener to read the Subject DN from $_SERVER['SSL_CLIENT_S_DN'] and must not configure a per-attribute user key. Check the installed Symfony version in composer.lock and look for X509 authenticator settings in the security configuration.Source: github.com

How do I fix CVE-2026-118513?

Upgrade to 5.4.56, 6.4.50, 7.4.23 or 8.1.11, whichever matches the installed branch. If an upgrade is not possible yet, switch to RFC 2253 DN output or pass a per-attribute value as the user key.Source: github.com