From c4fcd9c3798feb76e72b281c0e1d4900fbb70c93 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] [3.13] 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 71f842b3902e8c..3968ac45eed56b 100644
--- a/Lib/configparser.py
+++ b/Lib/configparser.py
@@ -600,7 +600,9 @@ class RawConfigParser(MutableMapping):
\] # ]
"""
_OPT_TMPL = r"""
- (?P