CVE-2026-35172
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 38 - wyżej niż 38% wszystkich znanych CVE
Streszczenie
W Distribution (narzędzie do pakowania i dystrybucji kontenerów) przed wersją 3.1.0, gdy włączone są opcje storage.cache.blobdescriptor: redis i storage.delete.enabled: true, usunięcie bloba z repozytorium a nie usuwa całkowicie wpisów w pamięci podręcznej Redis. Po późniejszym odczycie z repozytorium b, usunięty blob staje się ponownie dostępny w repozytorium a.
Ocena ryzyka
Atakujący może odczytać dane, które zostały celowo usunięte z repozytorium, co narusza poufność i integralność danych. Może to prowadzić do wycieku wrażliwych informacji.
Rekomendacja
Zaktualizuj Distribution do wersji 3.1.0, która zawiera poprawkę. Tymczasowo rozważ wyłączenie pamięci podręcznej Redis dla deskryptorów blob lub wyłączenie opcji usuwania.
Inne podatności w Distribution
Zobacz wszystkie- CVE-2026-41888Średnie
W Distribution (toolkit do pakowania, wysyłania, przechowywania i dostarczania zawartości kontenerów) przed wersją 3.1.1 usuwanie tagów przez endpoint DELETE /v2/<name>/manifests/<tag> omija konfigurację storage.delete.enabled: false, pozwalając dowolnemu klientowi API na usuwanie tagów z repozytoriów, nawet gdy operator wyraźnie wyłączył usuwanie. Podatność została naprawiona w wersji 3.1.1.
- CVE-2026-33540Wysokie
W trybie pull-through cache narzędzia Distribution (przed wersją 3.1.0) punkty końcowe uwierzytelniania tokenami są odkrywane przez parsowanie wyzwań WWW-Authenticate zwracanych przez skonfigurowany rejestr nadrzędny. Adres URL realm z wyzwania bearer jest używany bez weryfikacji, czy odpowiada hostowi rejestru nadrzędnego, co pozwala atakującemu kontrolującemu rejestr nadrzędny (lub znajdującemu się na pozycji MitM) na spowodowanie wysłania skonfigurowanych poświadczeń rejestru nadrzędnego przez basic auth do adresu URL realm kontrolowanego przez atakującego. Podatność naprawiono w wersji 3.1.0.
- CVE-2026-85747Średnie
W bibliotece Distribution (registry/client) w wersjach przed 3.1.2 metoda Get() odczytuje manifest zwrócony dla żądania przypiętego do digestu i przekazuje go do distribution.UnmarshalManifest bez weryfikacji skrótu względem żądanego digestu. Umożliwia to złośliwej lub przechwyconej odpowiedzi rejestru podstawienie treści manifestu wybranej przez atakującego, nawet gdy nagłówek Docker-Content-Digest wskazuje żądaną wartość. Wbudowany proxy pull-through może dodatkowo buforować i ponownie serwować podstawiony manifest. Problem naprawiono w wersji 3.1.2.
Oryginalny opis (angielski, źródło NVD)
Distribution is a toolkit to pack, ship, store, and deliver container content. Prior to 3.1.0, distribution can restore read access in repo a after an explicit delete when storage.cache.blobdescriptor: redis and storage.delete.enabled: true are both enabled. The delete path clears the shared digest descriptor but leaves stale repo-scoped membership behind, so a later Stat or Get from repo b repopulates the shared descriptor and makes the deleted blob readable from repo a again. This vulnerability is fixed in 3.1.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

