urlsplit does not handle NFKC normalization (second fix)


This resource is maintained for historical reference and does not contain the latest vulnerability info for Python.

The canonical database for vulnerabilities affecting Python is available on GitHub in the Open Source Vulnerability (OSV) format. This vulnerability can be viewed online at the Open Source Vulnerability Database.

Follow up of the urllib NFKC normalization vulnerability: the fix ignored the user/password before @ whereas it still allowed to exploit the vulnerability.

The second fix no longer ignores the part before @.


  • Disclosure date: 2019-04-27 (Python issue bpo-36742 reported)
  • Reported at: 2019-06-03 (email to PSRT)
  • Reported by: Riccardo Schirone (Red Hat)

Fixed In

Python issue

CVE-2019-10160: urlsplit NFKD normalization vulnerability in user:password@.

  • Python issue: bpo-36742
  • Creation date: 2019-04-27
  • Reporter: Chihiro Ito


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.


Timeline using the disclosure date 2019-04-27 as reference: