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: < 1% Very Low
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

Fri, 04 Sep 2026 13:30:00 +0000

Type Values Removed Values Added
First Time appeared Fastify fastify\/oauth2
CPEs cpe:2.3:a:fastify:fastify\/oauth2:*:*:*:*:*:node.js:*:*
Vendors & Products Fastify fastify\/oauth2

Mon, 17 Aug 2026 20:30:00 +0000

Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}


Mon, 17 Aug 2026 11:30:00 +0000

Type Values Removed Values Added
First Time appeared Fastify
Fastify oauth2
Vendors & Products Fastify
Fastify oauth2

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

Fastify Fastify\/oauth2 Oauth2
cve-icon MITRE

Status: PUBLISHED

Assigner: openjs

Published:

Updated: 2026-08-17T19:41:55.649Z

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

Link: CVE-2026-18165

cve-icon Vulnrichment

Updated: 2026-08-17T19:41:49.769Z

cve-icon NVD

Status : Analyzed

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

Modified: 2026-09-04T13:16:43.460

Link: CVE-2026-18165

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-17T10:59:23Z

Weaknesses
  • CWE-352

    Cross-Site Request Forgery (CSRF)