urlsplit does not handle NFKC normalization (second fix)

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

Vulnerable Versions

  • Python 3.5 (need release)

Python issue

urlsplit doesn’t accept a NFKD hostname with a port number.

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

CVE-2019-10160

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

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