CVE-2026-85747
ŚrednieCVSS 6.8Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 10 - wyżej niż 10% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Atakujący może dostarczyć podmieniony obraz kontenera, co prowadzi do uruchomienia nieautoryzowanego kodu w środowisku produkcyjnym. Ryzyko obejmuje naruszenie integralności łańcucha dostaw oprogramowania.
Rekomendacja
Zaktualizuj bibliotekę Distribution do wersji 3.1.2 lub nowszej. Sprawdź, czy używany jest wbudowany proxy pull-through i zweryfikuj integralność pobieranych obrazów.
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-35172Wysokie
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.
Oryginalny opis (angielski, źródło NVD)
Distribution is a toolkit to pack, ship, store, and deliver container content. Prior to 3.1.2, registry/client.(*manifests).Get() reads a manifest returned for a digest-pinned request and passes it to distribution.UnmarshalManifest without hashing the body against the requested digest, allowing a malicious or intercepted registry response to substitute attacker-chosen manifest content even when Docker-Content-Digest claims the requested value. The bundled pull-through proxy in registry/proxy/proxymanifeststore.go can cache and re-serve the substituted manifest. This issue is fixed in version 3.1.2.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

