Sceawere

Vulnerability Detail

CVE-2026-54770UPDATED Verified Sceawere Triage Sources: NVD / CISA KEV

WebOb Open Redirect Vulnerability

Vulnerability Metadata

Severity
Medium
Score / CVSS
6.1
Creation Date
2h ago
Vendor
Pylons
Product
webob
Attack Type
CWE-601: URL Redirection to Untrusted Site ('Open Redirect')
Vector String
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N
Attack Complexity
LOW

Narrative and Response

Description

WebOb provides objects for HTTP requests and responses. Prior to 1.8.11, Response._make_location_absolute() in src/webob/response.py checks a Location value for a URI scheme or leading double slash before urllib.parse.urljoin() strips leading C0 control characters and spaces. An attacker-controlled value such as a space followed by a protocol-relative or absolute URL can therefore bypass SCHEME_RE and startswith("//") checks and be normalized to an off-host redirect. Request.relative_url() and webob.exc._HTTPMove subclasses, including HTTPFound, are also affected because they use the same unsafe URL joining behavior or bypass the earlier normalization path. An unauthenticated attacker who can influence an application's redirect target can send users to an attacker-controlled host for phishing or OAuth and SSO token theft, but exploitation requires the user to follow the redirect. This issue is fixed in version 1.8.11.

Executive Summary

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Executive Summary Locked

Sign up to unlock professional threat analysis, mitigations, and indicator signatures.

Technical Details

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Detailed Technical Analysis Locked

Sign up to unlock professional threat analysis, mitigations, and indicator signatures.

Mitigations

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Remediation & Mitigations Locked

Sign up to unlock professional threat analysis, mitigations, and indicator signatures.

References

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.

Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Intelligence References Locked

Sign up to unlock professional threat analysis, mitigations, and indicator signatures.

Additional Metadata

{
  "score": "6.1",
  "pubDate": "2026-08-20T17:18:18.277Z",
  "pubdate": "2026-08-20T17:18:18.277Z",
  "executiveSummary": "An open redirect vulnerability exists in WebOb prior to version 1.8.11, specifically within the Response._make_location_absolute() function located in src/webob/response.py. Additional affected components include Request.relative_url() and webob.exc._HTTPMove subclasses such as HTTPFound.\nThe vulnerability allows an unauthenticated remote attacker who can influence an application's redirect target to manipulate users into navigating to an attacker-controlled host.\nThe primary security impact includes potential phishing attacks and the theft of OAuth or Single Sign-On (SSO) tokens, as users can be silently redirected to malicious external endpoints.\nSuccessful exploitation requires the victim to follow the generated redirect, meaning user interaction is necessary.\nThe risk is mitigated by updating the WebOb library to version 1.8.11 or later, where the underlying URL parsing and normalization inconsistencies are properly addressed.",
  "technicalDetails": "The root cause of the vulnerability stems from an inconsistency in how URI schemes and leading characters are validated prior to URL normalization.\nPrior to version 1.8.11, the Response._make_location_absolute() function in src/webob/response.py checks a Location header value for the presence of a URI scheme using SCHEME_RE or checks for a leading double slash (startswith(\"//\")) before invoking urllib.parse.urljoin().\nHowever, urllib.parse.urljoin() subsequently strips leading C0 control characters and whitespace from the input.\nAn attacker can leverage this behavior by crafting a malicious input containing a space followed by a protocol-relative or absolute URL. This specially crafted payload successfully bypasses the initial SCHEME_RE and startswith(\"//\") validation checks because the leading space prevents the initial checks from recognizing the restricted patterns.\nOnce passed to urllib.parse.urljoin(), the leading space is stripped, and the URL is normalized into an off-host redirect target.\nRequest.relative_url() and webob.exc._HTTPMove subclasses, including HTTPFound, are also affected because they utilize the same unsafe URL joining behavior or completely bypass the earlier normalization path.\nThe vulnerability is exposed over network interfaces where applications process user-supplied input to construct HTTP redirect responses.\nNo authentication or elevated privileges are required for an attacker to supply the malicious payload, provided they have a mechanism to influence the redirect target parameters within the application.\nThe step-by-step attack flow involves an unauthenticated attacker submitting a specially crafted payload containing leading whitespace followed by an external URL to a vulnerable endpoint. The application processes the input through the vulnerable Response._make_location_absolute() method, where validation checks are evaded. The input is subsequently normalized by urllib.parse.urljoin() into an absolute external URI. The application returns an HTTP redirection response to the user agent pointing to the malicious domain. Upon following the redirect, the user is exposed to phishing or potential OAuth and SSO token theft."
}
CVE-2026-54770: WebOb Open Redirect Vulnerability (MEDIUM Severity, CVSS: 6.1) - Sceawere