Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
ReconCraft URL with //attacker.com return path
-
DeliveryDeliver phishing link to authenticated user
-
ExploitVictim visits legitimate app and completes auth flow
-
InstallRodauth stores unvalidated path in session cookie
-
C2Post-auth redirect issued to //attacker.com
-
ExecuteBrowser resolves protocol-relative URL to attacker site
-
ImpactCredentials or session harvested
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V3 - Web Frontend Security Redirect URL validation
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 that the Rodauth application has enabled at least one of the three affected features: confirm_password, login_return_to_requested_location, or two_factor_auth_return_to_requested_location. The attacker must be able to deliver a crafted URL to a victim user - typically via phishing - where the URL path or query parameter encodes a protocol-relative return destination beginning with //. User interaction is required: the victim must click the link and complete the authentication or password-confirmation flow on the legitimate application. The redirect only occurs post-authentication, so unauthenticated visitors are not subject to the redirect. Non-default configurations that disable all three of the above features are not exploitable. |
| 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 accurately captures the real-world risk profile. AT:P (attack requirements present) acknowledges that the attacker must first direct the victim to a crafted URL on the legitimate application - requiring a social engineering step (phishing email, malicious link). UI:P reflects that the victim must complete the authentication or password-confirmation flow. The SC:H rating reflects that subsequent-system confidentiality (the attacker-controlled site) can be fully compromised through credential harvesting or session phishing, even though the vulnerable application itself suffers no direct confidentiality loss (VC:N). No EPSS score was provided, and the vulnerability is not listed in CISA KEV. No public POC has been identified. While the attack vector is network-accessible and requires no privileges, the AT:P and UI:P constraints meaningfully reduce exploitability compared to a trivially unauthenticated remote code execution. Organizations using any of the three affected features in public-facing applications should treat this as a meaningful but non-emergency risk. |
| Exploit ScenarioDerived | An attacker sends a phishing message containing a legitimate-looking link to the target application with a crafted return-to path - for example, https://app.example.com/login?return_to=//attacker.com/harvest. When the victim clicks the link, completes login or password confirmation, Rodauth reads the stored //attacker.com path from the session cookie and issues a redirect; the browser resolves this as https://attacker.com/harvest, where the attacker may present a credential-harvesting page. No public POC exists at time of analysis, but the attack is trivially constructible from the public advisory and commit diff. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 29, 2026
Open redirect in Rodauth before 2.47.0 enables post-authentication phishing by failing to reject protocol-relative return-to paths beginning with double slashes. The three affected features - confirm_password, login_return_to_requested_location, and two_factor_auth_return_to_requested_location - stored the raw request path into session without validating that it could not resolve as an external URL. No public exploit or active exploitation has been confirmed at time of analysis, and a patch is available in version 2.47.0.
RemediationAI
Upgrade to Rodauth 2.47.0 or later, which introduces the valid_return_to_path? validation method and resolves the vulnerability across all three affected features. The patch commit is available at https://github.com/jeremyevans/rodauth/commit/295044a92e358479afdf84f905dd5efe89c39aea and the full advisory at https://github.com/jeremyevans/rodauth/security/advisories/GHSA-h9m4-vm9w-h43m. If an immediate upgrade is not feasible, a compensating control is to disable the login_return_to_requested_location, confirm_password redirect, and two_factor_auth_return_to_requested_location features in the Rodauth configuration - this eliminates the vulnerable code paths at the cost of requiring users to navigate manually to their intended destination after authentication, degrading user experience. An alternative workaround is to override valid_return_to_path? with a custom implementation that rejects double-slash paths, which requires application-level code changes and carries the risk of incomplete coverage if other return-path code paths exist.
Affected VersionsENISA
Affected Packages
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 library for Rack and Roda applications (CPE: cpe:2.3:a:jeremyevans:rodauth:*:*:*:*:*:*:*:*). The vulnerability is a textbook CWE-601 (URL Redirection to Untrusted Site) arising because the framework stored request.fullpath directly into session cookies without checking for the //hostname pattern. RFC 3986 treats paths beginning with // as scheme-relative (protocol-relative) references, so browsers resolve //attacker.com as https://attacker.com when served from an HTTPS origin. The fix in commit 295044a adds valid_return_to_path? which enforces path[0] == '/' AND path[1] != '/', blocking the double-slash bypass across all three affected features and consolidating the previously per-feature path-size limit into a shared return_to_path_max_size (2048 bytes) configuration method.
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
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
Network-delivered redirect requiring user interaction (UI:R); scope changes to attacker site (S:C); indirect confidentiality risk only, no integrity or availability impact.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
DescriptionCVE.org
Rodauth before 2.47.0 fails to validate protocol-relative return-to paths in confirm_password, login_return_to_requested_location, and two_factor_auth_return_to_requested_location features. Attackers can craft paths with leading double slashes that browsers resolve as protocol-relative URLs, redirecting authenticated users to attacker-controlled sites after login or password confirmation.
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
Authentication bypass in Rodauth (the Ruby authentication framework by Jeremy Evans, jeremyevans:rodauth) before 2.46.0
TOTP code replay in Rodauth before 2.47.0 allows an attacker who has already obtained a victim's credentials and observe
JWT access token indefinite renewal in Rodauth before 2.47.0 allows an attacker who possesses a valid access token to by
CSRF protection bypass in Rodauth before 2.47.0 allows remote attackers to force victims into authenticated sessions und
EUVD-2026-68124
GHSA-mg2m-xp22-59vc
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB