CVE-2025-6069
Medium · 4.3CVSS
4.3
EPSS
0.6%
Published
Jun 17, 2025
CISA due date
—
Cloudanix analysis
Python's built-in HTML reading tool can be overwhelmed by cleverly broken web page data, potentially slowing down or stopping services that rely on it.
- Exploitation
- Remote Authenticated
- Attacker needs
- Low Privilege
- Complexity
- Moderate
- Impact
- Denial Of Service
- Component
- Library
- Class
- Denial of service
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The html.parser.HTMLParser class exhibits worst-case quadratic complexity when processing certain crafted malformed HTML inputs, enabling CPU exhaustion and denial of service.
Why it matters to the business
Applications that parse untrusted HTML with the Python standard library may experience service degradation or outages, increasing operational costs and availability risks across a broad ecosystem of Python deployments.
How an attack unfolds
An attacker identifies an application endpoint that feeds untrusted data into html.parser.HTMLParser, supplies a specially malformed HTML payload engineered to trigger quadratic behavior, and sustains the input to exhaust CPU resources.
How to fix it
Upgrade Python/cpython to the commit 4455cbabf991e202185a25a631af206f60bbc949 or later; rebuild and redeploy affected applications with the patched interpreter.
How to confirm the fix worked
Confirm the running Python interpreter contains commit 4455cbabf991e202185a25a631af206f60bbc949, then execute parsing benchmarks against known quadratic-triggering inputs to verify linear performance.
Typical attack path
- Locate Python applications or services that invoke html.parser.HTMLParser on external input
- Craft malformed HTML that forces quadratic parsing paths
- Transmit the payload via network-accessible interfaces
- Monitor for resource consumption and repeat submissions to sustain denial of service
How to detect it
Inspect Python process CPU profiles during HTML parsing windows, review application logs for unusually large or malformed HTML submissions coinciding with performance issues, and correlate with network traffic to parser endpoints.
What your security team should do
- Apply the fixed commit 4455cbabf991e202185a25a631af206f60bbc949 immediately to all Python environments
- Audit codebases for direct or indirect use of html.parser on untrusted data
- Consider replacing html.parser with more robust parsers for high-risk inputs
- Establish monitoring for anomalous CPU usage in Python processes handling HTML
The record
The html.parser.HTMLParser class had worse-case quadratic complexity when processing certain crafted malformed inputs potentially leading to amplified denial-of-service.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:8 | python39 | 0 | 3.9.25-2.module_el8.10.0+4083+53cad1fb |
| AlmaLinux:8 | python39-Cython | 0 | 0.29.21-5.module_el8.6.0+2780+a40f65e1 |
| AlmaLinux:8 | python39-Cython | 0 | 0.29.21-5.module_el8.6.0+3248+c431e88c |
| AlmaLinux:8 | python39-PyMySQL | 0 | 0.10.1-2.module_el8.6.0+2780+a40f65e1 |
| AlmaLinux:8 | python39-attrs | 0 | 20.3.0-2.module_el8.6.0+2780+a40f65e1 |
| AlmaLinux:8 | python39-cffi | 0 | 1.14.3-2.module_el8.6.0+2780+a40f65e1 |
| AlmaLinux:8 | python39-cffi | 0 | 1.14.3-2.module_el8.6.0+3248+c431e88c |
| AlmaLinux:8 | python39-chardet | 0 | 3.0.4-19.module_el8.6.0+2780+a40f65e1 |
| AlmaLinux:8 | python39-cryptography | 0 | 3.3.1-3.module_el8.10.0+3765+2f9a457d |
| AlmaLinux:8 | python39-debug | 0 | 3.9.25-2.module_el8.10.0+4083+53cad1fb |
| AlmaLinux:8 | python39-devel | 0 | 3.9.25-2.module_el8.10.0+4083+53cad1fb |
| AlmaLinux:8 | python39-idle | 0 | 3.9.25-2.module_el8.10.0+4083+53cad1fb |
| AlmaLinux:8 | python39-idna | 0 | 2.10-4.module_el8.10.0+3849+a48d89aa |
| AlmaLinux:8 | python39-iniconfig | 0 | 1.1.1-2.module_el8.6.0+2780+a40f65e1 |
| AlmaLinux:8 | python39-libs | 0 | 3.9.25-2.module_el8.10.0+4083+53cad1fb |
| AlmaLinux:8 | python39-lxml | 0 | 4.6.5-1.module_el8.6.0+2780+a40f65e1 |
| AlmaLinux:8 | python39-lxml | 0 | 4.6.5-1.module_el8.6.0+3248+c431e88c |
| AlmaLinux:8 | python39-mod_wsgi | 0 | 4.7.1-7.module_el8.10.0+3989+a618fe15.1 |
| AlmaLinux:8 | python39-more-itertools | 0 | 8.5.0-2.module_el8.6.0+2780+a40f65e1 |
| AlmaLinux:8 | python39-numpy | 0 | 1.19.4-3.module_el8.6.0+2780+a40f65e1 |
| AlmaLinux:8 | python39-numpy | 0 | 1.19.4-3.module_el8.6.0+3248+c431e88c |
| AlmaLinux:8 | python39-numpy-doc | 0 | 1.19.4-3.module_el8.6.0+2780+a40f65e1 |
| AlmaLinux:8 | python39-numpy-f2py | 0 | 1.19.4-3.module_el8.6.0+2780+a40f65e1 |
| AlmaLinux:8 | python39-numpy-f2py | 0 | 1.19.4-3.module_el8.6.0+3248+c431e88c |
| AlmaLinux:8 | python39-packaging | 0 | 20.4-4.module_el8.6.0+2780+a40f65e1 |
| AlmaLinux:8 | python39-pip | 0 | 20.2.4-9.module_el8.10.0+3765+2f9a457d |
| AlmaLinux:8 | python39-pip-wheel | 0 | 20.2.4-9.module_el8.10.0+3765+2f9a457d |
| AlmaLinux:8 | python39-pluggy | 0 | 0.13.1-3.module_el8.6.0+2780+a40f65e1 |
| AlmaLinux:8 | python39-ply | 0 | 3.11-10.module_el8.6.0+2780+a40f65e1 |
| AlmaLinux:8 | python39-psutil | 0 | 5.8.0-4.module_el8.6.0+2780+a40f65e1 |
| AlmaLinux:8 | python39-psutil | 0 | 5.8.0-4.module_el8.6.0+3248+c431e88c |
| AlmaLinux:8 | python39-psycopg2 | 0 | 2.8.6-3.module_el8.10.0+3765+2f9a457d |
| AlmaLinux:8 | python39-psycopg2-doc | 0 | 2.8.6-3.module_el8.10.0+3765+2f9a457d |
| AlmaLinux:8 | python39-psycopg2-tests | 0 | 2.8.6-3.module_el8.10.0+3765+2f9a457d |
| AlmaLinux:8 | python39-py | 0 | 1.10.0-1.module_el8.6.0+2780+a40f65e1 |
| AlmaLinux:8 | python39-pybind11 | 0 | 2.7.1-1.module_el8.6.0+2780+a40f65e1 |
| AlmaLinux:8 | python39-pybind11 | 0 | 2.7.1-1.module_el8.6.0+3248+c431e88c |
| AlmaLinux:8 | python39-pybind11-devel | 0 | 2.7.1-1.module_el8.6.0+2780+a40f65e1 |
| AlmaLinux:8 | python39-pybind11-devel | 0 | 2.7.1-1.module_el8.6.0+3248+c431e88c |
| AlmaLinux:8 | python39-pycparser | 0 | 2.20-3.module_el8.6.0+2780+a40f65e1 |
| AlmaLinux:8 | python39-pyparsing | 0 | 2.4.7-5.module_el8.6.0+2780+a40f65e1 |
| AlmaLinux:8 | python39-pysocks | 0 | 1.7.1-4.module_el8.6.0+2780+a40f65e1 |
| AlmaLinux:8 | python39-pytest | 0 | 6.0.2-2.module_el8.6.0+2780+a40f65e1 |
| AlmaLinux:8 | python39-pyyaml | 0 | 5.4.1-1.module_el8.6.0+2780+a40f65e1 |
| AlmaLinux:8 | python39-pyyaml | 0 | 5.4.1-1.module_el8.6.0+3248+c431e88c |
| AlmaLinux:8 | python39-requests | 0 | 2.25.0-3.module_el8.9.0+3634+fb2a896c |
| AlmaLinux:8 | python39-rpm-macros | 0 | 3.9.25-2.module_el8.10.0+4083+53cad1fb |
| AlmaLinux:8 | python39-scipy | 0 | 1.5.4-5.module_el8.9.0+3634+fb2a896c |
| AlmaLinux:8 | python39-setuptools | 0 | 50.3.2-7.module_el8.10.0+4040+9207bbc0 |
| AlmaLinux:8 | python39-setuptools-wheel | 0 | 50.3.2-7.module_el8.10.0+4040+9207bbc0 |
| AlmaLinux:8 | python39-six | 0 | 1.15.0-3.module_el8.6.0+2780+a40f65e1 |
| AlmaLinux:8 | python39-test | 0 | 3.9.25-2.module_el8.10.0+4083+53cad1fb |
| AlmaLinux:8 | python39-tkinter | 0 | 3.9.25-2.module_el8.10.0+4083+53cad1fb |
| AlmaLinux:8 | python39-toml | 0 | 0.10.1-5.module_el8.6.0+2780+a40f65e1 |
| AlmaLinux:8 | python39-urllib3 | 0 | 1.25.10-5.module_el8.10.0+3765+2f9a457d |
| AlmaLinux:8 | python39-wcwidth | 0 | 0.2.5-3.module_el8.6.0+2780+a40f65e1 |
| AlmaLinux:8 | python39-wheel | 0 | 1:0.35.1-4.module_el8.6.0+2780+a40f65e1 |
| AlmaLinux:8 | python39-wheel-wheel | 0 | 1:0.35.1-4.module_el8.6.0+2780+a40f65e1 |
| AlmaLinux:9 | python-unversioned-command | 0 | 3.9.25-2.el9_7 |
| AlmaLinux:9 | python3 | 0 | 3.9.25-2.el9_7 |
| AlmaLinux:9 | python3-debug | 0 | 3.9.25-2.el9_7 |
| AlmaLinux:9 | python3-devel | 0 | 3.9.25-2.el9_7 |
| AlmaLinux:9 | python3-idle | 0 | 3.9.25-2.el9_7 |
| AlmaLinux:9 | python3-libs | 0 | 3.9.25-2.el9_7 |
| AlmaLinux:9 | python3-test | 0 | 3.9.25-2.el9_7 |
| AlmaLinux:9 | python3-tkinter | 0 | 3.9.25-2.el9_7 |
| Bitnami | libpython | 0 | 3.13.6 |
| Bitnami | libpython | 0 | 3.9.24 |
| Bitnami | python | 0 | No fix |
| Bitnami | python | 0 | 3.9.24 |
| Bitnami | python-min | 0 | No fix |
| Bitnami | python-min | 0 | 3.9.24 |
| Chainguard | python-3.10 | 0 | 3.10.18-r1 |
| Chainguard | python-3.10-base | 0 | 3.10.18-r1 |
| Chainguard | python-3.10-base-dev | 0 | 3.10.18-r1 |
| Chainguard | python-3.10-dev | 0 | 3.10.18-r1 |
| Chainguard | python-3.10-doc | 0 | 3.10.18-r1 |
| Chainguard | python-3.11 | 0 | 3.11.13-r1 |
| Chainguard | python-3.11-base | 0 | 3.11.13-r1 |
| Chainguard | python-3.11-base-dev | 0 | 3.11.13-r1 |
| Chainguard | python-3.11-dev | 0 | 3.11.13-r1 |
| Chainguard | python-3.11-doc | 0 | 3.11.13-r1 |
| Chainguard | python-3.12 | 0 | 3.12.11-r1 |
| Chainguard | python-3.12-base | 0 | 3.12.11-r1 |
| Chainguard | python-3.12-base-dev | 0 | 3.12.11-r1 |
| Chainguard | python-3.12-dev | 0 | 3.12.11-r1 |
| Chainguard | python-3.12-doc | 0 | 3.12.11-r1 |
| Chainguard | python-3.12-privileged-netbindservice | 0 | 3.12.11-r1 |
| Chainguard | python-3.12-tk | 0 | 3.12.11-r1 |
| Chainguard | python-3.13 | 0 | 3.13.5-r1 |
| Chainguard | python-3.13-base | 0 | 3.13.5-r1 |
| Chainguard | python-3.13-base-dev | 0 | 3.13.5-r1 |
| Chainguard | python-3.13-dev | 0 | 3.13.5-r1 |
| Chainguard | python-3.13-doc | 0 | 3.13.5-r1 |
| Chainguard | python-3.13-privileged-netbindservice | 0 | 3.13.5-r1 |
| Chainguard | python-3.13-tk | 0 | 3.13.5-r1 |
| Chainguard | python-3.9 | 0 | 3.9.23-r1 |
| Chainguard | python-3.9-base | 0 | 3.9.23-r1 |
| Chainguard | python-3.9-base-dev | 0 | 3.9.23-r1 |
| Chainguard | python-3.9-default | 0 | 3.9.23-r1 |
| Chainguard | python-3.9-dev | 0 | 3.9.23-r1 |
| Chainguard | python-3.9-doc | 0 | 3.9.23-r1 |
| Debian:11 | jython | 0 | No fix |
| Debian:11 | pypy3 | 0 | No fix |
| Debian:11 | python2.7 | 0 | No fix |
| Debian:11 | python3.9 | 0 | No fix |
| Debian:12 | jython | 0 | No fix |
| Debian:12 | pypy3 | 0 | No fix |
| Debian:12 | python3.11 | 0 | No fix |
| Debian:13 | jython | 0 | No fix |
| Debian:13 | pypy3 | 0 | No fix |
| Debian:13 | python3.13 | 0 | No fix |
| Debian:14 | jython | 0 | No fix |
| Debian:14 | pypy3 | 0 | No fix |
| Debian:14 | python3.13 | 0 | 3.13.6-1 |
| SUSE:Enterprise Storage 7.1 | python3 | 0 | 3.6.15-150300.10.97.2 |
| SUSE:Enterprise Storage 7.1 | python3-core | 0 | 3.6.15-150300.10.97.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | python3 | 0 | 3.6.15-150300.10.97.2 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | python3-core | 0 | 3.6.15-150300.10.97.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS | python3 | 0 | 3.6.15-150300.10.97.2 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-ESPOS | python3-core | 0 | 3.6.15-150300.10.97.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS | python3 | 0 | 3.6.15-150300.10.97.2 |
| SUSE:Linux Enterprise High Performance Computing 15 SP4-LTSS | python3-core | 0 | 3.6.15-150300.10.97.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS | python3 | 0 | 3.6.15-150300.10.97.2 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-ESPOS | python3-core | 0 | 3.6.15-150300.10.97.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS | python3 | 0 | 3.6.15-150300.10.97.2 |
| SUSE:Linux Enterprise High Performance Computing 15 SP5-LTSS | python3-core | 0 | 3.6.15-150300.10.97.1 |
| SUSE:Linux Enterprise Micro 5.2 | python3 | 0 | 3.6.15-150300.10.97.2 |
| SUSE:Linux Enterprise Micro 5.2 | python3-core | 0 | 3.6.15-150300.10.97.1 |
| SUSE:Linux Enterprise Micro 5.3 | python3 | 0 | 3.6.15-150300.10.97.2 |
| SUSE:Linux Enterprise Micro 5.3 | python3-core | 0 | 3.6.15-150300.10.97.1 |
| SUSE:Linux Enterprise Micro 5.4 | python3 | 0 | 3.6.15-150300.10.97.2 |
| SUSE:Linux Enterprise Micro 5.4 | python3-core | 0 | 3.6.15-150300.10.97.1 |
| SUSE:Linux Enterprise Micro 5.5 | python3 | 0 | 3.6.15-150300.10.97.2 |
| SUSE:Linux Enterprise Micro 5.5 | python3-core | 0 | 3.6.15-150300.10.97.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | python3 | 0 | 3.6.15-150300.10.97.2 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | python3-core | 0 | 3.6.15-150300.10.97.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP6 | python311-core | 0 | 3.11.13-150600.3.35.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP7 | python3 | 0 | 3.6.15-150300.10.97.2 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP7 | python3-core | 0 | 3.6.15-150300.10.97.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP7 | python311-core | 0 | 3.11.13-150600.3.35.1 |
| SUSE:Linux Enterprise Module for Development Tools 15 SP6 | python3-core | 0 | 3.6.15-150300.10.97.1 |
| SUSE:Linux Enterprise Module for Development Tools 15 SP7 | python3-core | 0 | 3.6.15-150300.10.97.1 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP6 | python | 0 | 2.7.18-150000.80.1 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP6 | python-base | 0 | 2.7.18-150000.80.1 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP7 | python | 0 | 2.7.18-150000.80.1 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP7 | python-base | 0 | 2.7.18-150000.80.1 |
| SUSE:Linux Enterprise Module for Python 3 15 SP6 | python311 | 0 | 3.11.13-150600.3.35.2 |
| SUSE:Linux Enterprise Module for Python 3 15 SP6 | python311-core | 0 | 3.11.13-150600.3.35.1 |
| SUSE:Linux Enterprise Module for Python 3 15 SP6 | python312 | 0 | 3.12.11-150600.3.33.1 |
| SUSE:Linux Enterprise Module for Python 3 15 SP6 | python312-core | 0 | 3.12.11-150600.3.33.1 |
| SUSE:Linux Enterprise Module for Python 3 15 SP7 | python311 | 0 | 3.11.13-150600.3.35.2 |
| SUSE:Linux Enterprise Module for Python 3 15 SP7 | python311-core | 0 | 3.11.13-150600.3.35.1 |
| SUSE:Linux Enterprise Server 12 SP5-LTSS | python36 | 0 | 3.6.15-84.1 |
| SUSE:Linux Enterprise Server 12 SP5-LTSS | python36-core | 0 | 3.6.15-84.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | python3 | 0 | 3.6.15-150300.10.97.2 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | python3-core | 0 | 3.6.15-150300.10.97.1 |
| SUSE:Linux Enterprise Server 15 SP4-LTSS | python3 | 0 | 3.6.15-150300.10.97.2 |
| SUSE:Linux Enterprise Server 15 SP4-LTSS | python3-core | 0 | 3.6.15-150300.10.97.1 |
| SUSE:Linux Enterprise Server 15 SP5-LTSS | python3 | 0 | 3.6.15-150300.10.97.2 |
| SUSE:Linux Enterprise Server 15 SP5-LTSS | python3-core | 0 | 3.6.15-150300.10.97.1 |
| SUSE:Linux Enterprise Server LTSS Extended Security 12 SP5 | python | 0 | 2.7.18-33.50.1 |
| SUSE:Linux Enterprise Server LTSS Extended Security 12 SP5 | python-base | 0 | 2.7.18-33.50.1 |
| SUSE:Linux Enterprise Server LTSS Extended Security 12 SP5 | python-doc | 0 | 2.7.18-33.50.1 |
| SUSE:Linux Enterprise Server LTSS Extended Security 12 SP5 | python36 | 0 | 3.6.15-84.1 |
| SUSE:Linux Enterprise Server LTSS Extended Security 12 SP5 | python36-core | 0 | 3.6.15-84.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | python3 | 0 | 3.6.15-150300.10.97.2 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | python3-core | 0 | 3.6.15-150300.10.97.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP4 | python3 | 0 | 3.6.15-150300.10.97.2 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP4 | python3-core | 0 | 3.6.15-150300.10.97.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP5 | python3 | 0 | 3.6.15-150300.10.97.2 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP5 | python3-core | 0 | 3.6.15-150300.10.97.1 |
| SUSE:Manager Proxy 4.3 | python3 | 0 | 3.6.15-150300.10.97.2 |
| SUSE:Manager Proxy 4.3 | python3-core | 0 | 3.6.15-150300.10.97.1 |
| SUSE:Manager Server 4.3 | python3 | 0 | 3.6.15-150300.10.97.2 |
| SUSE:Manager Server 4.3 | python3-core | 0 | 3.6.15-150300.10.97.1 |
| Wolfi | python-3.10 | 0 | 3.10.18-r1 |
| Wolfi | python-3.10-base | 0 | 3.10.18-r1 |
| Wolfi | python-3.10-base-dev | 0 | 3.10.18-r1 |
| Wolfi | python-3.10-dev | 0 | 3.10.18-r1 |
| Wolfi | python-3.10-doc | 0 | 3.10.18-r1 |
| Wolfi | python-3.11 | 0 | 3.11.13-r1 |
| Wolfi | python-3.11-base | 0 | 3.11.13-r1 |
| Wolfi | python-3.11-base-dev | 0 | 3.11.13-r1 |
| Wolfi | python-3.11-dev | 0 | 3.11.13-r1 |
| Wolfi | python-3.11-doc | 0 | 3.11.13-r1 |
| Wolfi | python-3.12 | 0 | 3.12.11-r1 |
| Wolfi | python-3.12-base | 0 | 3.12.11-r1 |
| Wolfi | python-3.12-base-dev | 0 | 3.12.11-r1 |
| Wolfi | python-3.12-dev | 0 | 3.12.11-r1 |
| Wolfi | python-3.12-doc | 0 | 3.12.11-r1 |
| Wolfi | python-3.12-privileged-netbindservice | 0 | 3.12.11-r1 |
| Wolfi | python-3.12-tk | 0 | 3.12.11-r1 |
| Wolfi | python-3.13 | 0 | 3.13.5-r1 |
| Wolfi | python-3.13-base | 0 | 3.13.5-r1 |
| Wolfi | python-3.13-base-dev | 0 | 3.13.5-r1 |
| Wolfi | python-3.13-dev | 0 | 3.13.5-r1 |
| Wolfi | python-3.13-doc | 0 | 3.13.5-r1 |
| Wolfi | python-3.13-privileged-netbindservice | 0 | 3.13.5-r1 |
| Wolfi | python-3.13-tk | 0 | 3.13.5-r1 |
Related vulnerabilities
- CVE-2025-6075 If the value passed to os.path.expandvars() is user-controlled a performance degradation… Also affects python39
- CVE-2025-8291 The 'zipfile' module would not check the validity of the ZIP64 End of Central Directory… Also affects python39
- CVE-2025-8194 There is a defect in the CPython “tarfile” module affecting the “TarFile” extraction and… Also affects python39
- CVE-2025-4517 Allows arbitrary filesystem writes outside the extraction directory during extraction… Also affects python39
- CVE-2025-4138 Allows the extraction filter to be ignored, allowing symlink targets to point outside the… Also affects python39
- CVE-2025-4330 Allows the extraction filter to be ignored, allowing symlink targets to point outside the… Also affects python39
- CVE-2025-4435 When using a TarFile.errorlevel = 0 and extracting with a filter the documented behavior… Also affects python39
- CVE-2025-47273 setuptools has a path traversal vulnerability in PackageIndex.download that leads to… Also affects python39