Skip to main content

@hono/oauth-providers CVE-2026-81888

| EUVDEUVD-2026-68770 MEDIUM
Cross-Site Request Forgery (CSRF) (CWE-352)
2026-08-31 GitHub_M GHSA-fm3f-ch8h-qw8q
5.4
CVSS 3.1 · Vendor: GitHub_M
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Recon
    Attacker initiates own OAuth flow to obtain authorization code
  2. Delivery
    Craft callback URL with attacker code, omitting state parameter
  3. Exploit
    Deliver crafted URL to victim via phishing or redirect
  4. Install
    Victim browser follows URL to application callback endpoint
  5. C2
    Absent state matches absent session state - check passes
  6. Execute
    Application redeems attacker code, binds attacker identity to victim session
  7. Impact
    Victim 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.

This Month Plan within 30 days. Why: MEDIUM severity (CVSS 4.0-6.9).
Patch available 0.1% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

@hono/oauth-providers < 0.8.6

Affected Packages

npm @hono/oauth-providers fix: 0.8.6
euvd hono_oauth_providers fix: 0.8.6

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

Vendor (GitHub_M) PRIMARY 5.4 MEDIUM
AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N
vuln.today AI 5.4 MEDIUM

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.

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:A/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (GitHub_M).

CVSS VectorVendor: GitHub_M

Attack Vector
Network
Attack Complexity
Low
Privileges Required
None
User Interaction
Required
Scope
Unchanged
Confidentiality
Low
Integrity
Low
Availability
None

Lifecycle Timeline

1
Patch available
Aug 31, 2026 - 22:18 EUVD

DescriptionCVE.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

EPSS Score
0.1%
Top 96% exploitable
Prevalence
Low
niche middleware addon for Hono, a growing but minority-share framework
Threat Intel
1
1 sources
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA GitHub

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.

SignalValue
Severity MEDIUM
CISA KEV No
Public POC No
EPSS 0.1%
Patch available Yes
Active threat No
Deciding rule
MEDIUM severity (CVSS 4.0-6.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact· derived
Medium
Technical Impact
Partial

Priority Score

27
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +27
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Cross-Site Request Forgery exploits the automatic credential inclusion behavior of web browsers.

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy