Release date:
2026-09-01 11:50:05 UTC
Description:
* SECURITY UPDATE: CPU denial-of-service in csv.Sniffer. Two independent
regexes in Sniffer._guess_quote_and_delimiter() ran in super-linear time
on samples reachable from the public csv.Sniffer.sniff() API (CWE-1176,
algorithmic complexity). The quoted-field probe matched a field body with
a lazy ".*?" under re.DOTALL, so a closing quote not followed by a
delimiter was retried against every later quote in the sample: quadratic.
The doubled-quote probe dq_regexp was unanchored, rescanned leading
whitespace and ran even when no delimiter had been found, which is
exponential on a sample carrying a run of quote characters.
- debian/patches/CVE-2026-18503.patch: backport of cpython 19e5024518
(gh-109638, GH-154868) and fd78b565 (gh-98820, GH-154867), both in
their upstream 3.10-branch form. Both commits are part of Python
3.10.21, the release the CVE record names as fixing the "0 to <
3.10.21" range, and gh-98820 alone leaves the doubled-quote probe
exponential: with it applied on its own, sniff() on
'"",'*100 + '"'*100 + '0' + '"'*100 + '0', on '"a"\n' + ' '*100000
with delimiters=',;', and on '"a" "b"\n' + ' '*100000 each still runs
unbounded inside a single C-level re call. Field bodies are now matched
by unrolled, unambiguous loops that cannot backtrack, the doubled-quote
probe is anchored on whole fields and skipped when no delimiter was
found, and sniff() normalises CRLF and CR to LF first so the probe's
"$" means end of record. The 3.10 commits are used rather than the
3.11+ ones, which express the same fix with a possessive quantifier
that Python 3.7's re module does not support.
- CVE-2026-18503
* The Misc/NEWS.d fragments of both commits are omitted; this version
ships a single Misc/NEWS file.
Updated packages:
-
alt-python37_3.7.17-31_amd64.deb
sha:8940bac60b999d59367741dfcc50876946537164
-
alt-python37-debug_3.7.17-31_amd64.deb
sha:d121e52eceea9d3d8957c18b140f161aae64473e
-
alt-python37-devel_3.7.17-31_amd64.deb
sha:1b5987b9b039e59d3e34eaeebfcb1e0f9c1577cb
-
alt-python37-libs_3.7.17-31_amd64.deb
sha:0ccdecba54318980e4ad4d947b8023419a94a57a
-
alt-python37-test_3.7.17-31_amd64.deb
sha:22eeb335ceb287424423658ad5fcd53f0ee41058
-
alt-python37-tkinter_3.7.17-31_amd64.deb
sha:c6d24697c1335407b5f6ad89fac66681ff3842dd
-
alt-python37-tools_3.7.17-31_amd64.deb
sha:c25d0564bfde28bb2ed63c5802006777ac38aed9
-
alt-python37_3.7.17-31_arm64.deb
sha:3f5c6d6f0b7a5edf08c59cb0bbb1b6442cee4018
-
alt-python37-debug_3.7.17-31_arm64.deb
sha:bf10945abe3e70c8c18bd8c97d0b6fa44d509b27
-
alt-python37-devel_3.7.17-31_arm64.deb
sha:1daccb161e58edbb40a54590da21cfaa81914eb2
-
alt-python37-libs_3.7.17-31_arm64.deb
sha:1ee99c28effebefd3115b99e10c9fabcc44d3533
-
alt-python37-test_3.7.17-31_arm64.deb
sha:28917b5ce6b4672c9dd4e063693455556953aff7
-
alt-python37-tkinter_3.7.17-31_arm64.deb
sha:cddac69e152a614b714211a119f88b412a74ed2e
-
alt-python37-tools_3.7.17-31_arm64.deb
sha:9d25a166c1d89e4572afa8b0fbad5ffdfb2f8fc2
Notes:
This page is generated automatically and has not been checked for errors. For clarification or
corrections please contact the
CloudLinux Packaging Team.