{"id":"CVE-2019-9947","title":"An issue was discovered in urllib2 in Python 2.x through 2.7.16 and urllib in Python 3.x through 3.7.3","summary":"An issue was discovered in urllib2 in Python 2.x through 2.7.16 and urllib in Python 3.x through 3.7.3. CRLF injection is possible if the attacker controls a url parameter, as demonstrated by the first argument to urllib.request.urlopen …","severity":"medium","cvss":6.1,"cvssVector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:C/C:L/I:L/A:N","cwe":["CWE-93"],"vendor":"python","product":"python","affected":["python >= 2.7.0, < 2.7.17","python >= 3.5.0, < 3.5.8","python >= 3.6.0, < 3.6.9","python >= 3.7.0, < 3.7.4"],"patched":["python 3.7.4"],"published":"2019-03-23","updated":"2026-10-07","sourceUpdated":"2026-10-07T19:17:15.640","source":"NVD","sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2019-9947","references":[{"url":"http://lists.opensuse.org/opensuse-security-announce/2019-10/msg00062.html","label":"cve@mitre.org"},{"url":"http://lists.opensuse.org/opensuse-security-announce/2019-10/msg00063.html","label":"cve@mitre.org"},{"url":"http://lists.opensuse.org/opensuse-security-announce/2020-01/msg00040.html","label":"cve@mitre.org"},{"url":"http://www.openwall.com/lists/oss-security/2021/02/04/2","label":"cve@mitre.org"},{"url":"https://access.redhat.com/errata/RHSA-2019:1260","label":"cve@mitre.org"},{"url":"https://access.redhat.com/errata/RHSA-2019:2030","label":"cve@mitre.org"},{"url":"https://access.redhat.com/errata/RHSA-2019:3335","label":"cve@mitre.org"},{"url":"https://access.redhat.com/errata/RHSA-2019:3520","label":"cve@mitre.org"},{"url":"https://access.redhat.com/errata/RHSA-2019:3725","label":"cve@mitre.org"},{"url":"https://bugs.python.org/issue35906","label":"cve@mitre.org"},{"url":"https://lists.debian.org/debian-lts-announce/2019/06/msg00022.html","label":"cve@mitre.org"},{"url":"https://lists.debian.org/debian-lts-announce/2019/06/msg00023.html","label":"cve@mitre.org"},{"url":"https://lists.debian.org/debian-lts-announce/2019/06/msg00026.html","label":"cve@mitre.org"},{"url":"https://lists.debian.org/debian-lts-announce/2020/07/msg00011.html","label":"cve@mitre.org"},{"url":"https://lists.debian.org/debian-lts-announce/2020/08/msg00034.html","label":"cve@mitre.org"},{"url":"https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/JMWSKTNOHSUOT3L25QFJAVCFYZX46FYK/","label":"cve@mitre.org"},{"url":"https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/JXASHCDD4PQFKTMKQN4YOP5ZH366ABN4/","label":"cve@mitre.org"},{"url":"https://security.gentoo.org/glsa/202003-26","label":"cve@mitre.org"},{"url":"https://security.netapp.com/advisory/ntap-20190404-0004/","label":"cve@mitre.org"},{"url":"https://usn.ubuntu.com/4127-1/","label":"cve@mitre.org"},{"url":"https://usn.ubuntu.com/4127-2/","label":"cve@mitre.org"},{"url":"http://lists.opensuse.org/opensuse-security-announce/2019-10/msg00062.html","label":"af854a3a-2127-422b-91ae-364da2661108"},{"url":"http://lists.opensuse.org/opensuse-security-announce/2019-10/msg00063.html","label":"af854a3a-2127-422b-91ae-364da2661108"},{"url":"http://lists.opensuse.org/opensuse-security-announce/2020-01/msg00040.html","label":"af854a3a-2127-422b-91ae-364da2661108"},{"url":"http://www.openwall.com/lists/oss-security/2021/02/04/2","label":"af854a3a-2127-422b-91ae-364da2661108"},{"url":"https://access.redhat.com/errata/RHSA-2019:1260","label":"af854a3a-2127-422b-91ae-364da2661108"},{"url":"https://access.redhat.com/errata/RHSA-2019:2030","label":"af854a3a-2127-422b-91ae-364da2661108"},{"url":"https://access.redhat.com/errata/RHSA-2019:3335","label":"af854a3a-2127-422b-91ae-364da2661108"},{"url":"https://access.redhat.com/errata/RHSA-2019:3520","label":"af854a3a-2127-422b-91ae-364da2661108"},{"url":"https://access.redhat.com/errata/RHSA-2019:3725","label":"af854a3a-2127-422b-91ae-364da2661108"},{"url":"https://bugs.python.org/issue35906","label":"af854a3a-2127-422b-91ae-364da2661108"},{"url":"https://lists.debian.org/debian-lts-announce/2019/06/msg00022.html","label":"af854a3a-2127-422b-91ae-364da2661108"},{"url":"https://lists.debian.org/debian-lts-announce/2019/06/msg00023.html","label":"af854a3a-2127-422b-91ae-364da2661108"},{"url":"https://lists.debian.org/debian-lts-announce/2019/06/msg00026.html","label":"af854a3a-2127-422b-91ae-364da2661108"},{"url":"https://lists.debian.org/debian-lts-announce/2020/07/msg00011.html","label":"af854a3a-2127-422b-91ae-364da2661108"},{"url":"https://lists.debian.org/debian-lts-announce/2020/08/msg00034.html","label":"af854a3a-2127-422b-91ae-364da2661108"},{"url":"https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/JMWSKTNOHSUOT3L25QFJAVCFYZX46FYK/","label":"af854a3a-2127-422b-91ae-364da2661108"},{"url":"https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/JXASHCDD4PQFKTMKQN4YOP5ZH366ABN4/","label":"af854a3a-2127-422b-91ae-364da2661108"},{"url":"https://security.gentoo.org/glsa/202003-26","label":"af854a3a-2127-422b-91ae-364da2661108"},{"url":"https://security.netapp.com/advisory/ntap-20190404-0004/","label":"af854a3a-2127-422b-91ae-364da2661108"},{"url":"https://usn.ubuntu.com/4127-1/","label":"af854a3a-2127-422b-91ae-364da2661108"},{"url":"https://usn.ubuntu.com/4127-2/","label":"af854a3a-2127-422b-91ae-364da2661108"}],"tags":["nvd","cve.org"],"epss":0.05253,"epssPercentile":0.92313,"ssvc":{"exploitation":"none","automatable":"no","technicalImpact":"partial","timestamp":"2026-10-07T18:18:57.743507Z"},"scores":{"nvd":6.1,"adp":5.4},"ingestedAt":"2026-10-07T18:42:20.899Z","slug":"CVE-2019-9947","body":"## Overview\n\nAn issue was discovered in urllib2 in Python 2.x through 2.7.16 and urllib in Python 3.x through 3.7.3. CRLF injection is possible if the attacker controls a url parameter, as demonstrated by the first argument to urllib.request.urlopen with \\r\\n (specifically in the path component of a URL that lacks a ? character) followed by an HTTP header or a Redis command. This is similar to the CVE-2019-9740 query string issue. This is fixed in: v2.7.17, v2.7.17rc1, v2.7.18, v2.7.18rc1; v3.5.10, v3.5.10rc1, v3.5.8, v3.5.8rc1, v3.5.8rc2, v3.5.9; v3.6.10, v3.6.10rc1, v3.6.11, v3.6.11rc1, v3.6.12, v3.6.9, v3.6.9rc1; v3.7.4, v3.7.4rc1, v3.7.4rc2, v3.7.5, v3.7.5rc1, v3.7.6, v3.7.6rc1, v3.7.7, v3.7.7rc1, v3.7.8, v3.7.8rc1, v3.7.9.\n\n## Affected\n\n- `python >= 2.7.0, < 2.7.17`\n- `python >= 3.5.0, < 3.5.8`\n- `python >= 3.6.0, < 3.6.9`\n- `python >= 3.7.0, < 3.7.4`\n\n## Remediation\n\nUpgrade past the affected range:\n\n- `python 3.7.4`","depth":"sunlit","depthScore":35,"depthScoreParts":{"impact":33.6,"likelihood":1.1,"exploitation":0,"ransomware":0},"changes":[{"seq":217669,"id":"CVE-2019-9947","ts":1791402292975,"field":"cvss","old":"5.4","new":"6.1"}]}