summaryrefslogtreecommitdiff
path: root/dev-python/rencode/files
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2021-09-13 01:39:24 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2021-09-13 01:39:24 +0000
commit3e683d61bfe82f44a7c1bd841628a0582320f029 (patch)
tree503875c7eeb361c6aad4d91f3489da9ed6459296 /dev-python/rencode/files
parenta424d1bd9070020bceb828e1584783c019186b2e (diff)
downloadbaldeagleos-repo-3e683d61bfe82f44a7c1bd841628a0582320f029.tar.gz
baldeagleos-repo-3e683d61bfe82f44a7c1bd841628a0582320f029.tar.xz
baldeagleos-repo-3e683d61bfe82f44a7c1bd841628a0582320f029.zip
Adding metadata
Diffstat (limited to 'dev-python/rencode/files')
-rw-r--r--dev-python/rencode/files/rencode-1.0.6-fix-CVE-2021-40839.patch34
1 files changed, 34 insertions, 0 deletions
diff --git a/dev-python/rencode/files/rencode-1.0.6-fix-CVE-2021-40839.patch b/dev-python/rencode/files/rencode-1.0.6-fix-CVE-2021-40839.patch
new file mode 100644
index 000000000000..0a997d408017
--- /dev/null
+++ b/dev-python/rencode/files/rencode-1.0.6-fix-CVE-2021-40839.patch
@@ -0,0 +1,34 @@
+From: Andrew Resch <andrewresch@gmail.com>
+Date: Mon, 9 Aug 2021 20:44:51 -0700
+Subject: [PATCH] Fix checking if typecode is valid while decoding.
+
+This bug will cause rencode to hang if the invalid typecode is included
+in a sequence type (list, dict) since the position will not change and
+the loop checking for the termination byte never returns.
+
+This change is a copy of PR #29 with a few aesthetic changes.
+
+--- a/rencode/rencode.pyx
++++ b/rencode/rencode.pyx
+@@ -527,6 +527,8 @@
+ return decode_fixed_dict(data, pos)
+ elif typecode == CHR_DICT:
+ return decode_dict(data, pos)
++ else:
++ raise ValueError("Invalid typecode: %d at pos: %d" % (typecode, pos[0]))
+
+ def loads(data, decode_utf8=False):
+ """
+--- a/tests/test_rencode.py
++++ b/tests/test_rencode.py
+@@ -223,5 +223,10 @@
+ assert rencode_orig.__version__
+ self.assertEqual(rencode.__version__[1:], rencode_orig.__version__[1:], "version number does not match")
+
++ def test_invalid_typecode(self):
++ s = b";\x2f\x7f"
++ with self.assertRaises(ValueError):
++ rencode.loads(s)
++
+ if __name__ == '__main__':
+ unittest.main()