Description
@fastify/oauth2 is an OAuth 2.0 plugin for Fastify. In versions from 7.2.0 up to but not including 8.3.0, the plugin validates the OAuth state, and with PKCE the code verifier, by comparing the callback query parameter against an unprefixed, predictable cookie, with no server-side binding to the browser that began the flow. Any party able to write a cookie for the application's host, such as a sibling subdomain under the same registrable domain, can plant matching state and verifier cookies and complete an attacker-owned OAuth flow inside a victim's browser, silently signing the victim in to the attacker's account (login CSRF). It does not expose the victim's own account, credentials, or tokens. The issue is fixed in @fastify/oauth2 8.3.0, which adds an opt-in hostPrefixedCookies option. Users should upgrade to 8.3.0 and enable it, or bind state to a server-side session.
Published: 2026-08-15
Score: 4.2 Medium
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability arises because the previously released @fastify/oauth2 plugin validates the OAuth "state" parameter against a simple, unprefixed cookie that is predictable and has no server‑side association with the initiating browser. An attacker who can set a cookie for the application’s domain—such as through a sibling subdomain—can therefore plant matching state and PKCE code verifier values and complete the OAuth flow in the victim’s browser. The attacker’s account becomes authenticated as the victim, resulting in login‑CSRF; the attack does not expose the victim’s own credentials or tokens.

Affected Systems

The affected component is the @fastify/oauth2 OAuth 2.0 plugin for the Fastify web framework. Versions from 7.2.0 up to, but not including, 8.3.0 contain the flaw. All deployments using any of those versions are susceptible until the plugin is updated to 8.3.0 or later.

Risk and Exploitability

The CVSS score of 4.2 indicates a moderate impact. EPSS data is not published, so the exploitation likelihood cannot be quantified, and the vulnerability is not listed in the CISA KEV catalog. The likely attack vector requires the attacker to be able to write a cookie for the application’s host, typically via a malicious sibling subdomain under the same registrable domain; no direct remote code execution or privilege escalation is possible. The risk is primarily to authentication integrity rather than data confidentiality or availability.

Generated by OpenCVE AI on August 15, 2026 at 15:13 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Upgrade to @fastify/oauth2 v8.3.0 or newer and enable the hostPrefixedCookies option to bind the OAuth state cookie to the host domain.
  • If immediate upgrade is infeasible, configure the plugin to bind state to a server‑side session store or otherwise prevent unequally prefixed state cookies.
  • Apply same‑site cookie attributes and secure cookie flags to reduce the chance that a sibling subdomain can set or read the OAuth state cookie.

Generated by OpenCVE AI on August 15, 2026 at 15:13 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 15 Aug 2026 14:00:00 +0000

Type Values Removed Values Added
Description @fastify/oauth2 is an OAuth 2.0 plugin for Fastify. In versions from 7.2.0 up to but not including 8.3.0, the plugin validates the OAuth state, and with PKCE the code verifier, by comparing the callback query parameter against an unprefixed, predictable cookie, with no server-side binding to the browser that began the flow. Any party able to write a cookie for the application's host, such as a sibling subdomain under the same registrable domain, can plant matching state and verifier cookies and complete an attacker-owned OAuth flow inside a victim's browser, silently signing the victim in to the attacker's account (login CSRF). It does not expose the victim's own account, credentials, or tokens. The issue is fixed in @fastify/oauth2 8.3.0, which adds an opt-in hostPrefixedCookies option. Users should upgrade to 8.3.0 and enable it, or bind state to a server-side session.
Title @fastify/oauth2 vulnerable to Login CSRF via plantable OAuth state cookies
Weaknesses CWE-352
References
Metrics cvssV3_1

{'score': 4.2, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:L/I:L/A:N'}


Subscriptions

No data.

cve-icon MITRE

Status: PUBLISHED

Assigner: openjs

Published:

Updated: 2026-08-15T13:45:51.666Z

Reserved: 2026-07-28T20:21:36.198Z

Link: CVE-2026-18165

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-15T14:17:07.290

Modified: 2026-08-15T14:17:07.290

Link: CVE-2026-18165

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-15T15:15:03Z

Weaknesses
  • CWE-352

    Cross-Site Request Forgery (CSRF)