# CVE-2026-45069: Symfony OidcTokenHandler insufficient JWT claim verification

Source: https://junglewise.ai/threats/cve-2026-45069-symfony-oidctokenhandler-insufficient-jwt-claim-verification  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-07-14. Updated: 2026-07-14  
License: CC BY 4.0 with a link back

CVE-2026-45069 · Severity: medium · CVSS 4 · Published 2026-07-14

Symfony is a popular PHP framework used to build web applications. A vulnerability in its OpenID Connect (OIDC) component allows the system to accept security tokens that are missing critical safety checks, such as expiration dates or sender identity. This could allow an attacker to use expired or unauthorized tokens to gain access to user accounts or protected data.

Technologies: [symfony/security-http (Packagist)](https://junglewise.ai/threats/technologies/symfony-security-http), [symfony/symfony (Packagist)](https://junglewise.ai/threats/technologies/symfony-symfony), [Symfony Security HTTP](https://junglewise.ai/threats/technologies/security-http). Vendors: [Packagist](https://junglewise.ai/threats/vendors/packagist), [Symfony](https://junglewise.ai/threats/vendors/symfony).

## Quick answers

**Is CVE-2026-45069 exploited in the wild?** No. Junglewise Threat Intelligence has no report of CVE-2026-45069 being exploited in the wild.

**How severe is CVE-2026-45069?** Medium severity, with a CVSS score of 4, published 14 July 2026.

**Which products and versions are affected?** symfony/security-http (Packagist) ECOSYSTEM:introduced=6.3.0,fixed=6.4.40; symfony/symfony (Packagist) ECOSYSTEM:introduced=6.3.0,fixed=6.4.40.

**Is there a fix for CVE-2026-45069?** Yes. symfony/security-http (Packagist): upgrade to 6.4.40 or later; symfony/symfony (Packagist): upgrade to 6.4.40 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.

**How is CVE-2026-45069 attacked?** It is attacked over the network, in a software library.

**Am I affected by CVE-2026-45069?** Check whether you run symfony/security-http (Packagist), symfony/symfony (Packagist) or Symfony Security HTTP at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

## How to fix

- symfony/security-http (Packagist): upgrade to 6.4.40 or later

  ```sh
  composer require symfony/security-http:^6.4.40
  ```

- symfony/symfony (Packagist): upgrade to 6.4.40 or later

  ```sh
  composer require symfony/symfony:^6.4.40
  ```


## Technical details

The OidcTokenHandler::verifyClaims() method in Symfony's security-http component fails to pass the $mandatoryClaims argument to the ClaimCheckerManager::check() method. While audience (aud), issuer (iss), and expiry (exp) checkers are registered, the underlying library only validates claims that are present in the token. Consequently, a validly signed JWT that omits these mandatory claims will pass verification instead of being rejected. This allows for the use of tokens that have expired or were intended for different audiences. The issue is fixed in versions 6.4.40, 7.4.12, and 8.0.12 by explicitly passing the list of mandatory claims during verification.

## Affected products

- Symfony symfony/security-http >= 6.3.0, < 6.4.40; >= 7.4.0, < 7.4.12; >= 8.0.0, < 8.0.12
- Symfony symfony/symfony >= 6.3.0, < 6.4.40; >= 7.4.0, < 7.4.12; >= 8.0.0, < 8.0.12

## Identifiers

- CVE-2026-45069
- GHSA-29fc-p6c4-24cg

## Timeline

- 2026-05-20: patched: Fixed versions 6.4.40, 7.4.12, and 8.0.12 released.
- 2026-05-20: advisory: GitHub Security Advisory GHSA-29fc-p6c4-24cg published.
- 2026-07-14: disclosed: CVE-2026-45069 published to NVD.

## References

- [https://github.com/symfony/symfony/releases/tag/v6.4.40](https://github.com/symfony/symfony/releases/tag/v6.4.40)
- [https://github.com/symfony/symfony/releases/tag/v7.4.12](https://github.com/symfony/symfony/releases/tag/v7.4.12)
- [https://github.com/symfony/symfony/releases/tag/v8.0.12](https://github.com/symfony/symfony/releases/tag/v8.0.12)
- [https://github.com/symfony/symfony/security/advisories/GHSA-29fc-p6c4-24cg](https://github.com/symfony/symfony/security/advisories/GHSA-29fc-p6c4-24cg)

## Related threats

- [Symfony YAML stack exhaustion in inline lexer](https://junglewise.ai/threats/cve-2026-109413-in-symfony-yaml-prior-to-versions-5-4-54-6-4-45-7-4-18-and-8-1-6)
- [Symfony HTTP Foundation ReDoS in HeaderUtils::split()](https://junglewise.ai/threats/cve-2026-108082-symfony-is-a-php-framework-for-web-and-console-applications-and)
- [Symfony Routing improper dot-segment encoding in UrlGenerator](https://junglewise.ai/threats/cve-2026-48784-symfony-routing-improper-dot-segment-encoding-in-urlgenerator)
- [Symfony HtmlSanitizer XSS via incomplete URL attribute sanitization](https://junglewise.ai/threats/cve-2026-48761-symfony-htmlsanitizer-xss-via-incomplete-url-attribute)
- [Symfony HtmlSanitizer visual spoofing via percent-encoded BiDi characters](https://junglewise.ai/threats/cve-2026-48760-symfony-htmlsanitizer-visual-spoofing-via-percent-encoded-bidi)
