Multiple vulnerabilities in Python



Published: 2019-03-13 | Updated: 2020-07-20
Risk Medium
Patch available YES
Number of vulnerabilities 3
CVE-ID CVE-2019-9740
CVE-2019-9947
CVE-2019-9948
CWE-ID CWE-93
CWE-749
Exploitation vector Network
Public exploit Public exploit code for vulnerability #1 is available.
Public exploit code for vulnerability #2 is available.
Public exploit code for vulnerability #3 is available.
Vulnerable software
Subscribe
Python
Universal components / Libraries / Scripting languages

Vendor Python.org

Security Bulletin

This security bulletin contains information about 3 vulnerabilities.

UPDATED: 19.06.2019
Added vulnerabilities #2 and #3.

1) CRLF injection

EUVDB-ID: #VU18829

Risk: Medium

CVSSv3.1: 4.6 [CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N/E:P/RL:U/RC:C]

CVE-ID: CVE-2019-9740

CWE-ID: CWE-93 - Improper Neutralization of CRLF Sequences ('CRLF Injection')

Exploit availability: No

Description

The vulnerability allows a remote attacker to perform CRLF injection attacks.

The vulnerability exists within urllib2 implementation for Python 2.x and urllib3 implementation for Python 3.x when processing the path component of a URL after the "?" character within the urllib.request.urlopen() call. A remote attacker with ability to control URL, passed to the application, can use CRLF sequences to split the HTTP request and inject arbitrary HTTP headers into request, made by the application.

Mitigation

Install update from vendor's website.

Vulnerable software versions

Python: 2.7.0 - 3.8

External links

http://www.securityfocus.com/bid/107466
http://access.redhat.com/errata/RHSA-2019:1260
http://bugs.python.org/issue36276
http://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/JMWSKTNOHSUOT3L25QFJAVCFYZX46FYK/
http://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/JXASHCDD4PQFKTMKQN4YOP5ZH366ABN4/


Q & A

Can this vulnerability be exploited remotely?

Yes. This vulnerability can be exploited by a remote non-authenticated attacker via the Internet.

Is there known malware, which exploits this vulnerability?

No. We are not aware of malware exploiting this vulnerability. However, proof of concept for this vulnerability is available.

2) CRLF injection

EUVDB-ID: #VU18828

Risk: Medium

CVSSv3.1: 4.6 [CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:N/E:P/RL:U/RC:C]

CVE-ID: CVE-2019-9947

CWE-ID: CWE-93 - Improper Neutralization of CRLF Sequences ('CRLF Injection')

Exploit availability: No

Description

The vulnerability allows a remote attacker to perform CRLF injection attacks.

The vulnerability exists within urllib2 implementation for Python 2.x and urllib3 implementation for Python 3.x when processing the path component of a URL that lacks the "?" character within the urllib.request.urlopen() call. A remote attacker with ability to control URL, passed to the application, can use CRLF sequences to split the HTTP request and inject arbitrary HTTP headers into request, made by the application.

Mitigation

Install update from vendor's website.

Vulnerable software versions

Python: 2.7.0 - 3.8

External links

http://access.redhat.com/errata/RHSA-2019:1260
http://bugs.python.org/issue35906
http://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/JMWSKTNOHSUOT3L25QFJAVCFYZX46FYK/
http://lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/JXASHCDD4PQFKTMKQN4YOP5ZH366ABN4/
http://security.netapp.com/advisory/ntap-20190404-0004/


Q & A

Can this vulnerability be exploited remotely?

Yes. This vulnerability can be exploited by a remote non-authenticated attacker via the Internet.

Is there known malware, which exploits this vulnerability?

No. We are not aware of malware exploiting this vulnerability. However, proof of concept for this vulnerability is available.

3) Exposed dangerous method or function

EUVDB-ID: #VU18827

Risk: Medium

CVSSv3.1: 6.4 [CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:H/I:N/A:N/E:P/RL:U/RC:C]

CVE-ID: CVE-2019-9948

CWE-ID: CWE-749 - Exposed Dangerous Method or Function

Exploit availability: No

Description

The vulnerability allows a remote attacker to bypass certain security restrictions.

The vulnerability exists due to urllib implementation in Python 2.x supports the local_file: scheme. An attacker with ability to control input data, such as URL, can bypass protection mechanisms that blacklist file: URIs and view contents of arbitrary file on the system.

PoC:

urllib.urlopen('local_file:///etc/passwd')

Mitigation

Install update from vendor's website.

Vulnerable software versions

Python: 2.7.0 - 3.7.3

External links

http://bugs.python.org/issue35907
http://github.com/python/cpython/pull/11842
http://github.com/python/cpython/commit/4fe82a8eef7aed60de05bfca0f2c322730ea921e
http://github.com/python/cpython/commit/4f06dae5d8d4400ba38d8502da620f07d4a5696e
http://github.com/python/cpython/commit/34bab215596671d0dec2066ae7d7450cd73f638b


Q & A

Can this vulnerability be exploited remotely?

Yes. This vulnerability can be exploited by a remote non-authenticated attacker via the Internet.

Is there known malware, which exploits this vulnerability?

No. We are not aware of malware exploiting this vulnerability. However, proof of concept for this vulnerability is available.



###SIDEBAR###