{"id":"CVE-2026-44889","published":"2026-06-22T21:30:11Z","modified":"2026-06-23T15:05:27Z","title":"WebOb: Location header normalization during redirect leads to open redirect","vendor":"Pylons","product":"webob","tier":"tail","description":{"text":"WebOb provides objects for HTTP requests and responses. Prior to 1.8.10, the normalization of the HTTP Location header during a redirect is vulnerable to an open redirect: WebOb joins the redirect target to the request URI using Python's urljoin, and since Python 3.10 the underlying urlsplit strips ASCII tab, carriage return, and newline characters before parsing, so a redirect target containing such characters can be reinterpreted as a protocol-relative URL whose authority is an attacker-controlled host. This bypasses the CVE-2024-42353 fix that escaped a leading double slash, allowing an attacker who influences the redirect location to send users to an arbitrary external site instead of the intended one. This vulnerability is fixed in 1.8.10.","provenance":"source","from":"CVE.org"},"cvss":{"score":6.1,"severity":"MEDIUM","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","provenance":"source","from":"CVE.org CNA"},"epss":{"score":0.00269,"percentile":0.19008,"provenance":"source"},"cwes":[{"id":"CWE-601","name":"URL Redirection to Untrusted Site"}],"references":[{"url":"https://github.com/Pylons/webob/security/advisories/GHSA-fh3h-vg37-cc95","tags":["x_refsource_CONFIRM"]}],"priority":{"score":8.1,"factors":[{"name":"EPSS percentile","points":3.8},{"name":"CVSS severity","points":4.27}]},"vendorSlug":"pylons","affectedVersions":[{"vendor":"Pylons","product":"webob","versions":["< 1.8.10"]}],"affected":[{"ecosystem":"PyPI","package":"webob","vulnerableRanges":["<1.8.10"],"patched":["1.8.10"],"from":["GHSA-fh3h-vg37-cc95","PYSEC-2026-251"],"provenance":"source"}],"euvd":{"id":"EUVD-2026-38391","exploited":false,"provenance":"source"},"lineage":{"familyId":"fam-pylons-webob-cve-2024-42353","parents":[{"from":"CVE-2024-42353","to":"CVE-2026-44889","relation":"bypass","confidence":"high","kind":"lineage","evidence":[{"kind":"text","provenance":"source","relation":"bypass","quote":"This bypasses the CVE-2024-42353 fix that escaped a leading double slash, allowing an attacker who influences the redirect location to send users to an arbitrary external site instead of the intended one.","from":"CVE.org","in":"CVE-2026-44889"},{"kind":"osv-related","provenance":"source","id":"GHSA-fh3h-vg37-cc95","via":"reference","url":"https://github.com/Pylons/webob/security/advisories/GHSA-mg3v-6m49-jhp3"},{"kind":"version-step","provenance":"source","package":"PyPI:webob","fromFixed":"1.8.8","toFixed":"1.8.10","daysApart":677},{"kind":"similar","provenance":"machine","score":0.4,"basis":"same product + CWE + description similarity"}]}],"packageHistory":[{"cve":"CVE-2024-42353","published":"2024-08-14","fixed":"1.8.8","kev":false},{"cve":"CVE-2026-44889","published":"2026-06-22","fixed":"1.8.10","kev":false},{"cve":"CVE-2026-54770","published":"2026-08-20","fixed":"1.8.11","kev":false,"link":{"from":"CVE-2026-44889","to":"CVE-2026-54770","relation":"successor","confidence":"medium","kind":"sequence","evidence":[{"kind":"version-step","provenance":"source","package":"PyPI:webob","fromFixed":"1.8.10","toFixed":"1.8.11","daysApart":59},{"kind":"similar","provenance":"machine","score":0.46,"basis":"same product + CWE + description similarity"}]}}],"package":"PyPI:webob"}}