[CLSA-2026:1788263042] Fix CVE(s): CVE-2026-18503
Type:
security
Severity:
Low
Release date:
2026-09-01 11:44:14 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.
CVEs fixed:
Updated packages:
  • alt-python37_3.7.17-31_amd64.deb
    sha:966b76eb3a8b3cae7fd3d7521f156626571d02d7
  • alt-python37-debug_3.7.17-31_amd64.deb
    sha:d1e9e3db2435a06e4792f14f6f01a792299f33c1
  • alt-python37-devel_3.7.17-31_amd64.deb
    sha:2e27819a6faeac840bdcc0a784c0ae975bc8259e
  • alt-python37-libs_3.7.17-31_amd64.deb
    sha:d6e0fc8162c7db46ec50c6f78cca2934584ff6c0
  • alt-python37-test_3.7.17-31_amd64.deb
    sha:95554d55287411911c472eeccaf101cb6557dd7b
  • alt-python37-tkinter_3.7.17-31_amd64.deb
    sha:a52e0e8f428e057b5e49ad3dcea0d7b753e22efb
  • alt-python37-tools_3.7.17-31_amd64.deb
    sha:c25d0564bfde28bb2ed63c5802006777ac38aed9
  • alt-python37_3.7.17-31_arm64.deb
    sha:44f103703568f5830fd328b6d2a5d642c1ab875f
  • alt-python37-debug_3.7.17-31_arm64.deb
    sha:5a97616a358ab1ff207f18c8830636ecbfe06e37
  • alt-python37-devel_3.7.17-31_arm64.deb
    sha:412bf2fca0776a3dba8ef109f38bd88242da7deb
  • alt-python37-libs_3.7.17-31_arm64.deb
    sha:3ee5a4ad0576112220c791e9c1b54f25bbca9814
  • alt-python37-test_3.7.17-31_arm64.deb
    sha:ce136ff06a4195e3f47edc1caede5b96b638483b
  • alt-python37-tkinter_3.7.17-31_arm64.deb
    sha:71bf9ca5d5b16e7b6a2b09a99f51cbd2f442bb32
  • 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.