Multiple vulnerabilities in Python

Updated: 06/03/2020
Detect date

Multiple serious vulnerabilities have been found in CPython (Python) before 2.7.12, 3.x before 3.4.5, and 3.5.x before 3.5.2. Malicious users can exploit these vulnerabilities to bypass the TLS protections, inject arbitrary HTTP headers or have unspecified impact.

Below is a complete list of vulnerabilities:

  1. CRLF injection vulnerability can be exploited to inject arbitrary HTTP headers via CRLF sequences in a URL.
  2. Integer overflow can be exploited via a negative data size value, which triggers a heap-based buffer overflow.
  3. TLS stripping vulnerability can be exploited by man-in-the-middleattackers to bypass the TLS protections via leveraging a network position between the client and the registry to block the StartTLS command (“StartTLS stripping attack”).

Technical details

  1. CRLF injection vulnerability is in the HTTPConnection.putheader function in urllib2 and urllib in CPython.
  2. Integer overflow occurs in the get_data function in file zipimport.c from smtplib library in CPython.
  3. TLS stripping vulnerability occurs in the smtplib library in CPython.
Affected products

CPython 2.x before 2.7.12;
CPython 3.x before 3.4.5;
CPython 3.5.x before 3.5.2.


Update to the latest version
Patch to disable http header injection
Patch to StartTLS stripping attack (for branch 3.4)
Patch to StartTLS stripping attack (for branch 2.7)


Related products
Find out the statistics of the vulnerabilities spreading in your region