Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconAttacker initiates own OAuth flow to obtain authorization code
-
DeliveryCraft callback URL with attacker code, omitting state parameter
-
ExploitDeliver crafted URL to victim via phishing or redirect
-
InstallVictim browser follows URL to application callback endpoint
-
C2Absent state matches absent session state - check passes
-
ExecuteApplication redeems attacker code, binds attacker identity to victim session
-
ImpactVictim silently operates in attacker account or attacker gains persistent access to victim account
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V3 - Web Frontend Security Anti-CSRF tokens, SameSite cookies
MITRE ATT&CK
1 technique across 1 tactic: Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Exploitation requires the target application to be using @hono/oauth-providers version 0.8.5 or earlier with at least one of these providers configured: google, github, facebook, discord, twitch, linkedin, or msentra. The x (Twitter) provider is not exploitable due to PKCE binding. The attacker must control a valid authorization code from the target identity provider (obtained by initiating their own legitimate OAuth flow with that provider), and must be able to deliver a crafted URL to the victim. The victim must actively follow the crafted OAuth callback URL - consistent with CVSS UI:R - which requires social engineering (phishing, malicious redirect, or open redirect on the application). No authentication on the target application is required by the attacker (CVSS PR:N). Exploitation is limited by the victim not having a current valid state cookie for that provider, and by the attacker needing an active authorization code (which has a short TTL, typically minutes) at the time the victim clicks the link. |
| Impact | The CVSS 5.4 Medium score with vector AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N accurately reflects the threat model: the attack is network-delivered and requires no privileges on the target application, but depends on social engineering a victim to follow a crafted link (UI:R), which is the primary friction point. EPSS data was not provided, and this vulnerability is not listed in CISA KEV, so exploitation probability must be inferred from the attack's mechanical simplicity - any developer familiar with OAuth CSRF patterns could construct this attack without tooling. The confidentiality and integrity impacts are assessed as low-to-moderate in practical terms: login CSRF silently logs a victim into the attacker's account (leaking victim activity), while forced account linking grants the attacker persistent durable access to the victim's account on the application, which operationally may exceed the C:L/I:L CVSS rating depending on what the application does. No public proof-of-concept code has been identified, which reduces near-term opportunistic risk. The scope is bounded to npm applications explicitly using this package and one of the seven named providers; the x/Twitter provider is unaffected. Teams operating applications with social login that handle sensitive user data should treat this as a priority upgrade rather than a routine patch cycle item. |
| Exploit ScenarioDerived | An attacker authenticates with Google (or another affected provider) to obtain a valid authorization code tied to the attacker's own Google identity, then crafts a redirect to the victim application's OAuth callback URL containing that code but no state parameter. After luring the victim (via phishing email or malicious link) to visit this URL, the victim's browser completes the callback request, the broken state check passes because no state is present on either side, and the application redeems the attacker's authorization code - silently logging the victim into the attacker's account or linking the attacker's Google identity to the victim's existing application account. No public proof-of-concept has been identified, but the technique is a well-documented OAuth CSRF pattern. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 31, 2026
OAuth state validation in @hono/oauth-providers prior to 0.8.6 fails open when the state parameter is absent from both the callback request and the stored session, treating two null values as a matching pair and bypassing CSRF protection entirely. This affects the google, github, facebook, discord, twitch, linkedin, and msentra social login providers in any Hono application using this middleware at version 0.8.5 or earlier. An attacker who tricks a victim into visiting a crafted OAuth callback URL can silently bind the attacker's third-party identity to the victim's session (login CSRF) or permanently link the attacker's account to the victim's account (forced account linking), enabling later sign-in as the victim. No public exploit has been identified at time of analysis.
RemediationAI
Upgrade @hono/oauth-providers to version 0.8.6 or later, which enforces a fail-closed policy: a callback that omits the state parameter is rejected with HTTP 401 regardless of session state. The patched release is available at https://github.com/honojs/middleware/releases/tag/%40hono%2Foauth-providers%400.8.6 and the underlying fix is in commit b37765f40b7bddb1d8fce39573b085222dea58c1 via PR https://github.com/honojs/middleware/pull/2040. For teams unable to upgrade immediately, a targeted compensating control is to add an explicit middleware step on the OAuth callback route that returns 400 or 401 if the state query parameter is absent, before the @hono/oauth-providers handler is invoked - this replicates the fail-closed logic without modifying the package. Note that enabling Hono's built-in csrf() middleware does NOT mitigate this issue, as it does not inspect GET-based OAuth callbacks. Temporary disabling of social login providers that are non-essential (particularly the msentra provider if not business-critical) is an option with the trade-off of user-facing login disruption.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 packages in npm, euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
Hono is a lightweight TypeScript/JavaScript web framework targeting edge runtimes (Cloudflare Workers, Deno, Bun, Node.js). The @hono/oauth-providers middleware (CPE: cpe:2.3:a:honojs:@hono/oauth-providers:*:*:*:*:*:*:*:*) wraps multiple social identity providers behind a unified OAuth 2.0 callback handler. The OAuth 2.0 state parameter functions as a CSRF token: the client generates a nonce, stores it in the session (here a cookie), sends it to the authorization server, and the server echoes it back in the callback. The middleware must verify that the returned state matches the stored value before redeeming the authorization code. The defect (CWE-352, Cross-Site Request Forgery) is that the equality check treated both sides being absent as a valid match - effectively undefined === undefined passes - so a callback that omits state entirely, for which no state was ever stored, succeeds the check. Hono's built-in csrf() middleware does not cover this attack surface because it only inspects form-submission requests, not top-level GET navigations like OAuth callbacks. The x (Twitter) provider is exempt because it uses PKCE (Proof Key for Code Exchange), which provides an independent cryptographic binding that the state mechanism is not solely relied upon for.
Know when Hono Oauth Providers gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N
Network-delivered, no attacker privileges needed, but victim must follow crafted link (UI:R); no availability impact; confidentiality and integrity both limited to session/account binding.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
1DescriptionCVE.org
@hono/oauth-providers is Authentication middleware for Hono. Prior to version 0.8.6, the built-in social login providers accept an OAuth callback even when the state value is absent on both sides, so the anti-CSRF check passes for a callback that never came from a genuine login attempt. This defeats the state-based CSRF protection under default usage. Version 0.8.6 has a patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Cross-Site Request Forgery exploits the automatic credential inclusion behavior of web browsers.
EUVD-2026-68770
GHSA-fm3f-ch8h-qw8q
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB