Katalog CVE

CVE-2026-97688

ŚrednieCVSS 6.9
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.29%

Percentyl 20 - wyżej niż 20% wszystkich znanych CVE

Streszczenie

W bibliotece urllib3 (wersje od 2.6.2 do 2.8.0) metody HTTPResponse.stream i HTTPResponse.read_chunked mogą wejść w nieskończoną pętlę, ponieważ dekoder Deflate zachowuje końcowe bajty jako niezużyte dane wejściowe po osiągnięciu końca strumienia i wielokrotnie je dekoduje bez postępu. Problem występuje, gdy niezaufany serwer wyśle odpowiedź chunked z kodowaniem Deflate, której zdekodowana treść przekracza dodatni skończony rozmiar porcji, a zakodowana treść ma końcowe bajty.

Ocena ryzyka

Złośliwy serwer może spowodować nadmierne zużycie CPU i zawieszenie żądania, które nie zostanie przerwane przez limity czasu odczytu sieci. Może to prowadzić do wyczerpania zasobów i odmowy usługi w aplikacjach korzystających z urllib3.

Rekomendacja

Zaktualizuj bibliotekę urllib3 do wersji 2.8.0 lub nowszej. Monitoruj zużycie CPU i nietypowe zawieszenia żądań HTTP w aplikacjach korzystających z tej biblioteki.

Inne podatności w urllib3

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

urllib3 is an HTTP client library for Python. From 2.6.2 until 2.8.0, HTTPResponse.stream and HTTPResponse.read_chunked can enter an infinite loop because the Deflate decoder retains trailing bytes as unconsumed input after reaching end-of-stream and repeatedly decodes them without progress. The issue occurs when an untrusted server sends a chunked Deflate response whose decoded body exceeds a positive finite chunk size and whose encoded body has trailing bytes, specifically a response with Transfer-Encoding: chunked and Content-Encoding: deflate, content decoding enabled, and the positive finite amt=N streaming chunk size. The attack mechanism is that a malicious server returns a compressed chunked response with trailing bytes after the Deflate stream. The impact is excessive CPU usage and a request that does not complete, and network read timeouts do not interrupt the loop because no further socket read occurs. This issue is fixed in version 2.8.0.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS