CVE-2019-10160: Critical severity Python Python vulnerability

Published Jun 3, 2019
·
Updated

A security regression for CVE-2019-9636 was discovered in python's functions urllib.parse.urlsplit and urllib.parse.urlparse, introduced with commit d537ab0ff9767ef024f26246899728f0116b1ec3. No upstream python version is affected by this regression but the vulnerable commit may already have been included downstream as part of the original fix for CVE-2019-9636.

Affected python versions ignore the user/password part before @ in the netloc component of a URL, thus it still allows an attacker to exploit the vulnerability as in CVE-2019-9636. Those functions do not properly handle URLs encoded with Punycode/Internationalizing Domain Names in Applications (IDNA), which may result in a wrong domain name (specifically the netloc component of URL - user@domain:port) being returned by those functions. When an application parses user-supplied URLs to store cookies, authentication credentials, or other kind of information, it is possible for an attacker to provide specially crafted URLs to make the application locate host-related information (e.g. cookies, authentication data) and send them to a different host than where it should, unlike if the URLs had been correctly parsed. The result of an attack may vary based on the application.

External Reference https://python-security.readthedocs.io/vuln/urlsplit-nfkc-normalization2.html

Vulnerable commit https://github.com/python/cpython/commit/d537ab0ff9767ef024f26246899728f0116b1ec3

Upstream patch https://github.com/python/cpython/commit/8d0ef0b5edeae52960c7ed05ae8a12388324f87e

Other sources

A security regression of CVE-2019-9636 was discovered in python since commit d537ab0ff9767ef024f26246899728f0116b1ec3 affecting versions 2.7, 3.5, 3.6, 3.7 and from v3.8.0a4 through v3.8.0b1, which still allows an attacker to exploit CVE-2019-9636 by abusing the user and password parts of a URL. When an application parses user-supplied URLs to store cookies, authentication credentials, or other kind of information, it is possible for an attacker to provide specially crafted URLs to make the application locate host-related information (e.g. cookies, authentication data) and send them to a different host than where it should, unlike if the URLs had been correctly parsed. The result of an attack may vary based on the application.

A security regression of CVE-2019-9636 was discovered in python, since commit d537ab0ff9767ef024f26246899728f0116b1ec3, which still allows an attacker to exploit CVE-2019-9636 by abusing the user and password parts of a URL. When an application parses user-supplied URLs to store cookies, authentication credentials, or other kind of information, it is possible for an attacker to provide specially crafted URLs to make the application locate host-related information (e.g. cookies, authentication data) and send them to a different host than where it should, unlike if the URLs had been correctly parsed. The result of an attack may vary based on the application.

Affected Software

38 affected componentsFixes available
redhat/python<0:2.7.5-80.el7_6
0:2.7.5-80.el7_6
redhat/python27-python<0:2.7.16-6.el6
0:2.7.16-6.el6
redhat/python27-python<0:2.7.16-6.el7
0:2.7.16-6.el7
redhat/imgbased<0:1.1.9-0.1.el7e
0:1.1.9-0.1.el7e
redhat/ovirt-node-ng<0:4.3.5-0.20190717.0.el7e
0:4.3.5-0.20190717.0.el7e
redhat/redhat-release-virtualization-host<0:4.3.5-2.el7e
0:4.3.5-2.el7e
redhat/redhat-virtualization-host<0:4.3.5-20190722.0.el7_7
0:4.3.5-20190722.0.el7_7
debian/python2.7
2.7.18-8+deb11u1
Python Python>=2.7.0<2.7.17
Python Python>=3.5.0<3.5.8
Python Python>=3.6.0<3.6.9
Python Python>=3.7.0<3.7.4
Python Python=3.8.0-alpha4
Python Python=3.8.0-beta1
redhat Enterprise Linux Desktop=7.0
redhat Enterprise Linux Eus=7.6
redhat Enterprise Linux Server=7.0
redhat Enterprise Linux Server Aus=7.6
redhat Enterprise Linux Server Tus=7.6
redhat Enterprise Linux Workstation=7.0
Debian Debian Linux=8.0
Debian Debian Linux=9.0
openSUSE Leap=15.0
openSUSE Leap=15.1
Fedoraproject Fedora=29
Fedoraproject Fedora=30
Fedoraproject Fedora=31
Canonical Ubuntu Linux=12.04
Canonical Ubuntu Linux=14.04
Canonical Ubuntu Linux=16.04
Canonical Ubuntu Linux=18.04
Canonical Ubuntu Linux=19.04
All of the following
redhat Virtualization=4.0
redhat Enterprise Linux=7.0
NetApp Cloud Backup
NetApp Converged Systems Advisor Agent
redhat Virtualization=4.0
redhat Enterprise Linux=7.0

Event History

Jun 3, 2019
CVE Published
12:00 AM
Jun 7, 2019
Data Sourced
via Red Hat·03:43 PM
DescriptionSeverityAffected Software
CVE Published
via MITRE·05:50 PM
Data Sourced
via MITRE·05:50 PM
DescriptionSeverityWeakness
Jan 11, 2024
Data Sourced
via Launchpad·11:12 PM
Description
Feb 20, 2026
Data Sourced
via Ubuntu·07:03 PM
RemedyDescriptionSeverityAffected Software

Parent advisories

This vulnerability appears in the following advisories.

Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is CVE-2019-10160?

CVE-2019-10160 is a security regression vulnerability in Python, affecting versions 2.7, 3.5, 3.6, 3.7, and from v3.8.0a4 through v3.8.0b1.

2

How severe is CVE-2019-10160?

CVE-2019-10160 has a severity rating of 9.8 (Critical).

3

Which software versions are affected by CVE-2019-10160?

CVE-2019-10160 affects Python versions 2.7, 3.5, 3.6, 3.7, and from v3.8.0a4 through v3.8.0b1.

4

How can CVE-2019-10160 be exploited?

CVE-2019-10160 can be exploited by abusing the user and password parts of a URL.

5

Are there any remediation steps available for CVE-2019-10160?

Yes, remediation steps are available. Please refer to the provided references for more information.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203