Skip to main content

Rodauth CVE-2026-82468

| EUVDEUVD-2026-68125 MEDIUM
Cross-Site Request Forgery (CSRF) (CWE-352)
2026-08-29 VulnCheck GHSA-8928-x2p4-43mr
4.9
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Attacker prepares malicious cross-origin page with crafted form
  2. Delivery
    Victim visits attacker-controlled page
  3. Exploit
    Browser submits cross-origin POST with manipulated Content-Type containing 'application/json' substring
  4. Execution
    Unanchored regex matches substring, Rodauth skips CSRF token validation
  5. Persist
    Victim authenticated to attacker-controlled account
  6. Impact
    Attacker monitors victim session actions

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

The target application must have Rodauth's JSON feature explicitly enabled in its Rodauth configuration block (i.e., :json included in the enable list). The victim must visit a page controlled by the attacker that initiates a cross-origin form submission - satisfying the UI:P (passive user interaction) requirement. The attack is limited to browsers that permit cross-origin form POSTs with non-simple content types, which is standard browser behavior. No authentication or account on the target application is required by the attacker. Applications that do not enable the Rodauth JSON feature, or that apply additional CSRF enforcement at the Rack or framework layer independently of Rodauth, are not exploitable via this path.

Impact

The CVSS 4.0 score of 4.9 with vector AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:N/VA:N/SC:H/SI:N/SA:N is broadly consistent with the vulnerability's mechanics. The SC:H (subsequent-system confidentiality high) captures the most significant real-world impact: a login CSRF attack lets an attacker observe everything the victim does while authenticated to the attacker's controlled account, potentially exposing sensitive data entered by the victim. The UI:P and AT:P constraints are meaningful risk limiters - exploitation requires the victim to visit a malicious page and actively initiate a browser action, reducing automatable, opportunistic exploitation. No CISA KEV listing and no EPSS data are available, and no public exploit tooling has been identified, so the current threat posture is best characterized as theoretical-but-straightforward. The attack is not complex once the malicious page is constructed, and the absence of any privilege requirement (PR:N) means any unauthenticated user capable of social-engineering a victim has a viable path. Applications using Rodauth's JSON feature that handle sensitive user data should treat this as a meaningful priority despite the moderate score, since the impact to an individual victim can be severe even if mass exploitation is unlikely.

Exploit ScenarioDerived

An attacker constructs a malicious web page that auto-submits an HTML form POST to the target application's Rodauth login endpoint, setting the form's content type to 'application/x-www-form-urlencoded; application/json' via JavaScript or a crafted enctype attribute. The victim's browser submits the form cross-origin, and Rodauth's unanchored regex matches the 'application/json' substring in the content type, bypassing CSRF token validation and logging the victim into an attacker-controlled account. The attacker can then observe sensitive data entered by the victim while they believe they are operating under their own session.

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 29, 2026

CSRF protection bypass in Rodauth before 2.47.0 allows remote attackers to force victims into authenticated sessions under attacker-controlled accounts by exploiting an unanchored regular expression in the JSON feature. The JSON content type detection regex used a word-boundary anchor instead of a start-of-string anchor, enabling cross-origin form submissions with content types such as 'application/x-www-form-urlencoded; application/json' to be misclassified as JSON requests, which Rodauth treats as CSRF-exempt. No active exploitation has been confirmed in CISA KEV, and no public exploit tooling has been identified at time of analysis.

RemediationAI

Upgrade to Rodauth 2.47.0 or later, which anchors the JSON content type detection regex with \A to prevent substring matching attacks; the patching commit is at https://github.com/jeremyevans/rodauth/commit/3e0d7ab2d49a5733d1afcaaf1062b8a8258aa57a and the advisory is at https://github.com/jeremyevans/rodauth/security/advisories/GHSA-hh2f-xw94-5p79. As an immediate workaround prior to upgrading, operators can override the json_request_content_type_regexp configuration value in their Rodauth block to use the fixed pattern /\Aapplication\/(?:vnd\.api\+)?json\b/i, which corrects the matching behavior without requiring a gem upgrade and has no functional side effects on well-formed JSON API clients.

Affected VersionsENISA

rodauth 0 <2.47.0

Affected Packages

euvd rodauth fix: 2.47.0

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

Rodauth (CPE: cpe:2.3:a:jeremyevans:rodauth:*:*:*:*:*:*:*:*) is a Ruby authentication framework that offers a JSON feature allowing API-style authentication without CSRF tokens, since JSON API requests are typically protected by CORS policy rather than CSRF tokens. To determine whether an incoming request is a JSON request (and therefore exempt from CSRF validation), the framework matches the Content-Type header against the regex \bapplication\/(?:vnd\.api\+)?json\b. The \b word-boundary anchor at the start of the pattern matches the substring 'application/json' anywhere in the header value, including within compound content types like 'application/x-www-form-urlencoded; application/json'. A browser can submit a cross-origin HTML form with such a content type, bypassing the Same-Origin Policy restriction that would normally prevent JavaScript from setting arbitrary Content-Type headers. Rodauth 2.47.0 fixes this by anchoring the regex with \A (Ruby's start-of-string anchor), requiring the content type to begin with 'application/json'. The root cause class is CWE-352 (Cross-Site Request Forgery).

Know when Rodauth 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 (VulnCheck) PRIMARY 4.9 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:N/VI:N/VA:N/SC:H/SI:N/SA:N
vuln.today AI 6.1 MEDIUM

User interaction required to visit attacker page (UI:R); scope changes as victim's session on target application is affected (S:C); limited confidentiality and integrity impact from forced login to wrong account.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
Present
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
None
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
High
Subsequent system: Integrity
None
Subsequent system: Availability
None

DescriptionCVE.org

Rodauth before 2.47.0 contains a cross-site request forgery protection bypass vulnerability in the JSON request content type validation. Attackers can craft cross-origin form posts with content types containing application/json substrings to bypass CSRF token validation and force victims to authenticate to attacker-controlled accounts.

Threat Intelligence Overview

EPSS Score
0.1%
Top 98% exploitable
Prevalence
Low
niche Ruby authentication library, limited enterprise adoption
Data Quality
7 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GitHub VulDB

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

24
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +24
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