Fix for CWE-601: URL Redirection to Untrusted Site ('Open Redirect')#6
Open
Fix for CWE-601: URL Redirection to Untrusted Site ('Open Redirect')#6
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Corgea is an AI security engineer that fixes vulnerable code.
It issued this PR to fix a vulnerability for you to review.
See the issue and fix in Corgea.
Explanation of the issue
CWE-601: URL Redirection to Untrusted Site ('Open Redirect')
A web application accepts a user-controlled input that specifies a link to an external site, and uses that link in a Redirect. This simplifies phishing attacks.
An http parameter may contain a URL value and could cause the web application to redirect the request to the specified URL. By modifying the URL value to a malicious site, an attacker may successfully launch a phishing scam and steal user credentials. Because the server name in the modified link is identical to the original site, phishing attempts have a more trustworthy appearance. Whether this issue poses a vulnerability will be subject to the intended behavior of the application. For example, a search engine might intentionally provide redirects to arbitrary URLs.
Explanation of the fix
The fix involves using Django's
is_safe_urlfunction to validate the URL before redirecting, thus preventing open redirects to untrusted sites.is_safe_urlfunction from Django's http utilities is imported at the start of the file.is_safe_urlfunction. This function checks if the URL is a safe redirect target.is_safe_urlfunction takes two parameters: the URL to check and a set of allowed hosts. In this case, the allowed host is the host of the current request.ValidationErroris raised with the message "Unsafe redirect detected." This prevents the application from redirecting to potentially malicious sites.