diff options
| author | Liguros - Gitlab CI/CD [develop] <gitlab@liguros.net> | 2021-09-13 01:39:24 +0000 |
|---|---|---|
| committer | Liguros - Gitlab CI/CD [develop] <gitlab@liguros.net> | 2021-09-13 01:39:24 +0000 |
| commit | 3e683d61bfe82f44a7c1bd841628a0582320f029 (patch) | |
| tree | 503875c7eeb361c6aad4d91f3489da9ed6459296 /dev-python/rencode/files | |
| parent | a424d1bd9070020bceb828e1584783c019186b2e (diff) | |
| download | baldeagleos-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.patch | 34 |
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() |
