Skip to main content

Rodauth CVE-2026-82470

| EUVDEUVD-2026-68127 MEDIUM
Authentication Bypass by Capture-replay (CWE-294)
2026-08-29 VulnCheck GHSA-frwg-xgr9-44pg
5.1
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

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

  1. Access
    Obtain target credentials via phishing or credential stuffing
  2. Delivery
    Observe victim submit valid TOTP code during login
  3. Exploit
    Replay observed code within drift window
  4. Execution
    Authenticate as victim bypassing second factor
  5. Impact
    Access application resources under victim identity

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Replay attack prevention
Exploitation Conditions

Two prerequisites must be satisfied: the attacker must already possess the target account's username and password (the first authentication factor), and must observe or intercept a valid TOTP code submitted during an active authentication session. The Rodauth otp feature must be enabled in the application configuration. The usable replay window equals the configured otp_drift value on each side of the code's generation timestamp. Remote unauthenticated attackers who do not hold prior credentials cannot exploit this vulnerability; exploitation is further bounded by the narrow time window and the need for real-time code observation.

Impact

The CVSS 4.0 score of 5.1 with PR:H reflects that exploitation demands the attacker already possess the target account password and then observe or intercept a live TOTP code - preconditions that substantially limit opportunistic mass exploitation and make this a targeted-threat concern rather than a commodity risk. No EPSS score was included in the source data, preventing quantitative probability comparison. The CVE is absent from CISA KEV, and no standalone public exploit tool is independently confirmed, though the patch commit's regression test demonstrates the exact attack sequence step by step. Impact is bounded to VC:L and VI:L - account-level access, not system-wide compromise - which aligns with the moderate CVSS score. The practical exploitation window equals the configured otp_drift duration; default or larger drift values extend that window meaningfully. Applications that deploy TOTP specifically to protect high-value accounts should treat this as a priority fix since it directly nullifies the security guarantee of the second factor.

Exploit ScenarioDerived

An attacker who has obtained a victim's username and password via phishing or credential stuffing monitors the victim completing a TOTP login - for example through a transparent TLS interception proxy or by physical observation. Within the configured drift window after the code was first used, the attacker submits the same code to establish a parallel authenticated session. The patch commit's regression test with a 90-second drift window demonstrates this exact sequence successfully against unpatched versions.

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

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

Alert me

AnalysisAIv1 – Aug 29, 2026

TOTP code replay in Rodauth before 2.47.0 allows an attacker who has already obtained a victim's credentials and observed a valid one-time password to reuse that code within the configured drift window, bypassing the second authentication factor. The otp feature lacked any mechanism to record when a code was last accepted, so a single 30-second TOTP token could authenticate multiple distinct sessions during the drift period. No active exploitation is confirmed in CISA KEV, but the patch commit includes a working exploit reproduction in the regression test suite, and the attack mechanic is mechanically straightforward for any adversary who holds prior credential access.

RemediationAI

Upgrade to Rodauth 2.47.0 or later, which incorporates commit 3bfd0a11bae70935b1944e71dbe787dd0c3a62ad adding the :after=>otp_last_use argument to ROTP's verify call. The vendor advisory at https://github.com/jeremyevans/rodauth/security/advisories/GHSA-hhvg-6qmv-58vc confirms the fix version. If immediate upgrade is not feasible, setting otp_drift to zero eliminates the replay window at the cost of rejecting codes from users with significant clock skew; this trades usability for security. Restricting the application to network perimeters that prevent man-in-the-middle observation of TOTP codes reduces attacker opportunity but does not remediate the missing replay prevention. Neither workaround addresses the root cause and both should be treated as temporary.

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 is a Ruby authentication framework for Rack-based applications, implementing RFC 6238 TOTP through the ROTP gem. TOTP tokens are generated per 30-second time steps; a configurable drift window (the regression test uses 90 seconds) accommodates client-server clock skew by accepting codes slightly before or after the current window. CWE-294 (Authentication Bypass by Capture-replay) identifies the root cause: Rodauth called ROTP's verify method without supplying the :after parameter, which instructs ROTP to reject any code whose generation timestamp falls at or before that of the previously accepted token. CPE cpe:2.3:a:jeremyevans:rodauth:*:*:*:*:*:*:*:* covers all versions prior to 2.47.0. Commit 3bfd0a11bae70935b1944e71dbe787dd0c3a62ad adds :after=>otp_last_use to both the drift-aware (verify_with_drift) and standard verify paths, ensuring prior codes are invalidated even while still within their TOTP validity window.

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 5.1 MEDIUM
CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N
vuln.today AI 4.8 MEDIUM

Network vector; AC:H because exploitation requires prior credential possession and real-time observation of a live TOTP code; PR:N as the attacker holds no privileges on the system prior to the attack.

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

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

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

DescriptionCVE.org

Rodauth before 2.47.0 contains a time-based one-time password reuse vulnerability in the otp feature that fails to track the last accepted code timestamp. Attackers who observe a valid TOTP code can replay it during the drift window to bypass the second authentication factor.

Threat Intelligence Overview

EPSS Score
0.2%
Top 86% exploitable
Prevalence
Low
niche Ruby auth library, smaller footprint than Devise
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.2%
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

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

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

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