Release date:
2026-09-02 17:33:18 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.6'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-python36_3.6.15-46_amd64.deb
sha:ee2f2cc5910412f61ff01094e5179c49c22dd669
-
alt-python36-debug_3.6.15-46_amd64.deb
sha:9d679eefaf8079d86b2ccb36b485878872b97c28
-
alt-python36-devel_3.6.15-46_amd64.deb
sha:3d1279b8d1c6e537fc24b26e031711c00e38f271
-
alt-python36-libs_3.6.15-46_amd64.deb
sha:2998e6fdd19d1293aaa26458535b35a6322bf2ae
-
alt-python36-test_3.6.15-46_amd64.deb
sha:d2ba0b50ce96a396584f8b02d85ba8aeba110138
-
alt-python36-tkinter_3.6.15-46_amd64.deb
sha:427e0f9666e6b45f16689976e181c7cd756e43d4
-
alt-python36-tools_3.6.15-46_amd64.deb
sha:6d6c58833fad1b89333c8edc43f8a01b4d917bdb
-
alt-python36_3.6.15-46_arm64.deb
sha:1973ee405b0d2f28ea6cb2d5f5d505afd4eccde6
-
alt-python36-debug_3.6.15-46_arm64.deb
sha:2fac22860a0806e38e3a283ce21450b8567240d3
-
alt-python36-devel_3.6.15-46_arm64.deb
sha:c48abab3bcb28a29e9ea807d9d419dc4b06989fc
-
alt-python36-libs_3.6.15-46_arm64.deb
sha:867e6da10c58501a1d2ac07596e2db98990d7419
-
alt-python36-test_3.6.15-46_arm64.deb
sha:bb84dcf89959b0b374d8839b139a37934715b8b2
-
alt-python36-tkinter_3.6.15-46_arm64.deb
sha:c54343e839acb24e4db39b805d90382098814cb6
-
alt-python36-tools_3.6.15-46_arm64.deb
sha:7d947ee1d256236a7a900f69430ffb5c19cedf53
Notes:
This page is generated automatically and has not been checked for errors. For clarification or
corrections please contact the
CloudLinux Packaging Team.