CWE-601: URL Redirection to Untrusted Site

What is CWE-601?

CWE-601 is URL Redirection to Untrusted Site. The flaw arises when a web application accepts user-controlled input specifying an external link and uses that link in a redirect. The database currently holds 331 vulnerabilities mapped to CWE-601 and none of them are in the CISA Known Exploited Vulnerabilities catalog.

OWASP TOP 10:2025 RANK1 — A01:2025 — Broken Access Control
Related CVES (365 days)331
AbstractionBase
Likelihood of exploitLow

Vulnerabilities mapped to CWE-601

331 vulnerabilities324% increase year over year

No data

No vulnerability data in CISA KEV for CWE-601

Official definition

ByMitre CWE

The web application accepts a user-controlled input that specifies a link to an external site, and uses that link in a redirect. (Roles: Common-Name, Common-Name, Attack-Focused)

Phishing is a general term for deceptive attempts to coerce private information from users that will be used for identity theft.

Detailed description

The weakness occurs when an application places user-controlled data into a redirect destination without tightly restricting the permitted URL or domain. An attacker can alter the redirect value so that a link originating from a trusted application leads to an attacker-controlled page. That page may imitate a trusted site to collect credentials, or may expose the user to malware and an automatic download. The same risk applies to indirectly obtained input, not only to visibly supplied URL parameters.

Characteristics

The defining characteristic is a redirect whose destination is influenced by untrusted user input and is not constrained to approved destinations. Because the redirect starts from a trusted application, the resulting link can appear more credible than a directly supplied malicious link. The weakness commonly reflects an omitted architecture or design security tactic, or incorrect assumptions that sources such as cookies and hidden form fields cannot be modified. It is not specific to a programming language.

Common consequences

This weakness can undermine access-control protections by sending users to untrusted pages that host malware or trigger an automatic download. Malware may compromise the user's system or steal credentials, personally identifiable information, and other data through activities such as keylogging. Attackers can also use the trusted-looking redirect to conduct phishing, collect credentials, and then use those credentials against the legitimate site. The affected security scopes include access control, confidentiality, and other security properties; impacts include bypassing protection mechanisms and gaining privileges or assuming an identity.

ImpactScopeExplanation
Bypass Protection Mechanism, Gain Privileges or Assume IdentityAccess ControlThe user may be redirected to an untrusted page that contains malware which may then compromise the user's system. In some cases, an open redirect can also enable the immediate download of a file without the user's permission, because the redirection to an external site may lead to endpoints on those sites that automatically trigger a download action ("drive-by download" [REF-1478]). This will expose the user to extensive risk. The user's interaction with the web server may also be compromised if the malware conducts keylogging or other attacks that steal credentials, personally identifiable information (PII), or other important data.
Bypass Protection Mechanism, Gain Privileges or Assume Identity, OtherAccess Control, Confidentiality, OtherBy modifying the URL value to a malicious site, an attacker may successfully launch a phishing scam. The user may be subjected to phishing attacks by being redirected to an untrusted page. The phishing attack may point to an attacker controlled web page that appears to be a trusted web site. The phishers may then steal the user's credentials and then use these credentials to access the legitimate web site. Because the server name in the modified link is identical to the original site, phishing attempts can appear more trustworthy.

Risk mitigations

Validate redirects against an allowlist. Treat every input as potentially malicious and use accept-known-good validation covering the expected type, length, syntax, complete value range, missing or extra data, consistency, and business rules. Approve only specifically allowed URLs or domains, rather than relying exclusively on a denylist.

Replace user-supplied URLs with fixed mappings. When the permitted destinations are limited or known, accept fixed identifiers and map them to the corresponding URLs, rejecting all other values.

Use an intermediate warning page. Clearly warn users that they are leaving the current site, require an explicit click, or apply a long delay before redirecting. Avoid introducing cross-site scripting when generating that page.

Require an unpredictable application nonce. Require every externally supplied redirect request to include a unique nonce generated by the application, and ensure that the nonce is not predictable. This measure can be bypassed through cross-site scripting.

Reduce the attack surface. Identify every possible source of untrusted data, including parameters, cookies, hidden fields, network data, environment variables, reverse DNS results, query results, request headers, URL components, files, databases, email, APIs, and external systems. Do not assume that cookies or hidden fields cannot be modified.

Use an application firewall as defense in depth. This can provide emergency protection when the code cannot immediately be fixed, but it may miss input vectors, be bypassed by malformed inputs, or reject or alter legitimate requests. Customization may also be necessary.

  1. Input Validation · ImplementationAssume all input is malicious. Use an "accept known good" input validation strategy, i.e., use a list of acceptable inputs that strictly conform to specifications. Reject any input that does not strictly conform to specifications, or transform it into something that does. When performing input validation, consider all potentially relevant properties, including length, type of input, the full range of acceptable values, missing or extra inputs, syntax, consistency across related fields, and conformance to business rules. As an example of business rule logic, "boat" may be syntactically valid because it only contains alphanumeric characters, but it is not valid if the input is only expected to contain colors such as "red" or "blue." Do not rely exclusively on looking for malicious or malformed inputs. This is likely to miss at least one undesirable input, especially if the code's environment changes. This can give attackers enough room to bypass the intended validation. However, denylists can be useful for detecting potential attacks or determining which inputs are so malformed that they should be rejected outright. Use a list of approved URLs or domains to be used for redirection.
  2. Architecture and DesignUse an intermediate disclaimer page that provides the user with a clear warning that they are leaving the current site. Implement a long timeout before the redirect occurs, or force the user to click on the link. Be careful to avoid XSS problems (CWE-79) when generating the disclaimer page.
  3. Enforcement by Conversion · Architecture and DesignWhen the set of acceptable objects, such as filenames or URLs, is limited or known, create a mapping from a set of fixed input values (such as numeric IDs) to the actual filenames or URLs, and reject all other inputs. For example, ID 1 could map to "/login.asp" and ID 2 could map to "http://www.example.com/". Features such as the ESAPI AccessReferenceMap [REF-45] provide this capability.
  4. Architecture and DesignEnsure that no externally-supplied requests are honored by requiring that all redirect requests include a unique nonce generated by the application [REF-483]. Be sure that the nonce is not predictable (CWE-330).Note that this can be bypassed using XSS (CWE-79).
  5. Attack Surface Reduction · Architecture and Design, ImplementationUnderstand all the potential areas where untrusted inputs can enter your software: parameters or arguments, cookies, anything read from the network, environment variables, reverse DNS lookups, query results, request headers, URL components, e-mail, files, filenames, databases, and any external systems that provide data to the application. Remember that such inputs may be obtained indirectly through API calls. Many open redirect problems occur because the programmer assumed that certain inputs could not be modified, such as cookies and hidden form fields.
  6. Firewall · Operation · Effectiveness: ModerateUse an application firewall that can detect attacks against this weakness. It can be beneficial in cases in which the code cannot be fixed (because it is controlled by a third party), as an emergency prevention measure while more comprehensive software assurance measures are applied, or to provide defense in depth [REF-1481].An application firewall might not cover all possible input vectors. In addition, attack techniques might be available to bypass the protection mechanism, such as using malformed inputs that can still be processed by the component that receives those inputs. Depending on functionality, an application firewall might inadvertently reject or modify legitimate requests. Finally, some manual effort may be required for customization.

Detection methods

Several detection approaches are applicable. Manual static analysis and source-code review can provide good coverage and reduce false positives when potentially vulnerable redirect operations can be assessed within the available time. Automated static analysis, including source, binary, and bytecode analysis, can model data and control flow to find paths from input sources to redirect sinks, but tools may have difficulty determining whether input controls the beginning of a URL. Automated dynamic analysis can submit URLs through inputs and look for changes to the Location header, but coverage affects results and custom redirects may be missed. Web application, web services, and database scanners, fuzz testers, and framework-based fuzzers can supplement these checks. Architecture and design review, including formal methods, correct-by-construction approaches, and IEEE 1028 inspection, can also be used, with coverage depending on the review method.

MethodApproachEffectiveness
Manual Static AnalysisSince this weakness does not typically appear frequently within a single software package, manual white box techniques may be able to provide sufficient code coverage and reduction of false positives if all potentially-vulnerable operations can be assessed within limited time constraints.High
Automated Dynamic AnalysisAutomated black box tools that supply URLs to every input may be able to spot Location header modifications, but test case coverage is a factor, and custom redirects may not be detected.-
Automated Static AnalysisAutomated static analysis tools may not be able to determine whether input influences the beginning of a URL, which is important for reducing false positives.-
Automated Static AnalysisAutomated static analysis, commonly referred to as Static Application Security Testing (SAST), can find some instances of this weakness by analyzing source code (or binary/compiled code) without having to execute it. Typically, this is done by building a model of data flow and control flow, then searching for potentially-vulnerable patterns that connect "sources" (origins of input) with "sinks" (destinations where the data interacts with external components, a lower layer such as the OS, etc.)High
Automated Static Analysis - Binary or BytecodeAccording to SOAR [REF-1479], the following detection techniques may be useful: ``` Highly cost effective: ``` Bytecode Weakness Analysis - including disassembler + source code weakness analysis Binary Weakness Analysis - including disassembler + source code weakness analysisHigh
Dynamic Analysis with Automated Results InterpretationAccording to SOAR [REF-1479], the following detection techniques may be useful: ``` Highly cost effective: ``` Web Application Scanner Web Services Scanner Database ScannersHigh
Dynamic Analysis with Manual Results InterpretationAccording to SOAR [REF-1479], the following detection techniques may be useful: ``` Highly cost effective: ``` Fuzz Tester Framework-based FuzzerHigh
Manual Static Analysis - Source CodeAccording to SOAR [REF-1479], the following detection techniques may be useful: ``` Highly cost effective: ``` Manual Source Code Review (not inspections)High
Automated Static Analysis - Source CodeAccording to SOAR [REF-1479], the following detection techniques may be useful: ``` Highly cost effective: ``` Source code Weakness Analyzer Context-configured Source Code Weakness AnalyzerHigh
Architecture or Design ReviewAccording to SOAR [REF-1479], the following detection techniques may be useful: ``` Highly cost effective: ``` Formal Methods / Correct-By-Construction ``` Cost effective for partial coverage: ``` Inspection (IEEE 1028 standard) (can apply to requirements, design, source code, etc.)High

Representative vulnerabilities

The official record lists the following representative examples, not an exhaustive set:

  • CVE-2005-4206: A URL parameter loads a URL into a frame, making it appear to be part of a valid page.
  • CVE-2008-2951: A search script permits remote attackers to redirect users to arbitrary sites and conduct phishing through a URL supplied as a parameter.
  • CVE-2008-2052: A URL in the relevant parameter permits remote attackers to redirect users to arbitrary sites and conduct phishing attacks.
  • CVE-2020-11053: A Go-based OAuth2 reverse proxy can send an authenticated user to another site after authentication; an HTML-encoded whitespace character in the redirect URL can bypass validation and enable redirection to a malicious site.
Sources (2)

CWE™ Program, operated by The MITRE Corporation. Copyright © 2006–2026, The MITRE Corporation. The MITRE Corporation hereby grants you a non-exclusive, royalty-free license to use CWE for research, development, and commercial purposes. CWE Terms of Use.

Learn more

Run an in-depth assessment with complete web risk management

CyStack VulnScan continuously discovers assets, validates vulnerabilities, and helps security teams prioritize remediation across the organization.