From af2f5189a12888afa4e93243653c331e9fffddb5 Mon Sep 17 00:00:00 2001
From: "Miss Islington (bot)"
<31488909+miss-islington@users.noreply.github.com>
Date: Sun, 12 Apr 2026 02:05:10 +0200
Subject: [PATCH] [3.14] gh-146333: Fix quadratic regex backtracking in
configparser option parsing (GH-146399) (#148287)
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 d435a5c2fe0d..e76647d339e9 100644
--- a/Lib/configparser.py
+++ b/Lib/configparser.py
@@ -613,7 +613,9 @@ class RawConfigParser(MutableMapping):
\] # ]
"""
_OPT_TMPL = r"""
- (?P