Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python39 for openSUSE:Factory checked in at 2023-03-03 22:24:11 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python39 (Old) and /work/SRC/openSUSE:Factory/.python39.new.31432 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python39" Fri Mar 3 22:24:11 2023 rev:42 rq:1068564 version:3.9.16 Changes: -------- --- /work/SRC/openSUSE:Factory/python39/python39.changes 2023-02-22 15:21:13.501738263 +0100 +++ /work/SRC/openSUSE:Factory/.python39.new.31432/python39.changes 2023-03-03 22:24:13.402467959 +0100 @@ -1,0 +2,7 @@ +Wed Mar 1 14:43:31 UTC 2023 - Matej Cepl <mc...@suse.com> + +- Add CVE-2023-24329-blank-URL-bypass.patch (CVE-2023-24329, + bsc#1208471) blocklists bypass via the urllib.parse component + when supplying a URL that starts with blank characters + +------------------------------------------------------------------- New: ---- CVE-2023-24329-blank-URL-bypass.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python39.spec ++++++ --- /var/tmp/diff_new_pack.rtzHwL/_old 2023-03-03 22:24:14.314471425 +0100 +++ /var/tmp/diff_new_pack.rtzHwL/_new 2023-03-03 22:24:14.322471455 +0100 @@ -161,6 +161,10 @@ # PATCH-FIX-UPSTREAM 98437-sphinx.locale._-as-gettext-in-pyspecific.patch gh#python/cpython#98366 mc...@suse.com # this patch makes things totally awesome Patch37: 98437-sphinx.locale._-as-gettext-in-pyspecific.patch +# PATCH-FIX-UPSTREAM CVE-2023-24329-blank-URL-bypass.patch bsc#1208471 mc...@suse.com +# blocklist bypass via the urllib.parse component when supplying +# a URL that starts with blank characters +Patch38: CVE-2023-24329-blank-URL-bypass.patch BuildRequires: autoconf-archive BuildRequires: automake BuildRequires: fdupes @@ -424,6 +428,7 @@ %endif %patch35 -p1 %patch37 -p1 +%patch38 -p1 # drop Autoconf version requirement sed -i 's/^AC_PREREQ/dnl AC_PREREQ/' configure.ac ++++++ CVE-2023-24329-blank-URL-bypass.patch ++++++ >From a284d69de1d1a42714576d4a9562145a94e62127 Mon Sep 17 00:00:00 2001 From: Ben Kallus <benjamin.p.kallus...@dartmouth.edu> Date: Sat, 12 Nov 2022 15:43:33 -0500 Subject: [PATCH 1/2] gh-99418: Prevent urllib.parse.urlparse from accepting schemes that don't begin with an alphabetical ASCII character. --- Lib/test/test_urlparse.py | 18 ++++++++++ Lib/urllib/parse.py | 2 - Misc/NEWS.d/next/Library/2022-11-12-15-45-51.gh-issue-99418.FxfAXS.rst | 2 + 3 files changed, 21 insertions(+), 1 deletion(-) --- a/Lib/test/test_urlparse.py +++ b/Lib/test/test_urlparse.py @@ -665,6 +665,24 @@ class UrlParseTestCase(unittest.TestCase with self.assertRaises(ValueError): p.port + def test_attributes_bad_scheme(self): + """Check handling of invalid schemes.""" + for bytes in (False, True): + for parse in (urllib.parse.urlsplit, urllib.parse.urlparse): + for scheme in (".", "+", "-", "0", "http&", "६http"): + with self.subTest(bytes=bytes, parse=parse, scheme=scheme): + url = scheme + "://www.example.net" + if bytes: + if url.isascii(): + url = url.encode("ascii") + else: + continue + p = parse(url) + if bytes: + self.assertEqual(p.scheme, b"") + else: + self.assertEqual(p.scheme, "") + def test_attributes_without_netloc(self): # This example is straight from RFC 3261. It looks like it # should allow the username, hostname, and port to be filled --- a/Lib/urllib/parse.py +++ b/Lib/urllib/parse.py @@ -470,7 +470,7 @@ def urlsplit(url, scheme='', allow_fragm clear_cache() netloc = query = fragment = '' i = url.find(':') - if i > 0: + if i > 0 and url[0].isascii() and url[0].isalpha(): for c in url[:i]: if c not in scheme_chars: break --- /dev/null +++ b/Misc/NEWS.d/next/Library/2022-11-12-15-45-51.gh-issue-99418.FxfAXS.rst @@ -0,0 +1,2 @@ +Fix bug in :func:`urllib.parse.urlparse` that causes URL schemes that begin +with a digit, a plus sign, or a minus sign to be parsed incorrectly.