Cross-Site Request Forgery (CSRF) in @fastify/oauth2 is an OAuth (CVE-2026-18165)
Summary
Vulnerability in @fastify/oauth2 is an OAuth (CVE-2026-18165). Risk of unauthorized operations or information disclosure.
Original description
The description as published by the source.
@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.
Source: NIST National Vulnerability Database NVD
Auto-generated summary
Assembled by SecPulse from the source data (CVSS, CWE, affected versions) using templates — no AI involved. Check the original description and references below for exact details.
A vulnerability tracked as CVE-2026-18165 has been found in @fastify/oauth2 is an OAuth.
Risk of unauthorized operations or information disclosure. CVSS score: 4.2/10.
What to do: apply the vendor's official patched release.
If unsure, ask your IT team or search "@fastify/oauth2 is an OAuth CVE-2026-18165" on the vendor's site.
CVE-2026-18165 (@fastify/oauth2 is an OAuth) — CWE-352 / CVSS v3 4.2
Attack vector: remote (network-reachable) / unauthenticated
Plan: 1) Audit SBOM/dependencies, 2) Stage→prod upgrade, 3) Add WAF/proxy monitoring on affected endpoints, 4) Hunt IOCs in logs.
Refs: see the GHSA / vendor advisory / patched release linked on this page.
CSRF (CWE-352) exists in @fastify/oauth2 is an OAuth.
Check the vendor advisory for the affected versions of @fastify/oauth2 is an OAuth.
Severity: Medium (CVSS 4.2/10). Risk of unauthorized operations or information disclosure.
Update to the patched release per vendor advisory.
Until the patch is applied: disable the affected feature, apply WAF rules, or restrict access via network ACLs.
Search webserver/proxy logs for unusual request patterns matching this CVE's known IOCs. Audit SBOM/dependencies to find affected services.
Response actions
Concrete steps and command examples for SOC/SRE teams to execute in order
-
1Identify exposure identify
Audit SBOM/dependencies for affected components.資産台帳・SBOM・依存マニフェストで @fastify/oauth2 is an OAuth を使っているサービスとバージョンを洗い出す。
-
2Post-deployment verification verify
Confirm patched version is live in productionパッチ適用後、ステージングで PoC または同等の悪用パターンを再現して脆弱性が閉じたことを確認。本番ではアクセスログ・WAF でアラート再発が無いか継続監視。
References
- patch cna.openjsf.org
- patch github.com