CVE-2016-0772: Medium severity python 2.7 vulnerability
A vulnerability in smtplib allowing MITM attacker to perform a startTLS stripping attack. smtplib does not seem to raise an exception when the remote end (smtp server) is capable of negotiating starttls but fails to respond with 220 (ok) to an explicit call of SMTP.starttls(). This may allow a malicious MITM to perform a startTLS stripping attack if the client code does not explicitly check the response code for startTLS.
Other sources
The smtplib library in CPython (aka Python) before 2.7.12, 3.x before 3.4.5, and 3.5.x before 3.5.2 does not return an error when StartTLS fails, which might allow man-in-the-middle attackers to bypass the TLS protections by leveraging a network position between the client and the registry to block the StartTLS command, aka a "StartTLS stripping attack."
— MITRE
Affected Software
Remediation
Patch Available
Patch Available
Event History
Frequently Asked Questions
What is the severity of CVE-2016-0772?
CVE-2016-0772 is rated as a medium severity vulnerability due to its potential exploitation in a Man-in-the-Middle attack.
How do I fix CVE-2016-0772?
To fix CVE-2016-0772, update to a version of Python that is above 3.5.1 or implement strict TLS validation.
Which versions of Python are affected by CVE-2016-0772?
CVE-2016-0772 affects Python versions 2.7.11 and earlier, as well as 3.0 to 3.5.0 inclusive.
What kind of attack can CVE-2016-0772 enable?
CVE-2016-0772 can enable a StartTLS stripping attack, allowing attackers to downgrade a secure connection to an unencrypted one.
Is there any workaround for the vulnerability identified in CVE-2016-0772?
While updating is the recommended solution, using alternative secure connection methods without relying on StartTLS can serve as a temporary workaround.