CVE-2026-30964

CVE-2026-30964 is a medium-severity security vulnerability in web-auth/webauthn-framework (composer), affecting versions >= 5.2.0, < 5.2.4. It is fixed in 5.2.4.

Summary

When allowed_origins is configured, CheckAllowedOrigins reduces URL-like values to their host component and accepts on host match alone. This makes exact origin policies impossible to express: scheme and port differences are silently ignored.

Details

CheckAllowedOrigins stores each configured allowed origin as:

parse_url($allowedOrigin)['host'] ?? $allowedOrigin

and later reduces the received clientDataJSON.origin the same way:

parse_url($C->origin)['host'] ?? $C->origin

If the reduced value matches, the method returns early. As a result, for the normal allowed_origins path, the later HTTPS check is not reached.

This differs from WebAuthn Level 2, which requires verifying that C.origin matches the RP's origin (scheme + host + port), separately from verifying that authData.rpIdHash matches the expected RP ID.

Affected code:

Spec references:

PoC

Configuration:

webauthn:
  allowed_origins:
    - https://login.example.com:8443
  allow_subdomains: false

Send a registration or authentication response whose clientDataJSON.origin is:

https://login.example.com:9443

Observed: the response is accepted, because both values are reduced to login.example.com.

Expected: the response should be rejected, because https://login.example.com:8443 and https://login.example.com:9443 are different origins.

Mitigation

Upgrade to web-auth/webauthn-framework (or web-auth/webauthn-lib / web-auth/webauthn-symfony-bundle) >= 5.2.4.

Impact

This is an origin validation error (CWE-346) affecting deployments that use allowed_origins. The most practical browser-facing scenario is same-host / different-port origin confusion. In non-browser or custom clients, scheme confusion may also be relevant.

CVE-2026-30964 has a CVSS score of 5.4 (Medium). The vector is network-reachable, no privileges required, and user interaction required. A CVSS score reflects the worst-case severity of the vulnerability, not your specific exposure. Whether this affects your application depends on whether the vulnerable code is present and reachable in your environment. A fixed version is available (5.2.4); upgrading removes the vulnerable code path.

Affected versions

web-auth/webauthn-framework (>= 5.2.0, < 5.2.4) web-auth/webauthn-lib (>= 5.2.0, < 5.2.4) web-auth/webauthn-symfony-bundle (>= 5.2.0, < 5.2.4)

Security releases

web-auth/webauthn-framework → 5.2.4 (composer) web-auth/webauthn-lib → 5.2.4 (composer) web-auth/webauthn-symfony-bundle → 5.2.4 (composer)

Kodem intelligence

Severity tells you how bad this could be in the worst case. It does not tell you whether you are exposed. Exploitability and impact are functions of runtime truth: whether the vulnerable code is present, reachable, and actually executes in your application. A vulnerable package can sit in your dependency tree and never run.

Kodem, an Intelligent Application Security platform, uses runtime intelligence to reveal which vulnerabilities actually execute in production, so teams prioritize the ones that genuinely matter. Kodem's runtime-powered SCA identifies whether this CVE is reachable in your applications.

See it in your environment

Remediation advice

Fixed in version 5.2.4 by rewriting CheckAllowedOrigins to perform full origin comparison (scheme + host + port) as required by the WebAuthn spec:

  • Origins configured with a scheme (e.g. https://example.com:8443) are now stored and compared as full scheme://host[:port] values, with default port normalization (443 for HTTPS, 80 for HTTP).
  • Origins configured without a scheme are still matched by host only, for backward compatibility.
  • Subdomain matching now also verifies scheme and port consistency.

See commit b4cd9a43.

Frequently Asked Questions

  1. What is CVE-2026-30964? CVE-2026-30964 is a medium-severity security vulnerability in web-auth/webauthn-framework (composer), affecting versions >= 5.2.0, < 5.2.4. It is fixed in 5.2.4.
  2. How severe is CVE-2026-30964? CVE-2026-30964 has a CVSS score of 5.4 (Medium). This score reflects the worst-case severity of the vulnerability, not your specific exposure. Whether it represents real risk in your environment depends on whether the vulnerable code is present and reachable.
  3. Which packages are affected by CVE-2026-30964?
    • web-auth/webauthn-framework (composer) (versions >= 5.2.0, < 5.2.4)
    • web-auth/webauthn-lib (composer) (versions >= 5.2.0, < 5.2.4)
    • web-auth/webauthn-symfony-bundle (composer) (versions >= 5.2.0, < 5.2.4)
  4. Is there a fix for CVE-2026-30964? Yes. CVE-2026-30964 is fixed in 5.2.4. Upgrade to this version or later.
  5. Is CVE-2026-30964 exploitable, and should I be worried? Whether CVE-2026-30964 is exploitable in your environment depends on whether the vulnerable code is present and reachable. A CVSS score is a worst-case rating; it does not account for your specific deployment, configuration, or usage patterns. Kodem, an Intelligent Application Security platform, uses runtime intelligence to show which vulnerabilities actually execute in production, so you can focus on the ones that represent real risk. Get a demo
  6. What actually determines whether CVE-2026-30964 is exploitable, and how bad it is? Exploitability and impact are not fixed properties of a CVE. They depend on runtime truth: whether the vulnerable code is present, reachable, and actually executes in your application. A high CVSS score on a dependency that never runs is not the same as real risk. Kodem, an Intelligent Application Security platform, uses runtime intelligence to reveal which vulnerabilities actually execute in production, so teams prioritize the ones that genuinely matter.
  7. How do I fix CVE-2026-30964?
    • Upgrade web-auth/webauthn-framework to 5.2.4 or later
    • Upgrade web-auth/webauthn-lib to 5.2.4 or later
    • Upgrade web-auth/webauthn-symfony-bundle to 5.2.4 or later

Other vulnerabilities in web-auth/webauthn-framework

CVE-2024-39912CVE-2021-38299

Stop the waste.
Protect your environment with Kodem.