Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessCraft malicious login URL with Next bypass param
-
DeliveryDistribute link via competition channels to targets
-
ExploitVictim clicks link and authenticates to CTFd
-
ExecutionValidator bypassed, victim silently redirected to attacker site
-
ImpactAttacker harvests credentials or delivers phishing content
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 | The attacker must be able to deliver a crafted CTFd login URL to a target user - typical delivery vectors include competition Discord servers, email invitations, or public event announcements. The victim must actively click the attacker-supplied URL and complete the CTFd login flow, at which point the bypass redirect fires. No authentication by the attacker is required (PR:N in CVSS 4.0). No non-default configuration is necessary: any CTFd instance with a publicly accessible login page running an affected version is exposed. Exploitation is bounded by the victim-interaction requirement (UI:P): the victim must click the link. This prevents fully automated or unaided exploitation. The attack surface is widened by the open-registration nature of public CTF events, where distributing malicious links to a large pool of participants is straightforward. |
| Impact | The provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:P/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:P) characterizes this as low-complexity, network-accessible, requiring no attacker privileges, but dependent on passive user interaction (victim must click a crafted link). No confidentiality or availability impact is modeled; only a limited integrity effect on the vulnerable system is scored. The exploit-maturity tag E:P confirms a public PoC is available, elevating realistic exploitation probability beyond the base score. No EPSS probability score is present in available data so quantitative exploitation likelihood cannot be stated. No CISA KEV listing exists, meaning confirmed active exploitation is not established. The practical threat is phishing: CTFd deployments that accept public registrations or have public-facing login pages are directly exposed - no special configuration is required. However, the CHANGELOG's mention of a potential JavaScript execution path suggests the effective severity could be higher than a pure open-redirect CVSS score implies, particularly if the XSS-adjacent issue shares this code path. Overall this is a moderate priority for operators of public-facing CTF competitions, elevated from routine open-redirect status by the public PoC and potential JS execution risk. |
| Exploit ScenarioDerived | An attacker crafts a CTFd login URL with a bypass value in the 'Next' parameter (e.g., appending '?next=//attacker.com' or an equivalent double-slash or protocol-relative variant that evades the _is_safe_url check) and distributes it to competition participants via Discord, email, or CTF announcement channels. The victim clicks the link, completes authentication against the legitimate CTFd instance, and is silently redirected to an attacker-controlled phishing page that mimics the competition interface to harvest credentials or session tokens. A public writeup detailing the bypass technique is available at https://mblunt.dev/writeups/ctfd-open-redirect/. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Aug 23, 2026
Open redirect via safe-URL validator bypass in CTFd versions 3.8.0 through 3.8.3 allows remote unauthenticated attackers to craft login URLs that redirect victims to attacker-controlled sites, enabling phishing of competition participants. The vulnerability lies in the _is_safe_url() function within CTFd/utils/validators/__init__.py, which fails to correctly reject malformed or protocol-relative values supplied via the 'Next' query parameter. The vendor CHANGELOG for the patched release (3.8.4) further notes that attacker-controlled links could serve as a vector for arbitrary JavaScript execution if clicked, suggesting the integrity impact may exceed the open-redirect framing; a public exploit writeup exists and no active KEV listing is present at time of analysis.
RemediationAI
Upgrade CTFd to version 3.8.4, which contains the fix for the _is_safe_url validator bypass (commit 5d8515842fd1ab2c3a9f2dde9ffca907aa334ea9, PR #3026 at https://github.com/CTFd/CTFd/pull/3026, release at https://github.com/CTFd/CTFd/releases/tag/3.8.4). For operators unable to upgrade immediately, restricting the CTFd login endpoint to known-trusted IP ranges or placing it behind a VPN will prevent external attackers from distributing effective phishing links - this trade-off limits public competition accessibility and may not be viable for open events. Educating participants to inspect URLs before clicking login links provides a soft control but is unreliable against social engineering. No configuration-level toggle to disable the Next parameter handling is identified in the available references, so upgrade is the only complete remediation.
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
CTFd is an open-source Python-based platform for hosting Capture The Flag competitions. The vulnerable code path is the _is_safe_url() function in CTFd/utils/validators/__init__.py, which is responsible for vetting the 'Next' redirect parameter used after authentication flows (e.g., post-login redirects). CWE-601 (URL Redirection to Untrusted Site) applies: the validator can be bypassed with specially crafted URL values - such as protocol-relative or double-slash-prefixed URLs - that pass the safety check but resolve to external destinations in the browser. The CPE identifier cpe:2.3:a:n/a:ctfd:*:*:*:*:*:*:*:* covers all CTFd application versions. The vendor's 3.8.4 CHANGELOG entry (released 2026-04-20) discloses two related fixes: the URL validator bypass enabling phishing, and a separate issue where partially attacker-controlled links served to other users could result in arbitrary JavaScript execution if clicked - this second vector is not explicitly modeled in the provided CVSS vector.
Know when Ctfd 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:N/PR:N/UI:P/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:P
Network-delivered open redirect requiring victim click to trigger; attacker needs no privileges; integrity-only impact, no confidentiality or availability effect.
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
Lifecycle Timeline
3DescriptionCVE.org
A vulnerability has been found in CTFd up to 3.8.4. The affected element is the function _is_safe_url of the file CTFd/utils/validators/__init__.py. Such manipulation of the argument Next leads to open redirect. The attack can be launched remotely. The exploit has been disclosed to the public and may be used. The name of the patch is 5d8515842fd1ab2c3a9f2dde9ffca907aa334ea9. Upgrading the affected component is recommended.
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
In RedpwnCTF before version 2.3, there is a session fixation vulnerability in exploitable through the `#token=$ssid` has
Incorrect username validation in the registration process of CTFd v2.0.0 - v2.2.2 allows an attacker to take over an arb
Unauthenticated information disclosure in CTFd's /api/v1/teams list endpoint exposes non-public team custom registration
EUVD-2026-64670
GHSA-9x8r-fvqr-38vh
NVD
CVE.org
EPSS
Vulnrichment
VulDB
Exploit-DB