From ab8704a8e05e2f926c10f994e4085e8726048fa4 Mon Sep 17 00:00:00 2001
From: Joshua Swanson <22283299+joshuaswanson@users.noreply.github.com>
Date: Tue, 7 Apr 2026 16:10:34 +0200
Subject: [PATCH] gh-146333: Fix quadratic regex backtracking in configparser
option parsing (GH-146399)
Use negative lookahead in option regex to prevent backtracking, and to avoid changing logic outside the regexes (since people could use the regex directly).
(cherry picked from commit 7e0a0be4097f9d29d66fe23f5af86f18a34ed7dd)
Co-authored-by: Joshua Swanson <22283299+joshuaswanson@users.noreply.github.com>
---
Lib/configparser.py | 8 ++++++--
Lib/test/test_configparser.py | 20 +++++++++++++++++++
...3-25-00-51-03.gh-issue-146333.LqdL__bn.rst | 3 +++
3 files changed, 29 insertions(+), 2 deletions(-)
create mode 100644 Misc/NEWS.d/next/Security/2026-03-25-00-51-03.gh-issue-146333.LqdL__bn.rst
diff --git a/Lib/configparser.py b/Lib/configparser.py
index d435a5c2fe0da2..e76647d339e913 100644
--- a/Lib/configparser.py
+++ b/Lib/configparser.py
@@ -613,7 +613,9 @@ class RawConfigParser(MutableMapping):
\] # ]
"""
_OPT_TMPL = r"""
- (?P