CVE-2026-44889
WebOb: Location header normalization during redirect leads to open redirect
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.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- Required
What an attacker can affect
- Confidentiality
- Low
- Integrity
- Low
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
6.1
WebOb: Location header normalization during redirect leads to open redirect
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.
- Record
CVE-2026-44889- CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - Weakness
- CWE-601
- Updated
- 2026-11-02
EUVDEUVD-2026-38391
6.1
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.
- Record
EUVD-2026-38391- CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-fh3h-vg37-cc95
6.1
WebOb: Location header normalization during redirect leads to open redirect - again
Impact
When WebOb normalizes the HTTP Location header to include the request hostname, it does so by parsing the URL that the user is to be redirected to with Python's urllib.parse, and joining it to the base URL. urlsplit (called internally by urljoin) however treats a // at the start of a string as a URI without a scheme, and then treats the next part as the hostname. urljoin will then use that hostname from the second part as the hostname replacing the original one from the request.
In a previous advisory https://github.com/Pylons/webob/security/advisories/GHSA-mg3v-6m49-jhp3 an attempt to fix this was made by forcing the replacement of // with /%2f, however this did not take into account that since Python 3.10 urlsplit internally strips ASCII tab, carriage return, and newline characters from the string, so /\t/attacker.com gets turned into //attacker.com and the attacker is able to bypass the changes introduced in that previous advisory, thereby bringing back the problem that was attempted to be fixed.
>>> parse.urlparse("//attacker.com/some/path")
ParseResult(scheme='', netloc='attacker.com', path='/some/path', params='', query='', fragment='')
WebOb uses urljoin to take the request URI and join the redirect location to it, so assuming the request URI is https://example.org/ and the URL to redirect to is /\t/attacker.com/some/path/:
>>> parse.urljoin("https://example.org/", "/\t/attacker.com/some/path/")
'https://attacker.com/some/path/'
Which redirects from example.org where we want the user to stay to attacker.com.
Patches
This issue has been fixed in WebOb 1.8.10.
Workarounds
Any use of the Response class that includes a location can be rewritten to make sure to always pass a full URI that includes the hostname to redirect the user to, or to validate that the redirect target starts with a scheme (e.g. http:// or https://) before assigning to Response.location.
References
Thanks
- Caleb Brown of Google
- Record
GHSA-fh3h-vg37-cc95- CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - Weakness
- CWE-601
- Updated
- 2026-11-02
NVD
6.1
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.
- Record
CVE-2026-44889- CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - Weakness
- CWE-601
- Updated
- 2026-11-02
OSV
6.1
WebOb: Location header normalization during redirect leads to open redirect
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.
- Record
CVE-2026-44889- CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - Weakness
- CWE-601
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-44889
6.1
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.
- Record
DEBIAN-CVE-2026-44889- CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - Updated
- 2026-11-02
Show 11 moreShow less
OSVGHSA-fh3h-vg37-cc95
6.1
WebOb: Location header normalization during redirect leads to open redirect - again
Impact
When WebOb normalizes the HTTP Location header to include the request hostname, it does so by parsing the URL that the user is to be redirected to with Python's urllib.parse, and joining it to the base URL. urlsplit (called internally by urljoin) however treats a // at the start of a string as a URI without a scheme, and then treats the next part as the hostname. urljoin will then use that hostname from the second part as the hostname replacing the original one from the request.
In a previous advisory https://github.com/Pylons/webob/security/advisories/GHSA-mg3v-6m49-jhp3 an attempt to fix this was made by forcing the replacement of // with /%2f, however this did not take into account that since Python 3.10 urlsplit internally strips ASCII tab, carriage return, and newline characters from the string, so /\t/attacker.com gets turned into //attacker.com and the attacker is able to bypass the changes introduced in that previous advisory, thereby bringing back the problem that was attempted to be fixed.
>>> parse.urlparse("//attacker.com/some/path")
ParseResult(scheme='', netloc='attacker.com', path='/some/path', params='', query='', fragment='')
WebOb uses urljoin to take the request URI and join the redirect location to it, so assuming the request URI is https://example.org/ and the URL to redirect to is /\t/attacker.com/some/path/:
>>> parse.urljoin("https://example.org/", "/\t/attacker.com/some/path/")
'https://attacker.com/some/path/'
Which redirects from example.org where we want the user to stay to attacker.com.
Patches
This issue has been fixed in WebOb 1.8.10.
Workarounds
Any use of the Response class that includes a location can be rewritten to make sure to always pass a full URI that includes the hostname to redirect the user to, or to validate that the redirect target starts with a scheme (e.g. http:// or https://) before assigning to Response.location.
References
Thanks
- Caleb Brown of Google
- Record
GHSA-fh3h-vg37-cc95- CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - Weakness
- CWE-601
- Updated
- 2026-11-02
OSVOESA-2026-2679
6.1
python-webob security update
WebOb provides wrappers around the WSGI request environment, and an object to help create WSGI responses. The objects map much of the specified behavior of HTTP, including header parsing and accessors for other standard parts of the environment.
Security Fix(es):
Impact
When WebOb normalizes the HTTP Location header to include the request hostname, it does so by parsing the URL that the user is to be redirected to with Python's urllib.parse, and joining it to the base URL. urlsplit (called internally by urljoin) however treats a // at the start of a string as a URI without a scheme, and then treats the next part as the hostname. urljoin will then use that hostname from the second part as the hostname replacing the original one from the request.
In a previous advisory https://github.com/Pylons/webob/security/advisories/GHSA-mg3v-6m49-jhp3 an attempt to fix this was made by forcing the replacement of // with /%2f, however this did not take into account that since Python 3.10 urlsplit internally strips ASCII tab, carriage return, and newline characters from the string, so /\t/attacker.com gets turned into //attacker.com and the attacker is able to bypass the changes introduced in that previous advisory, thereby bringing back the problem that was attempted to be fixed.
>>> parse.urlparse("//attacker.com/some/path")
ParseResult(scheme='', netloc='attacker.com', path='/some/path', params='', query='', fragment='')
WebOb uses urljoin to take the request URI and join the redirect location to it, so assuming the request URI is https://example.org/ and the URL to redirect to is /\t/attacker.com/some/path/:
>>> parse.urljoin("https://example.org/", "/\t/attacker.com/some/path/")
'https://attacker.com/some/path/'
Which redirects from example.org where we want the user to stay to attacker.com.
Patches
This issue has been fixed in WebOb 1.8.10.
Workarounds
Any use of the Response class that includes a location can be rewritten to make sure to always pass a full URI that includes the hostname to redirect the user to, or to validate that the redirect target starts with a scheme (e.g. http:// or https://) before assigning to Response.location.
References
Thanks
- Caleb Brown of Google(CVE-2026-44889)
- Record
OESA-2026-2679- CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - Updated
- 2026-11-02
OSVPYSEC-2026-251
6.1
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.
- Record
PYSEC-2026-251- CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-44889
6.1
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.
- Record
UBUNTU-CVE-2026-44889- CVSS 3.1
- 6.1 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N - Updated
- 2026-11-02
OSVAZL-91362 No score
CVE-2026-44889 affecting package python-webob for versions less than 1.8.10-1
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.
- Record
AZL-91362- Updated
- 2026-11-02
OSVMGASA-2026-0452 No score
Updated python-webob packages fix a security vulnerability
Location header normalization during redirect leads to open redirect - again
- Record
MGASA-2026-0452- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:11041-1 No score
python-WebOb-doc-1.8.10-1.1 on GA media
These are all security issues fixed in the python-WebOb-doc-1.8.10-1.1 package on the GA media of openSUSE Tumbleweed.
- Record
openSUSE-SU-2026:11041-1- Updated
- 2026-11-02
OSVopenSUSE-SU-2026:21063-1 No score
Security update for python-Markdown, python-joblib, python-handy-archives, python-apache-libcloud, python-WebOb, python-PyGithub, python-soupsieve
This update for python-Markdown, python-joblib, python-handy-archives, python-apache-libcloud, python-WebOb, python-PyGithub, python-soupsieve fixes the following issues:
Changes in python-Markdown:
- Fix tests with latest python version (bsc#1268243)
Changes in python-joblib:
- Update to 1.5.2:
- fixing the resource tracker for python 3.13.7+
- Skip tests failing with Python 3.13.7
Changes in python-handy-archives:
- Skip some zip64 tests that fails with latest python interpreter because there are more consistency checks in zipfile (bsc#1256310)
Changes in python-apache-libcloud:
- Fix tests compatibility with latest Python 3.13 (bsc#1258223, bsc#1261918)
Changes in python-WebOb:
- Security issues fixed:
- CVE-2026-44889: Fixed: Location header normalization during redirect leads to open redirect (bsc#1268324)
- Skip boken test with latest cpython interpreters (bsc#1258223)
- Skip test failing on Python 3.14
Changes in python-PyGithub:
- Fix: [SUSE:SLFO:Main] python-PyGithub fails to build on aarch64, ppc64le, s390x, x86_64 (bsc#1263802)
Changes in python-soupsieve:
- Fix: [SUSE:SLFO:Main] python-soupsieve:test fails to build on aarch64, ppc64le, s390x, x86_64 (bsc#1256316)
- Record
openSUSE-SU-2026:21063-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:22370-1 No score
Security update for python-Markdown, python-joblib, python-handy-archives, python-apache-libcloud, python-WebOb, python-PyGithub, python-soupsieve
This update for python-Markdown, python-joblib, python-handy-archives, python-apache-libcloud, python-WebOb, python-PyGithub, python-soupsieve fixes the following issues:
Changes in python-Markdown:
- Fix tests with latest python version (bsc#1268243)
Changes in python-joblib:
- Update to 1.5.2:
- fixing the resource tracker for python 3.13.7+
- Skip tests failing with Python 3.13.7
Changes in python-handy-archives:
- Skip some zip64 tests that fails with latest python interpreter because there are more consistency checks in zipfile (bsc#1256310)
Changes in python-apache-libcloud:
- Fix tests compatibility with latest Python 3.13 (bsc#1258223, bsc#1261918)
Changes in python-WebOb:
- Security issues fixed:
- CVE-2026-44889: Fixed: Location header normalization during redirect leads to open redirect (bsc#1268324)
- Skip boken test with latest cpython interpreters (bsc#1258223)
- Skip test failing on Python 3.14
Changes in python-PyGithub:
- Fix: [SUSE:SLFO:Main] python-PyGithub fails to build on aarch64, ppc64le, s390x, x86_64 (bsc#1263802)
Changes in python-soupsieve:
- Fix: [SUSE:SLFO:Main] python-soupsieve:test fails to build on aarch64, ppc64le, s390x, x86_64 (bsc#1256316)
- Record
SUSE-SU-2026:22370-1- Updated
- 2026-11-02
OSVSUSE-SU-2026:2982-1 No score
Security update for python-WebOb
This update for python-WebOb fixes the following issue
- CVE-2026-44889: Location header normalization during redirect leads to open redirect (bsc#1268324).
- Record
SUSE-SU-2026:2982-1- Updated
- 2026-11-02
OSVUSN-8759-1 No score
python-webob vulnerabilities
It was discovered that WebOb incorrectly handled certain URLs. An attacker could possibly use this issue to control a redirect or forward to another URL. This issue was only addressed in Ubuntu 16.04 LTS and Ubuntu 18.04 LTS. (CVE-2024-42353)
Caleb Brown discovered that WebOb incorrectly handled certain URLs. An attacker could possibly use this issue to control a redirect or forward to another URL. (CVE-2026-44889)
- Record
USN-8759-1- Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
webobPyPI |
through 1.8.9 | 1.8.10 |
python-webobAzure Linux:3 |
before 1.8.10-1 | 1.8.10-1 |
python-webobDebian:12 |
All versions, plus listed versions 1:1.8.10-11:1.8.11-11:1.8.6-31:1.8.7-11:1.8.7-21:1.8.7-31:1.8.9-11:1.8.9-2 |
None known |
python-webobDebian:13 |
before 1:1.8.10-0+deb13u1, plus listed versions 1:1.8.9-11:1.8.9-2 |
1:1.8.10-0+deb13u1 |
python-webobDebian:14 |
before 1:1.8.10-1, plus listed versions 1:1.8.9-11:1.8.9-2 |
1:1.8.10-1 |
webobPyPI |
before 1.8.10, plus listed versions 0.80.8.10.8.20.8.30.8.4 Show 45 moreShow less0.8.50.90.9.10.9.20.9.30.9.40.9.50.9.60.9.6.10.9.70.9.7.10.9.81.01.0.11.0.21.0.31.0.41.0.51.0.61.0.71.0.81.11.1.11.1b21.1beta11.1rc11.21.2.11.2.21.2.31.2b11.2b21.2b31.2rc11.31.3.11.41.4.11.4.21.5.01.5.0a01.5.0a11.5.0b01.5.11.6.0 |
1.8.10 |
python-webobMageia:10 |
before 1.8.11-1.mga10 | 1.8.11-1.mga10 |
python-webobMageia:9 |
before 1.8.11-1.mga9 | 1.8.11-1.mga9 |
python-webobopenEuler:22.03-LTS-SP4 |
before 1.8.7-4.oe2203sp4 | 1.8.7-4.oe2203sp4 |
python-webobopenEuler:24.03-LTS-SP1 |
before 1.8.7-5.oe2403sp1 | 1.8.7-5.oe2403sp1 |
Show 37 moreShow less
| Package | Affected | Fixed |
|---|---|---|
python-webobopenEuler:24.03-LTS-SP3 |
before 1.8.7-5.oe2403sp3 | 1.8.7-5.oe2403sp3 |
python-webobopenEuler:20.03-LTS-SP4 |
before 1.8.2-5.oe2003sp4 | 1.8.2-5.oe2003sp4 |
python-MarkdownSUSE:Linux Enterprise Server 16.0 |
before 3.8.2-160000.3.1 | 3.8.2-160000.3.1 |
python-PyGithubSUSE:Linux Enterprise Server 16.0 |
before 2.6.1-160000.3.1 | 2.6.1-160000.3.1 |
python-WebObSUSE:Linux Enterprise Server 16.0 |
before 1.8.9-160000.3.1 | 1.8.9-160000.3.1 |
python-apache-libcloudSUSE:Linux Enterprise Server 16.0 |
before 3.8.0-160000.3.1 | 3.8.0-160000.3.1 |
python-handy-archivesSUSE:Linux Enterprise Server 16.0 |
before 0.2.0-160000.3.1 | 0.2.0-160000.3.1 |
python-soupsieveSUSE:Linux Enterprise Server 16.0 |
before 2.6-160000.3.1 | 2.6-160000.3.1 |
python-MarkdownSUSE:Linux Enterprise Server for SAP applications 16.0 |
before 3.8.2-160000.3.1 | 3.8.2-160000.3.1 |
python-PyGithubSUSE:Linux Enterprise Server for SAP applications 16.0 |
before 2.6.1-160000.3.1 | 2.6.1-160000.3.1 |
python-WebObSUSE:Linux Enterprise Server for SAP applications 16.0 |
before 1.8.9-160000.3.1 | 1.8.9-160000.3.1 |
python-apache-libcloudSUSE:Linux Enterprise Server for SAP applications 16.0 |
before 3.8.0-160000.3.1 | 3.8.0-160000.3.1 |
python-handy-archivesSUSE:Linux Enterprise Server for SAP applications 16.0 |
before 0.2.0-160000.3.1 | 0.2.0-160000.3.1 |
python-soupsieveSUSE:Linux Enterprise Server for SAP applications 16.0 |
before 2.6-160000.3.1 | 2.6-160000.3.1 |
python-WebObSUSE:Linux Enterprise Module for Basesystem 15 SP7 |
before 1.7.4-150000.3.6.1 | 1.7.4-150000.3.6.1 |
python-WebObSUSE:Linux Enterprise Module for Package Hub 15 SP7 |
before 1.7.4-150000.3.6.1 | 1.7.4-150000.3.6.1 |
python-webobUbuntu:Pro:16.04:LTS |
before 1.5.1-1ubuntu0.1~esm2, plus listed versions 1.4.1-11.5.1-1 |
1.5.1-1ubuntu0.1~esm2 |
python-webobUbuntu:Pro:18.04:LTS |
before 1:1.7.3-2ubuntu0.1~esm2, plus listed versions 1:1.7.2-0ubuntu11:1.7.3-0ubuntu11:1.7.3-2fakesync1 |
1:1.7.3-2ubuntu0.1~esm2 |
python-webobUbuntu:Pro:20.04:LTS |
before 1:1.8.5-2ubuntu0.1+esm1, plus listed versions 1:1.8.5-11:1.8.5-1build11:1.8.5-21:1.8.5-2ubuntu0.1 |
1:1.8.5-2ubuntu0.1+esm1 |
python-webobUbuntu:22.04:LTS |
before 1:1.8.6-1.1ubuntu0.2, plus listed versions 1:1.8.6-1.11:1.8.6-1.1ubuntu0.1 |
1:1.8.6-1.1ubuntu0.2 |
python-webobUbuntu:24.04:LTS |
before 1:1.8.7-1ubuntu0.1.24.04.2, plus listed versions 1:1.8.6-31:1.8.7-11:1.8.7-1ubuntu0.1.24.04.1 |
1:1.8.7-1ubuntu0.1.24.04.2 |
python-webobUbuntu:25.10 |
All versions, plus listed versions 1:1.8.9-1 |
None known |
python-webobUbuntu:26.04:LTS |
before 1:1.8.9-1ubuntu0.1, plus listed versions 1:1.8.9-1 |
1:1.8.9-1ubuntu0.1 |
python-webobUbuntu:Pro:16.04:LTS From an advisory covering 2 CVEs |
before 1.5.1-1ubuntu0.1~esm2, plus listed versions 1.4.1-11.5.1-1 |
1.5.1-1ubuntu0.1~esm2 |
python-webobUbuntu:Pro:18.04:LTS From an advisory covering 2 CVEs |
before 1:1.7.3-2ubuntu0.1~esm2, plus listed versions 1:1.7.2-0ubuntu11:1.7.3-0ubuntu11:1.7.3-2fakesync1 |
1:1.7.3-2ubuntu0.1~esm2 |
python-webobUbuntu:Pro:20.04:LTS From an advisory covering 2 CVEs |
before 1:1.8.5-2ubuntu0.1+esm1, plus listed versions 1:1.8.5-11:1.8.5-1build11:1.8.5-21:1.8.5-2ubuntu0.1 |
1:1.8.5-2ubuntu0.1+esm1 |
python-webobUbuntu:22.04:LTS From an advisory covering 2 CVEs |
before 1:1.8.6-1.1ubuntu0.2, plus listed versions 1:1.8.6-1.11:1.8.6-1.1ubuntu0.1 |
1:1.8.6-1.1ubuntu0.2 |
python-webobUbuntu:24.04:LTS From an advisory covering 2 CVEs |
before 1:1.8.7-1ubuntu0.1.24.04.2, plus listed versions 1:1.8.6-31:1.8.7-11:1.8.7-1ubuntu0.1.24.04.1 |
1:1.8.7-1ubuntu0.1.24.04.2 |
python-webobUbuntu:26.04:LTS From an advisory covering 2 CVEs |
before 1:1.8.9-1ubuntu0.1, plus listed versions 1:1.8.9-1 |
1:1.8.9-1ubuntu0.1 |
python-WebObopenSUSE:Tumbleweed |
before 1.8.10-1.1 | 1.8.10-1.1 |
python-MarkdownopenSUSE:Leap 16.0 |
before 3.8.2-160000.3.1 | 3.8.2-160000.3.1 |
python-PyGithubopenSUSE:Leap 16.0 |
before 2.6.1-160000.3.1 | 2.6.1-160000.3.1 |
python-WebObopenSUSE:Leap 16.0 |
before 1.8.9-160000.3.1 | 1.8.9-160000.3.1 |
python-apache-libcloudopenSUSE:Leap 16.0 |
before 3.8.0-160000.3.1 | 3.8.0-160000.3.1 |
python-handy-archivesopenSUSE:Leap 16.0 |
before 0.2.0-160000.3.1 | 0.2.0-160000.3.1 |
python-joblibopenSUSE:Leap 16.0 |
before 1.5.2-160000.1.1 | 1.5.2-160000.1.1 |
python-soupsieveopenSUSE:Leap 16.0 |
before 2.6-160000.3.1 | 2.6-160000.3.1 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected, facts | ||
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-44889 is a medium vulnerability (CVSS 6.1) in Pylons Webob, published June 4, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.27%, the 19th percentile. Fixed in webob 1.8.10.
References
github.com/Pylons/webob/security/advisories/GHSA-fh3h-vg37-cc95
github.com/Pylons/webob/security/advisories/GHSA-mg3v-6m49-jhp3
github.com/Pylons/webob/commit/1f681a4f17fc10777ef861e8b43ecb26053bc539
github.com/Pylons/webob/commit/2b9fbedafb31180c910cf8526e9ea72b4603d0bc
github.com/Pylons/webob/releases/tag/1.8.10
nvd.nist.gov/vuln/detail/CVE-2026-44889
Show 22 moreShow less
github.com/pypa/advisory-database/tree/main/vulns/webob/PYSEC-2026-251.yaml
github.com/advisories/GHSA-fh3h-vg37-cc95
github.com/CVEProject/cvelistV5/tree/main/cves/2026/44xxx/CVE-2026-44889.json
security-tracker.debian.org/tracker/CVE-2026-44889
github.com/Pylons/webob
advisories.mageia.org/MGASA-2026-0452.html
bugs.mageia.org/show_bug.cgi?id=36323
ubuntu.com/security/notices/USN-8759-1
openeuler.org/zh/security/security-bulletins/detail?id=openEuler-SA-2026-2679
suse.com/support/update/announcement/2026/suse-su-202622370-1
bugzilla.suse.com/1256310
bugzilla.suse.com/1256316
bugzilla.suse.com/1258223
bugzilla.suse.com/1261918
bugzilla.suse.com/1263802
bugzilla.suse.com/1268243
bugzilla.suse.com/1268324
suse.com/security/cve/CVE-2026-44889
suse.com/support/update/announcement/2026/suse-su-20262982-1
ubuntu.com/security/CVE-2026-44889
cve.org/CVERecord?id=CVE-2026-44889
ubuntu.com/security/CVE-2024-42353
Left out here: 23 versions. The JSON record has them.