CVE-2026-115906
ŚrednieCVSS 6.5Streszczenie
Biblioteka zip dla Rusta w wersjach 0.6.0–8.x weryfikuje HMAC wpisu AES dopiero gdy licznik danych osiągnie zero. Jeśli czytnik napotka koniec archiwum przy dodatnim liczniku lub wpis zaszyfrowany nie ma ładunku, zwracany jest poprawny koniec strumienia bez porównania tagu uwierzytelniającego. Aplikacje używające by_index_decrypt, by_name_decrypt, by_path_decrypt lub by_index_with_options z hasłem mogą zaakceptować zmodyfikowany tekst jawny bez błędu uwierzytelnienia.
Ocena ryzyka
Atakujący może zmodyfikować zaszyfrowaną zawartość archiwum ZIP bez wykrycia przez aplikację, co prowadzi do naruszenia integralności danych. Dotyczy to aplikacji przetwarzających zaszyfrowane archiwa ZIP z niezaufanych źródeł.
Rekomendacja
Zaktualizuj bibliotekę zip do wersji 9.0.0 lub nowszej. Sprawdź, czy aplikacja korzysta z funkcji odszyfrowywania i czy przetwarza niezaufane archiwa ZIP.
Inne podatności w zip
Zobacz wszystkie- CVE-2026-115909Wysokie
W bibliotece zip dla Rusta od wersji 1.3.0 do 9.0.0 funkcja ZipArchive::extract wywołuje Vec::with_capacity dla celu dowiązania symbolicznego przy użyciu kontrolowanego przez atakującego rozmiaru ZIP64 uncompressed_size przed odczytaniem danych wpisu. Małe archiwum może zażądać niemożliwej pojemności, powodując przerwanie procesu, którego nie można objąć catch_unwind ani wątkiem roboczym.
- CVE-2026-115908Wysokie
W bibliotece zip dla Rusta od wersji 7.2.0 do 9.0.0 funkcje ZipArchive::extract i ZipArchive::extract_unwrapped_root_dir walidują cele dowiązań symbolicznych przez leksykalne porównanie prefiksu zamiast rozwiązywania każdego pośredniego dowiązania. Atakujący znający docelowy katalog rozpakowania może utworzyć łańcuch, którego pozorny cel pozostaje w katalogu docelowym, podczas gdy pośrednie dowiązanie prowadzi poza niego, co pozwala na tworzenie lub nadpisywanie plików z uprawnieniami procesu rozpakowującego.
- CVE-2026-115905Krytyczne
W bibliotece zip dla Rusta do wersji 9.0.4 ZipArchive traktuje nazwy plików z nagłówka central directory jako wiążące, podczas gdy ZipStreamReader rozpakowuje przy użyciu nazw z lokalnego nagłówka pliku, bez uzgadniania zduplikowanych metadanych. Spreparowane archiwum może wyglądać nieszkodliwie dla komponentu sprawdzającego central directory, ale spowodować zapis innej ścieżki i zawartości przez ekstraktor strumieniowy.
Oryginalny opis (angielski, źródło NVD)
zip is a zip library for Rust that supports reading and writing simple ZIP files. From 0.6.0 until 9.0.0, the AES entry reader in src/aes.rs verifies its HMAC only when the attacker-controlled data counter reaches zero. If the underlying bounded reader reaches the real end of the archive while data_remaining is still positive, or if an encrypted entry has no payload, the reader can return a clean end of stream without reading and comparing the authentication tag. Applications using by_index_decrypt, by_name_decrypt, by_path_decrypt, or password-enabled by_index_with_options can therefore accept modified plaintext without an authentication error. This issue is fixed in version 9.0.0.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

