Debdiff for proposed stable security update attached. The first hunk of the patch has the actual fix. I would prefer to use the new ustream release rather than just patch the one line because of the test improvements, of the explanation of the issue in the upstream changeslog, and using the new upstream makes it clearer to external reviewers we've done the fix. There are no unrelated changes.
Scott K
diff -Nru python-bleach-3.1.0/bleach/html5lib_shim.py python-bleach-3.1.1/bleach/html5lib_shim.py
--- python-bleach-3.1.0/bleach/html5lib_shim.py 2019-01-09 10:09:26.000000000 -0500
+++ python-bleach-3.1.1/bleach/html5lib_shim.py 2020-02-19 12:34:12.000000000 -0500
@@ -376,7 +376,12 @@
self.consume_entities = consume_entities
super(BleachHTMLParser, self).__init__(**kwargs)
- def _parse(self, stream, innerHTML=False, container='div', scripting=False, **kwargs):
+ def _parse(self, stream, innerHTML=False, container='div', scripting=True, **kwargs):
+ # set scripting=True to parse <noscript> as though JS is enabled to
+ # match the expected context in browsers
+ #
+ # https://html.spec.whatwg.org/multipage/scripting.html#the-noscript-element
+ #
# Override HTMLParser so we can swap out the tokenizer for our own.
self.innerHTMLMode = innerHTML
self.container = container
diff -Nru python-bleach-3.1.0/bleach/__init__.py python-bleach-3.1.1/bleach/__init__.py
--- python-bleach-3.1.0/bleach/__init__.py 2019-01-09 10:09:26.000000000 -0500
+++ python-bleach-3.1.1/bleach/__init__.py 2020-02-19 12:34:12.000000000 -0500
@@ -18,9 +18,9 @@
# yyyymmdd
-__releasedate__ = '20190109'
+__releasedate__ = '20200213'
# x.y.z or x.y.z.dev0 -- semver
-__version__ = '3.1.0'
+__version__ = '3.1.1'
VERSION = parse_version(__version__)
diff -Nru python-bleach-3.1.0/CHANGES python-bleach-3.1.1/CHANGES
--- python-bleach-3.1.0/CHANGES 2019-01-09 10:09:26.000000000 -0500
+++ python-bleach-3.1.1/CHANGES 2020-02-19 12:34:12.000000000 -0500
@@ -1,6 +1,41 @@
Bleach changes
==============
+Version 3.1.1 (February 13th, 2020)
+-----------------------------------
+
+**Security fixes**
+
+* ``bleach.clean`` behavior parsing ``noscript`` tags did not match
+ browser behavior.
+
+ Calls to ``bleach.clean`` allowing ``noscript`` and one or more of
+ the raw text tags (``title``, ``textarea``, ``script``, ``style``,
+ ``noembed``, ``noframes``, ``iframe``, and ``xmp``) were vulnerable
+ to a mutation XSS.
+
+ This security issue was confirmed in Bleach versions v2.1.4, v3.0.2,
+ and v3.1.0. Earlier versions are probably affected too.
+
+ Anyone using Bleach <=v3.1.0 is highly encouraged to upgrade.
+
+ https://bugzilla.mozilla.org/show_bug.cgi?id=1615315
+
+**Backwards incompatible changes**
+
+None
+
+**Features**
+
+None
+
+**Bug fixes**
+
+None
+
+Bleach changes
+==============
+
Version 3.1.0 (January 9th, 2019)
---------------------------------
@@ -76,7 +111,7 @@
* Fix ``list`` object has no attribute ``lower`` in ``clean``. (#398)
* Fix ``abbr`` getting escaped in ``linkify``. (#400)
-
+
Version 3.0.0 (October 3rd, 2018)
---------------------------------
diff -Nru python-bleach-3.1.0/debian/changelog python-bleach-3.1.1/debian/changelog
--- python-bleach-3.1.0/debian/changelog 2019-01-15 00:46:11.000000000 -0500
+++ python-bleach-3.1.1/debian/changelog 2020-02-22 19:08:53.000000000 -0500
@@ -1,3 +1,9 @@
+python-bleach (3.1.1-0+deb10u1) buster-security; urgency=medium
+
+ * New upstream security release (Closes: #951907)
+
+ -- Scott Kitterman <[email protected]> Sat, 22 Feb 2020 19:08:53 -0500
+
python-bleach (3.1.0-1) unstable; urgency=medium
* New upstream release
diff -Nru python-bleach-3.1.0/debian/gbp.conf python-bleach-3.1.1/debian/gbp.conf
--- python-bleach-3.1.0/debian/gbp.conf 2018-01-09 19:44:47.000000000 -0500
+++ python-bleach-3.1.1/debian/gbp.conf 2020-02-22 19:06:54.000000000 -0500
@@ -1,2 +1,2 @@
[DEFAULT]
-debian-branch=debian/master
+debian-branch=debian/buster
diff -Nru python-bleach-3.1.0/tests/test_clean.py python-bleach-3.1.1/tests/test_clean.py
--- python-bleach-3.1.0/tests/test_clean.py 2019-01-09 10:09:26.000000000 -0500
+++ python-bleach-3.1.1/tests/test_clean.py 2020-02-19 12:34:12.000000000 -0500
@@ -769,6 +769,34 @@
assert clean('<d {c}>') == '<d {c}>'
+# tags that get content passed through (i.e. parsed with parseRCDataRawtext)
+_raw_tags = [
+ "title",
+ "textarea",
+ "script",
+ "style",
+ "noembed",
+ "noframes",
+ "iframe",
+ "xmp",
+]
+
[email protected](
+ "raw_tag, data, expected",
+ [
+ (
+ raw_tag,
+ "<noscript><%s></noscript><img src=x onerror=alert(1) />" % raw_tag,
+ "<noscript><%s></noscript><img src=x onerror=alert(1) />" % raw_tag,
+ )
+ for raw_tag in _raw_tags
+ ],
+)
+def test_noscript_rawtag_(raw_tag, data, expected):
+ # refs: bug 1615315 / GHSA-q65m-pv3f-wr5r
+ assert clean(data, tags=["noscript", raw_tag]) == expected
+
+
def get_ids_and_tests():
"""Retrieves regression tests from data/ directory
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ Python-modules-team mailing list [email protected] https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/python-modules-team
