CVE-2025-66471
NoneCVSS
—
EPSS
0.7%
Published
Dec 5, 2025
CISA due date
—
Cloudanix analysis
A maliciously compressed web response can cause some Python applications to use too many resources and become unavailable.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Moderate
- Impact
- Denial Of Service
- Component
- Library
- Class
- Denial of service
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The flaw is a denial-of-service issue in urllib3's Streaming API handling of highly compressed HTTP response bodies. When an application streams compressed content from an untrusted or attacker-controlled endpoint, urllib3 may process decompressed data in a way that consumes excessive memory, CPU, or application resources. The impact is availability-focused: it does not indicate code execution or data disclosure, but it can cause the consuming Python process, worker, job, or service to slow down, crash, or be terminated by resource limits.
Why it matters to the business
Applications that use urllib3 to stream data from external or semi-trusted HTTP services could experience outages, failed background jobs, degraded integrations, or instability if they receive maliciously compressed responses. The current intelligence indicates low exploitation probability, no known CISA KEV listing, no ransomware association, and no known mature public exploit, so this should be prioritized as routine-to-moderate patching unless the application frequently fetches large or untrusted compressed content.
How an attack unfolds
An attacker first identifies an application workflow that uses urllib3's Streaming API to retrieve HTTP content from a location the attacker controls or can influence, such as a URL submission feature, webhook integration, package/content fetcher, feed parser, file ingestion pipeline, proxy-like service, or backend integration. The attacker hosts or injects an HTTP response with compression enabled and a payload that is small on the wire but expands dramatically when decompressed. When the vulnerable urllib3 client streams the response, the application spends excessive resources processing the compressed data. Repeated or parallel requests can amplify the effect, exhausting memory, CPU, worker pools, or job queues and causing service degradation or denial of service.
How to fix it
Upgrade urllib3 to a version that includes the upstream fix. For source-based deployments using the urllib3 Git repository, ensure the code includes commit 720f484b605f18887a48eef448d0084e2b76902d or a later trusted release containing that fix. Rebuild and redeploy any applications, containers, serverless packages, virtual environments, or vendor bundles that include urllib3. Where immediate patching is not possible, mitigate by restricting backend URL-fetching to trusted destinations, disabling automatic decompression where feasible, enforcing maximum response size and decompressed-size limits, setting strict read timeouts, limiting streaming duration, applying worker memory limits, and blocking unexpectedly compressed responses from untrusted sources.
How to confirm the fix worked
Confirm dependency resolution shows a patched urllib3 build or source tree containing commit 720f484b605f18887a48eef448d0084e2b76902d or later. Validate both direct and transitive dependency locations, including virtual environments, container images, vendored libraries, build artifacts, and packaged application bundles. Run controlled tests against compressed streaming responses to verify the application enforces response-size, timeout, and memory limits without worker crashes. In production, verify that patched services have been redeployed and that no running processes continue to load older urllib3 code.
Typical attack path
- Find an application feature or integration that causes the backend to fetch attacker-controlled or attacker-influenced HTTP content using urllib3 streaming.
- Prepare an HTTP server or response that advertises compression, such as gzip, deflate, or Brotli where applicable, and serves a highly compressed payload with a large decompressed size.
- Trigger the vulnerable application to request the malicious URL or receive the malicious compressed response from an upstream source.
- Cause urllib3's Streaming API to process the compressed stream and consume excessive memory, CPU, or worker time.
- Repeat the request or run concurrent attempts to increase resource exhaustion and cause crashes, timeouts, queue buildup, or service unavailability.
How to detect it
Review application, proxy, egress, and runtime logs for signs that services using urllib3 fetched compressed HTTP responses shortly before crashes, timeouts, memory exhaustion, or worker restarts. Focus on workflows that accept external URLs or retrieve third-party content. Useful log sources include application request logs, outbound HTTP client logs, reverse proxy logs, egress proxy logs, container orchestrator events, process supervisor logs, kernel out-of-memory logs, APM traces, and job queue metrics. Look for repeated outbound requests to the same external host followed by high memory usage, Python MemoryError exceptions, container OOMKilled events, SIGKILL terminations, request timeouts, unusually long streaming reads, or a mismatch between small compressed transfer sizes and large application processing time. There are no known CVE-specific public exploit strings or malware artifacts associated with this issue, so detection should be behavior-based rather than signature-only.
- Content-Encoding: gzip
- Content-Encoding: deflate
- Content-Encoding: br
- MemoryError
- Killed
- OOMKilled
- Out of memory
- Cannot allocate memory
- signal 9
- SIGKILL
- urllib3.response
- urllib3.exceptions.ReadTimeoutError
- Read timed out
- ProtocolError
- IncompleteRead
- ChunkedEncodingError
What your security team should do
- Inventory applications and services that use urllib3, especially Python services that fetch, proxy, ingest, or stream HTTP content from user-supplied or third-party URLs.
- Prioritize patching internet-facing ingestion, webhook, feed-processing, proxy, crawler, file-import, and automation systems that retrieve untrusted compressed HTTP responses.
- Upgrade urllib3 to a patched version or source revision containing commit 720f484b605f18887a48eef448d0084e2b76902d, then rebuild and redeploy all affected artifacts.
- Add compensating controls for outbound HTTP fetchers: destination allowlists, maximum compressed and decompressed body sizes, strict timeouts, concurrency limits, and memory limits.
- Search logs and telemetry for unexplained memory exhaustion, worker restarts, timeout spikes, and compressed responses with very small transfer sizes but large processing impact.
- Because this is not currently in CISA KEV, has no known ransomware association, and has low EPSS, handle through normal vulnerability management unless local exposure to untrusted streaming content is high.
The record
urllib3 Streaming API improperly handles highly compressed data
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| PyPI | urllib3 | 1.0 | 2.6.0 |
| AlmaLinux:10 | python3-urllib3 | 0 | 1.26.19-2.el10_1.1 |
| AlmaLinux:8 | python3-urllib3 | 0 | 1.24.2-9.el8_10 |
| AlmaLinux:8 | python3.11-urllib3 | 0 | 1.26.12-6.el8_10 |
| AlmaLinux:8 | python3.12-urllib3 | 0 | 1.26.19-2.el8_10 |
| AlmaLinux:9 | python3-urllib3 | 0 | 1.26.5-6.el9_7.1 |
| AlmaLinux:9 | python3.11-urllib3 | 0 | 1.26.12-5.el9_7.1 |
| AlmaLinux:9 | python3.12-urllib3 | 0 | 1.26.19-1.el9_7.1 |
| Chainguard | airflow-2 | 0 | 2.11.0-r16 |
| Chainguard | airflow-2-bitnami-compat | 0 | 2.11.0-r16 |
| Chainguard | airflow-2-compat | 0 | 2.11.0-r16 |
| Chainguard | airflow-2-iamguarded-compat | 0 | 2.11.0-r16 |
| Chainguard | airflow-3 | 0 | 3.1.4-r0 |
| Chainguard | airflow-3-bitnami-compat | 0 | 3.1.4-r0 |
| Chainguard | airflow-3-compat | 0 | 3.1.4-r0 |
| Chainguard | airflow-3-iamguarded-compat | 0 | 3.1.4-r0 |
| Chainguard | airflow-core-2 | 0 | 2.11.0-r9 |
| Chainguard | airflow-core-2-compat | 0 | 2.11.0-r9 |
| Chainguard | airflow-core-2-oci-entrypoint | 0 | 2.11.0-r9 |
| Chainguard | airflow-core-3 | 0 | 3.1.3-r1 |
| Chainguard | airflow-core-3-compat | 0 | 3.1.3-r1 |
| Chainguard | airflow-core-3-oci-entrypoint | 0 | 3.1.3-r1 |
| Chainguard | ansible-operator-compat | 0 | 1.42.0-r3 |
| Chainguard | apache-beam-python-3.11-sdk | 0 | 2.69.0-r2 |
| Chainguard | authentik | 0 | 2025.10.2-r3 |
| Chainguard | authentik-go-server | 0 | 2025.10.2-r3 |
| Chainguard | az | 0 | 2.81.0-r1 |
| Chainguard | az-iamguarded-compat | 0 | 2.81.0-r1 |
| Chainguard | azure-functions-host | 0 | 4.1045.200-r0 |
| Chainguard | azure-functions-host-compat | 0 | 4.1045.200-r0 |
| Chainguard | azure-functions-host-nodejs-worker | 0 | 4.1045.200-r0 |
| Chainguard | barman | 0 | 3.16.2-r1 |
| Chainguard | barman-cloudnative-pg | 0 | 3.16.2-r1 |
| Chainguard | confluent-docker-utils | 0 | 0.0.162-r4 |
| Chainguard | dask-gateway | 0 | 2025.4.0-r7 |
| Chainguard | dask-gateway-server | 0 | 2025.4.0-r7 |
| Chainguard | dask-kubernetes | 0 | 2025.7.0-r2 |
| Chainguard | datadog-agent-7.71-fakeintake | 0 | 7.71.2-r6 |
| Chainguard | datadog-agent-7.71-jmx | 0 | 7.71.2-r6 |
| Chainguard | datadog-agent-7.71-oci-compat | 0 | 7.71.2-r6 |
| Chainguard | datadog-agent-7.71-s6-overlay | 0 | 7.71.2-r6 |
| Chainguard | datadog-agent-7.72-fakeintake | 0 | 7.72.4-r4 |
| Chainguard | datadog-agent-7.72-jmx | 0 | 7.72.4-r4 |
| Chainguard | datadog-agent-7.72-oci-compat | 0 | 7.72.4-r4 |
| Chainguard | datadog-agent-7.72-s6-overlay | 0 | 7.72.4-r4 |
| Chainguard | datadog-agent-7.73-fakeintake | 0 | 7.73.2-r0 |
| Chainguard | datadog-agent-7.73-jmx | 0 | 7.73.1-r0 |
| Chainguard | datadog-agent-7.73-oci-compat | 0 | 7.73.1-r0 |
| Chainguard | datadog-agent-7.73-s6-overlay | 0 | 7.73.2-r0 |
| Chainguard | datadog-agent-fips-7.71-fakeintake | 0 | 7.71.2-r5 |
| Chainguard | datadog-agent-fips-7.71-jmx | 0 | 7.71.2-r5 |
| Chainguard | datadog-agent-fips-7.71-oci-compat | 0 | 7.71.2-r5 |
| Chainguard | datadog-agent-fips-7.71-s6-overlay | 0 | 7.71.2-r5 |
| Chainguard | datadog-agent-fips-7.72-fakeintake | 0 | 7.72.4-r3 |
| Chainguard | datadog-agent-fips-7.72-jmx | 0 | 7.72.4-r3 |
| Chainguard | datadog-agent-fips-7.72-oci-compat | 0 | 7.72.4-r3 |
| Chainguard | datadog-agent-fips-7.72-s6-overlay | 0 | 7.72.4-r3 |
| Chainguard | datadog-agent-fips-7.73-fakeintake | 0 | 7.73.2-r0 |
| Chainguard | datadog-agent-fips-7.73-jmx | 0 | 7.73.2-r0 |
| Chainguard | datadog-agent-fips-7.73-oci-compat | 0 | 7.73.2-r0 |
| Chainguard | datadog-agent-fips-7.73-s6-overlay | 0 | 7.73.2-r0 |
| Chainguard | datadog-cluster-agent-7.71 | 0 | 7.71.2-r6 |
| Chainguard | datadog-cluster-agent-7.71-oci-compat | 0 | 7.71.2-r6 |
| Chainguard | datadog-cluster-agent-7.72 | 0 | 7.72.4-r4 |
| Chainguard | datadog-cluster-agent-7.72-oci-compat | 0 | 7.72.4-r4 |
| Chainguard | datadog-cluster-agent-7.73 | 0 | 7.73.2-r0 |
| Chainguard | datadog-cluster-agent-7.73-oci-compat | 0 | 7.73.1-r0 |
| Chainguard | datadog-cluster-agent-fips-7.71 | 0 | 7.71.2-r5 |
| Chainguard | datadog-cluster-agent-fips-7.71-oci-compat | 0 | 7.71.2-r5 |
| Chainguard | datadog-cluster-agent-fips-7.72 | 0 | 7.72.4-r3 |
| Chainguard | datadog-cluster-agent-fips-7.72-oci-compat | 0 | 7.72.4-r3 |
| Chainguard | datadog-cluster-agent-fips-7.73 | 0 | 7.73.2-r0 |
| Chainguard | datadog-cluster-agent-fips-7.73-oci-compat | 0 | 7.73.2-r0 |
| Chainguard | dogstatsd-7.71 | 0 | 7.71.2-r6 |
| Chainguard | dogstatsd-7.72 | 0 | 7.72.4-r4 |
| Chainguard | dogstatsd-7.73 | 0 | 7.73.2-r0 |
| Chainguard | emissary | 0 | 3.10.0-r14 |
| Chainguard | emissary-apiext | 0 | 3.10.0-r14 |
| Chainguard | emissary-oci-entrypoint | 0 | 3.10.0-r14 |
| Chainguard | ggshield | 0 | 1.48.0-r0 |
| Chainguard | gitaly-config-18.4 | 0 | 18.4.6-r0 |
| Chainguard | gitaly-config-18.5 | 0 | 18.5.3-r1 |
| Chainguard | gitaly-config-18.6 | 0 | 18.6.2-r0 |
| Chainguard | gitaly-config-18.7 | 0 | 18.7.0-r0 |
| Chainguard | gitlab-base-18.4 | 0 | 18.4.6-r0 |
| Chainguard | gitlab-base-18.5 | 0 | 18.5.3-r1 |
| Chainguard | gitlab-base-18.6 | 0 | 18.6.2-r0 |
| Chainguard | gitlab-base-18.7 | 0 | 18.7.0-r0 |
| Chainguard | gitlab-base-fips-18.4 | 0 | 18.4.5-r1 |
| Chainguard | gitlab-base-fips-18.5 | 0 | 18.5.4-r1 |
| Chainguard | gitlab-base-fips-18.6 | 0 | 18.6.2-r1 |
| Chainguard | gitlab-base-fips-18.7 | 0 | 18.7.0-r0 |
| Chainguard | gitlab-certificates-18.4 | 0 | 18.4.6-r0 |
| Chainguard | gitlab-certificates-18.5 | 0 | 18.5.4-r0 |
| Chainguard | gitlab-certificates-18.6 | 0 | 18.6.2-r0 |
| Chainguard | gitlab-certificates-18.7 | 0 | 18.7.0-r0 |
| Chainguard | gitlab-cfssl-self-sign-scripts-18.4 | 0 | 18.4.5-r1 |
| Chainguard | gitlab-cfssl-self-sign-scripts-18.5 | 0 | 18.5.3-r1 |
| Chainguard | gitlab-cfssl-self-sign-scripts-18.6 | 0 | 18.6.1-r1 |
| Chainguard | gitlab-cfssl-self-sign-scripts-18.7 | 0 | 18.7.0-r0 |
| Chainguard | gitlab-cng-18.4 | 0 | 18.4.5-r1 |
| Chainguard | gitlab-cng-18.5 | 0 | 18.5.3-r1 |
| Chainguard | gitlab-cng-18.6 | 0 | 18.6.2-r0 |
| Chainguard | gitlab-cng-18.7 | 0 | 18.7.0-r0 |
| Chainguard | gitlab-cng-fips-18.4 | 0 | 18.4.5-r1 |
| Chainguard | gitlab-cng-fips-18.5 | 0 | 18.5.4-r1 |
| Chainguard | gitlab-cng-fips-18.6 | 0 | 18.6.1-r1 |
| Chainguard | gitlab-cng-fips-18.7 | 0 | 18.7.0-r0 |
| Chainguard | gitlab-container-registry-18.4 | 0 | 18.4.6-r0 |
| Chainguard | gitlab-container-registry-18.5 | 0 | 18.5.4-r0 |
| Chainguard | gitlab-container-registry-18.6 | 0 | 18.6.2-r0 |
| Chainguard | gitlab-container-registry-18.7 | 0 | 18.7.0-r0 |
| Chainguard | gitlab-container-registry-fips-18.4 | 0 | 18.4.5-r1 |
| Chainguard | gitlab-container-registry-fips-18.5 | 0 | 18.5.4-r1 |
| Chainguard | gitlab-container-registry-fips-18.6 | 0 | 18.6.2-r1 |
| Chainguard | gitlab-container-registry-fips-18.7 | 0 | 18.7.0-r0 |
| Chainguard | gitlab-container-registry-scripts-18.4 | 0 | 18.4.6-r0 |
| Chainguard | gitlab-container-registry-scripts-18.5 | 0 | 18.5.4-r0 |
| Chainguard | gitlab-container-registry-scripts-18.6 | 0 | 18.6.1-r1 |
| Chainguard | gitlab-container-registry-scripts-18.7 | 0 | 18.7.0-r0 |
| Chainguard | gitlab-exporter-18.4 | 0 | 18.4.6-r0 |
| Chainguard | gitlab-exporter-18.5 | 0 | 18.5.4-r0 |
| Chainguard | gitlab-exporter-18.6 | 0 | 18.6.2-r0 |
| Chainguard | gitlab-exporter-18.7 | 0 | 18.7.0-r0 |
| Chainguard | gitlab-exporter-scripts-18.4 | 0 | 18.4.5-r1 |
| Chainguard | gitlab-exporter-scripts-18.5 | 0 | 18.5.4-r0 |
| Chainguard | gitlab-exporter-scripts-18.6 | 0 | 18.6.2-r0 |
| Chainguard | gitlab-exporter-scripts-18.7 | 0 | 18.7.0-r0 |
| Chainguard | gitlab-gitaly-scripts-18.4 | 0 | 18.4.5-r1 |
| Chainguard | gitlab-gitaly-scripts-18.5 | 0 | 18.5.3-r1 |
| Chainguard | gitlab-gitaly-scripts-18.6 | 0 | 18.6.2-r0 |
| Chainguard | gitlab-gitaly-scripts-18.7 | 0 | 18.7.0-r0 |
| Chainguard | gitlab-logger-18.4 | 0 | 18.4.6-r0 |
| Chainguard | gitlab-logger-18.5 | 0 | 18.5.4-r0 |
| Chainguard | gitlab-logger-18.6 | 0 | 18.6.2-r0 |
| Chainguard | gitlab-logger-18.7 | 0 | 18.7.0-r0 |
| Chainguard | gitlab-logger-fips-18.4 | 0 | 18.4.5-r1 |
| Chainguard | gitlab-logger-fips-18.5 | 0 | 18.5.4-r1 |
| Chainguard | gitlab-logger-fips-18.6 | 0 | 18.6.1-r1 |
| Chainguard | gitlab-logger-fips-18.7 | 0 | 18.7.0-r0 |
| Chainguard | gitlab-pages-scripts-18.4 | 0 | 18.4.5-r1 |
| Chainguard | gitlab-pages-scripts-18.5 | 0 | 18.5.3-r1 |
| Chainguard | gitlab-pages-scripts-18.6 | 0 | 18.6.2-r0 |
| Chainguard | gitlab-pages-scripts-18.7 | 0 | 18.7.0-r0 |
| Chainguard | gitlab-rails-scripts-18.4 | 0 | 18.4.5-r1 |
| Chainguard | gitlab-rails-scripts-18.5 | 0 | 18.5.3-r1 |
| Chainguard | gitlab-rails-scripts-18.6 | 0 | 18.6.2-r0 |
| Chainguard | gitlab-rails-scripts-18.7 | 0 | 18.7.0-r0 |
| Chainguard | gitlab-rails-scripts-fips-18.4 | 0 | 18.4.5-r1 |
| Chainguard | gitlab-rails-scripts-fips-18.5 | 0 | 18.5.4-r1 |
| Chainguard | gitlab-rails-scripts-fips-18.6 | 0 | 18.6.2-r0 |
| Chainguard | gitlab-rails-scripts-fips-18.7 | 0 | 18.7.0-r0 |
| Chainguard | gitlab-shell-18.4 | 0 | 18.4.6-r0 |
| Chainguard | gitlab-shell-18.5 | 0 | 18.5.3-r1 |
| Chainguard | gitlab-shell-18.6 | 0 | 18.6.2-r0 |
| Chainguard | gitlab-shell-18.7 | 0 | 18.7.0-r0 |
| Chainguard | gitlab-shell-fips-18.4 | 0 | 18.4.5-r1 |
| Chainguard | gitlab-shell-fips-18.5 | 0 | 18.5.4-r1 |
| Chainguard | gitlab-shell-fips-18.6 | 0 | 18.6.1-r1 |
| Chainguard | gitlab-shell-fips-18.7 | 0 | 18.7.0-r0 |
| Chainguard | gitlab-shell-scripts-18.4 | 0 | 18.4.5-r1 |
| Chainguard | gitlab-shell-scripts-18.5 | 0 | 18.5.3-r1 |
| Chainguard | gitlab-shell-scripts-18.6 | 0 | 18.6.2-r0 |
| Chainguard | gitlab-shell-scripts-18.7 | 0 | 18.7.0-r0 |
| Chainguard | gitlab-sidekiq-ce-18.4 | 0 | 18.4.6-r0 |
| Chainguard | gitlab-sidekiq-ce-18.5 | 0 | 18.5.3-r1 |
| Chainguard | gitlab-sidekiq-ce-18.6 | 0 | 18.6.2-r0 |
| Chainguard | gitlab-sidekiq-ce-18.7 | 0 | 18.7.0-r0 |
| Chainguard | gitlab-sidekiq-ce-fips-18.4 | 0 | 18.4.5-r1 |
| Chainguard | gitlab-sidekiq-ce-fips-18.5 | 0 | 18.5.3-r1 |
| Chainguard | gitlab-sidekiq-ce-fips-18.6 | 0 | 18.6.1-r1 |
| Chainguard | gitlab-sidekiq-ce-fips-18.7 | 0 | 18.7.0-r0 |
| Chainguard | gitlab-webservice-ce-18.4 | 0 | 18.4.6-r0 |
| Chainguard | gitlab-webservice-ce-18.5 | 0 | 18.5.3-r1 |
| Chainguard | gitlab-webservice-ce-18.6 | 0 | 18.6.2-r0 |
| Chainguard | gitlab-webservice-ce-18.7 | 0 | 18.7.0-r0 |
| Chainguard | gitlab-webservice-ce-fips-18.4 | 0 | 18.4.5-r1 |
| Chainguard | gitlab-webservice-ce-fips-18.5 | 0 | 18.5.3-r1 |
| Chainguard | gitlab-webservice-ce-fips-18.6 | 0 | 18.6.1-r1 |
| Chainguard | gitlab-webservice-ce-fips-18.7 | 0 | 18.7.0-r0 |
| Chainguard | gitlab-workhorse-scripts-18.4 | 0 | 18.4.6-r0 |
| Chainguard | gitlab-workhorse-scripts-18.5 | 0 | 18.5.4-r0 |
| Chainguard | gitlab-workhorse-scripts-18.6 | 0 | 18.6.2-r0 |
| Chainguard | gitlab-workhorse-scripts-18.7 | 0 | 18.7.0-r0 |
| Chainguard | gitlab-workhorse-scripts-fips-18.4 | 0 | 18.4.5-r1 |
| Chainguard | gitlab-workhorse-scripts-fips-18.5 | 0 | 18.5.4-r1 |
| Chainguard | gitlab-workhorse-scripts-fips-18.6 | 0 | 18.6.2-r0 |
| Chainguard | gitlab-workhorse-scripts-fips-18.7 | 0 | 18.7.0-r0 |
| Chainguard | graalvm-23 | 0 | 23.0.2-r8 |
| Chainguard | graalvm-23-ce | 0 | 23.0.2-r8 |
| Chainguard | graalvm-23-ce-dbg | 0 | 23.0.2-r8 |
| Chainguard | graalvm-23-ce-default-jdk | 0 | 23.0.2-r8 |
| Chainguard | graalvm-23-ce-jmods | 0 | 23.0.2-r8 |
| Chainguard | graalvm-23-ce-nodejs | 0 | 23.0.2-r8 |
| Chainguard | graalvm-23-ce-nodejs-dbg | 0 | 23.0.2-r8 |
| Chainguard | graalvm-23-ce-nodejs-default-jdk | 0 | 23.0.2-r8 |
| Chainguard | graalvm-23-ce-nodejs-jmods | 0 | 23.0.2-r8 |
| Chainguard | graalvm-23-graalpy | 0 | 23.0.2-r8 |
| Chainguard | graalvm-23-truffleruby | 0 | 23.0.2-r8 |
| Chainguard | graalvm-24 | 0 | 24.0.2-r7 |
Related vulnerabilities
- CVE-2026-21441 Decompression-bomb safeguards bypassed when following HTTP redirects (streaming API) Also affects urllib3
- CVE-2025-66418 urllib3 allows an unbounded number of links in the decompression chain Also affects urllib3
- CVE-2025-50182 urllib3 does not control redirects in browsers and Node.js Also affects urllib3
- CVE-2025-50181 urllib3 redirects are not disabled when retries are disabled on PoolManager instantiation Also affects urllib3
- CVE-2026-4539 A security flaw has been discovered in pygments up to 2.19.2. Also affects airflow-2
- CVE-2026-30922 pyasn1 is a generic ASN.1 library for Python. Also affects airflow-2
- CVE-2026-27448 pyOpenSSL is a Python wrapper around the OpenSSL library. Also affects airflow-2
- CVE-2026-27459 pyOpenSSL is a Python wrapper around the OpenSSL library. Also affects airflow-2