diff --git a/0001-Address-CVE-2023-26112-ReDoS.patch b/0001-Address-CVE-2023-26112-ReDoS.patch new file mode 100644 index 0000000000000000000000000000000000000000..7f515c4dffae49b796c28cad1569d189661c13d9 --- /dev/null +++ b/0001-Address-CVE-2023-26112-ReDoS.patch @@ -0,0 +1,51 @@ +From a82ea8fb0338f2bd46cf627c4b763094448e6bd7 Mon Sep 17 00:00:00 2001 +From: cdcadman +Date: Wed, 17 May 2023 03:57:08 -0700 +Subject: [PATCH] Address CVE-2023-26112 ReDoS + +--- + src/configobj/validate.py | 2 +- + src/tests/test_validate_errors.py | 10 +++++++++- + 2 files changed, 10 insertions(+), 2 deletions(-) + +diff --git a/src/configobj/validate.py b/src/configobj/validate.py +index 9267a3f..98d879f 100644 +--- a/src/configobj/validate.py ++++ b/src/configobj/validate.py +@@ -541,7 +541,7 @@ class Validator(object): + """ + + # this regex does the initial parsing of the checks +- _func_re = re.compile(r'(.+?)\((.*)\)', re.DOTALL) ++ _func_re = re.compile(r'([^\(\)]+?)\((.*)\)', re.DOTALL) + + # this regex takes apart keyword arguments + _key_arg = re.compile(r'^([a-zA-Z_][a-zA-Z0-9_]*)\s*=\s*(.*)$', re.DOTALL) +diff --git a/src/tests/test_validate_errors.py b/src/tests/test_validate_errors.py +index 399daa8..f7d6c27 100644 +--- a/src/tests/test_validate_errors.py ++++ b/src/tests/test_validate_errors.py +@@ -3,7 +3,7 @@ import os + import pytest + + from configobj import ConfigObj, get_extra_values, ParseError, NestingError +-from configobj.validate import Validator ++from configobj.validate import Validator, VdtUnknownCheckError + + @pytest.fixture() + def thisdir(): +@@ -77,3 +77,11 @@ def test_no_parent(tmpdir, specpath): + ini.write('[[haha]]') + with pytest.raises(NestingError): + conf = ConfigObj(str(ini), configspec=specpath, file_error=True) ++ ++ ++def test_re_dos(val): ++ value = "aaa" ++ i = 165100 ++ attack = '\x00'*i + ')' + '('*i ++ with pytest.raises(VdtUnknownCheckError): ++ val.check(attack, value) +-- +2.40.1 + diff --git a/python-configobj.spec b/python-configobj.spec index b399663d7a80537b8ddb1f9cc1c3a14a1d655a9b..ad7e3b5f15ee8b7479a59706a59377e4af8a050c 100644 --- a/python-configobj.spec +++ b/python-configobj.spec @@ -1,13 +1,15 @@ %{!?python3_sitelib: %global python3_sitelib %(%{__python3} -Esc "from distutils.sysconfig import get_python_lib; print(get_python_lib())")} Name: python-configobj -Version: 5.0.6 -Release: 17 +Version: 5.0.8 +Release: 2 Summary: ConfigObj is a simple but powerful config file reader and writer License: BSD URL: http://configobj.readthedocs.org/ Source0: https://github.com/DiffSK/configobj/archive/v%{version}.tar.gz +Patch0: 0001-Address-CVE-2023-26112-ReDoS.patch + BuildRequires:python3-devel python3-pytest python3-setuptools python3-six BuildArch: noarch @@ -48,7 +50,10 @@ config file reader and writer %check export PYTHONWARNINGS=always -%{__python3} test_configobj.py +export PYTHONPATH=$(pwd)/build/lib +%{__python3} src/tests/configobj_doctests.py +%{__python3} -m configobj.validate +pytest -c setup.cfg --color=yes %files -n python3-configobj %doc README.md @@ -56,6 +61,21 @@ export PYTHONWARNINGS=always %{python3_sitelib}/* %changelog +* Sat Sep 14 2024 Wangmian - 5.0.8-2 +- fix CVE-2023-26112 from fedora + +* Wed Feb 7 2024 Weifeng Su - 5.0.8-1 +- upgrade to 5.0.8 + -fix a regression error in 5.0.7 + -update testing to validate against python version 2.7 and 3.5-3.11 + -update broken links / no-existent services and references + +* Mon May 8 2023 Jiangtian Feng - 5.0.6-19 +- update the introduction web link + +* Fri Oct 21 2022 liubo - 5.0.6-18 +- rebuild the version to 5.0.6-18 + * Fri Jul 30 2021 chenyanpanHW - 5.0.6-17 - DESC: delete -Sgit from %autosetup, and delete BuildRequires git diff --git a/v5.0.6.tar.gz b/v5.0.6.tar.gz deleted file mode 100644 index a9f16422b416f3866ada7c4e29c2a844a25bedbe..0000000000000000000000000000000000000000 Binary files a/v5.0.6.tar.gz and /dev/null differ diff --git a/v5.0.8.tar.gz b/v5.0.8.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..56050e7504f82e162941b1694539a7b3c164083d Binary files /dev/null and b/v5.0.8.tar.gz differ