CVE-2023-26112
Description
All versions of the package configobj are vulnerable to Regular Expression Denial of Service (ReDoS) via the validate function, using (.+?)\((.*)\). Note: This is only exploitable in the case of a developer, putting the offending value in a server side configuration file.
AI Insight
LLM-synthesized narrative grounded in this CVE's description and references.
The configobj Python package contains a regular expression denial-of-service vulnerability in its validate function, exploitable by a developer supplying a crafted configuration value.
Vulnerability
CVE-2023-26112 affects all versions of the Python configobj package. The validate function contains a regular expression that is vulnerable to ReDoS (Regular Expression Denial of Service). The flaw lies in the use of the pattern (.+?)\((.*)\), which can exhibit catastrophic backtracking when processing a maliciously crafted input string [1][2].
Exploitation
Exploitation requires a developer to supply a deliberately malformed value in a server-side configuration file that is then processed by the validate method. The attack is not remotely triggerable by end users; it relies on a developer or administrator introducing the payload into the application's configuration [1]. The Snyk advisory explains that ReDoS attacks force the regex engine to take an exponentially long time to process a non-matching string, effectively blocking the application's event loop and causing a denial of service [2].
Impact
An attacker who can cause the vulnerable regex to be evaluated against a poisoned configuration value can make the Python process hang or crash, leading to a denial of service condition. The impact is limited to availability; no data confidentiality or integrity is compromised. The advisory notes that this can make the system inaccessible to legitimate users [2].
Mitigation
As of the publication date, no patch has been released for the configobj package itself. The Fedora project has issued package announcements [3][4], but these do not provide a fix. The best mitigation is to not parse untrusted or developer-supplied configuration values through the validate function, or to switch to an alternative configuration library that does not contain the vulnerable regex [1].
AI Insight generated on May 20, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.
Affected packages
Versions sourced from the GitHub Security Advisory.
| Package | Affected versions | Patched versions |
|---|---|---|
configobjPyPI | < 5.0.9 | 5.0.9 |
Affected products
27- configobj/configobjdescription
- osv-coords25 versionspkg:apk/chainguard/py3.10-configobjpkg:apk/chainguard/py3.11-configobjpkg:apk/chainguard/py3.12-configobjpkg:apk/chainguard/py3.13-configobjpkg:apk/chainguard/py3-configobjpkg:apk/chainguard/py3-supported-configobjpkg:apk/wolfi/py3.10-configobjpkg:apk/wolfi/py3.11-configobjpkg:apk/wolfi/py3.12-configobjpkg:apk/wolfi/py3.13-configobjpkg:apk/wolfi/py3-configobjpkg:apk/wolfi/py3-supported-configobjpkg:pypi/configobjpkg:rpm/opensuse/python-configobj&distro=openSUSE%20Leap%2015.4pkg:rpm/opensuse/python-configobj&distro=openSUSE%20Leap%2015.5pkg:rpm/opensuse/python-configobj&distro=openSUSE%20Leap%20Micro%205.4pkg:rpm/suse/python-configobj&distro=SUSE%20Linux%20Enterprise%20Micro%205.4pkg:rpm/suse/python-configobj&distro=SUSE%20Linux%20Enterprise%20Module%20for%20Basesystem%2015%20SP4pkg:rpm/suse/python-configobj&distro=SUSE%20Linux%20Enterprise%20Module%20for%20Basesystem%2015%20SP5pkg:rpm/suse/python-configobj&distro=SUSE%20Linux%20Enterprise%20Module%20for%20Public%20Cloud%2012pkg:rpm/suse/python-configobj&distro=SUSE%20Linux%20Enterprise%20Real%20Time%2015%20SP3pkg:rpm/suse/python-configobj&distro=SUSE%20Linux%20Enterprise%20Server%2012%20SP5pkg:rpm/suse/python-configobj&distro=SUSE%20Linux%20Enterprise%20Server%20for%20SAP%20Applications%2012%20SP5pkg:rpm/suse/python-configobj&distro=SUSE%20Manager%20Proxy%204.2pkg:rpm/suse/python-configobj&distro=SUSE%20Manager%20Server%204.2
< 0+ 24 more
- (no CPE)range: < 0
- (no CPE)range: < 0
- (no CPE)range: < 0
- (no CPE)range: < 0
- (no CPE)range: < 0
- (no CPE)range: < 0
- (no CPE)range: < 0
- (no CPE)range: < 0
- (no CPE)range: < 0
- (no CPE)range: < 0
- (no CPE)range: < 0
- (no CPE)range: < 0
- (no CPE)range: < 5.0.9
- (no CPE)range: < 5.0.6-150000.3.3.1
- (no CPE)range: < 5.0.6-150000.3.3.1
- (no CPE)range: < 5.0.6-150000.3.3.1
- (no CPE)range: < 5.0.6-150000.3.3.1
- (no CPE)range: < 5.0.6-150000.3.3.1
- (no CPE)range: < 5.0.6-150000.3.3.1
- (no CPE)range: < 5.0.6-20.8.1
- (no CPE)range: < 5.0.6-150000.3.3.1
- (no CPE)range: < 5.0.6-20.8.1
- (no CPE)range: < 5.0.6-20.8.1
- (no CPE)range: < 5.0.6-150000.3.3.1
- (no CPE)range: < 5.0.6-150000.3.3.1
Patches
17c618b0bbaffMerge pull request #236 from cdcadman/cve_2023_26112
2 files changed · +10 −2
src/configobj/validate.py+1 −1 modified@@ -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)
src/tests/test_validate_errors.py+9 −1 modified@@ -3,7 +3,7 @@ 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)
Vulnerability mechanics
Generated on May 9, 2026. Inputs: CWE entries + fix-commit diffs from this CVE's patches. Citations validated against bundle.
References
12- github.com/advisories/GHSA-c33w-24p9-8m24ghsaADVISORY
- nvd.nist.gov/vuln/detail/CVE-2023-26112ghsaADVISORY
- github.com/DiffSK/configobj/commit/7c618b0bbaff6ecaca51a6f05b29795d1377a4a5ghsaWEB
- github.com/DiffSK/configobj/issues/232ghsaWEB
- lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/6BO4RLMYEJODCNUE3DJIIUUFVTPAG6VNghsaWEB
- lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/NZHY7B33EFY4LESP2NI4APQUPRROTAZKghsaWEB
- lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/PYU4IHVLOTYMFPH7KDOJGKZQR4GKWPFKghsaWEB
- pypi.org/project/configobj/5.0.9ghsaWEB
- security.snyk.io/vuln/SNYK-PYTHON-CONFIGOBJ-3252494ghsaWEB
- lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/6BO4RLMYEJODCNUE3DJIIUUFVTPAG6VN/mitre
- lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/NZHY7B33EFY4LESP2NI4APQUPRROTAZK/mitre
- lists.fedoraproject.org/archives/list/package-announce@lists.fedoraproject.org/message/PYU4IHVLOTYMFPH7KDOJGKZQR4GKWPFK/mitre
News mentions
0No linked articles in our index yet.