Katalog CVE

CVE-2026-61725

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

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.14%

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

Streszczenie

W bibliotece sevenz-rust2 w wersjach przed 0.21.1 rozpakowanie archiwum 7z dostarczonego przez atakującego może zapisywać lub nadpisywać pliki poza katalogiem docelowym. W src/util/decompress.rs funkcja decompress_impl oblicza każdą ścieżkę docelową przez dest.join(entry.name()) bez normalizacji nazwy wpisu UTF-16 ani weryfikacji zawierania, a default_entry_extract_fn zapisuje do niej przez File::create. Komponenty katalogu nadrzędnego pozwalają uciec z katalogu rozpakowywania, a bezwzględna ścieżka wpisu powoduje całkowite odrzucenie katalogu docelowego. Wszystkie wygodne punkty wejścia decompress, decompress_file, decompress_with_password i decompress_file_with_password używają tej domyślnej ścieżki. Nadpisanie zapisywalnych plików konfiguracyjnych, startowych, cron lub build może prowadzić do wykonania kodu lub trwałego utrzymania dostępu.

Ocena ryzyka

Aplikacje automatycznie rozpakowujące przesłane lub niezaufane archiwa mogą pozwolić atakującemu na zapis plików poza katalogiem docelowym, co może prowadzić do wykonania kodu lub utrzymania dostępu. Bajty archiwum są granicą zaufania kontrolowaną przez atakującego.

Rekomendacja

Zaktualizuj sevenz-rust2 do wersji 0.21.1 lub nowszej. Unikaj automatycznego rozpakowywania niezaufanych archiwów bez dodatkowej walidacji ścieżek.

Powiązane podatności

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

sevenz-rust2 is a Rust-native 7z compressor and `decompress`or. Prior to 0.21.1, extracting an attacker-supplied 7z archive can write or overwrite files outside the destination directory. In `src/util/decompress.rs`, `decompress_impl` computes each destination with `dest.join(entry.name())` without normalizing the archive's UTF-16 entry name or verifying containment, and `default_entry_extract_fn` writes to it with `File::create`. Parent-directory components escape the extraction root, and an absolute entry path makes the join discard the destination entirely. The convenience entry points `decompress`, `decompress_file`, `decompress_with_password`, and `decompress_file_with_password` all use this default path. Overwriting writable configuration, startup, cron, or build files can lead to code execution or persistence. The archive bytes are the attacker-controlled trust boundary, including for applications that automatically unpack uploaded or otherwise untrusted archives. This issue is fixed in version 0.21.1.

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