Katalog CVE

CVE-2026-104025

WysokieCVSS 8.4
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Prawdopodobieństwo exploitacji (EPSS)

Niskie ryzyko
0.16%

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

Streszczenie

Podatność Path Traversal (CWE-22) w funkcji execute_obj przeglądarki archiwów PeaZip (peach.pas) w wersji 11.2.0 i wcześniejszych na Windows pozwala na wykonanie dowolnego programu obecnego w systemie ofiary. Atakujący musi przekonać ofiarę do użycia akcji „Preview with... -> Associated application” (Shift+Ctrl+O) na spreparowanym wpisie archiwum, którego nazwa zawiera sekwencję „../”, co pozwala uciec z katalogu tymczasowego i przekazać ścieżkę do ShellExecuteW bez ostrzeżenia. Luka wynika z braku walidacji ciągu tempstring oraz braku sprawdzenia zawierania ścieżki w checkfiledirname.

Ocena ryzyka

Organizacja narażona jest na wykonanie dowolnego kodu w kontekście użytkownika otwierającego spreparowane archiwum, co może prowadzić do przejęcia systemu, kradzieży danych lub dalszej eskalacji. Ryzyko jest szczególnie wysokie, ponieważ atak nie wymaga uprawnień administracyjnych ani interakcji poza podglądem wpisu archiwum.

Rekomendacja

Zaktualizuj PeaZip do wersji nowszej niż 11.2.0, jeśli jest dostępna, lub wstrzymaj używanie funkcji podglądu „Preview with... -> Associated application” do czasu wydania poprawki. Dodatkowo rozważ ograniczenie otwierania niezaufanych archiwów i wdrożenie zasady najmniejszych uprawnień dla użytkowników.

Inne podatności w PeaZip

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

Path Traversal (CWE-22) in the execute_obj function of the archive object viewer (peach.pas) in PeaZip 11.2.0 and earlier on Windows allows an attacker who convinces a victim to preview an entry of a crafted archive via the "Preview with... -> Associated application" action (Shift+Ctrl+O) to execute an arbitrary program already present on the victim's system, with no warning dialog. The function validates only outname (PeaZip's own temporary directory) with checkfiledirname, while the string actually executed is the concatenation outname+tempstring; tempstring is taken verbatim from the archive entry name (StringGridList.Cells[12,...]) and is never validated. checkfiledirname (list_utils.pas) rejects control and reserved characters in the file name but performs no ".." path-containment check, so an entry named ../../../../Windows/System32/calc.exe escapes the extraction directory and is passed to cp_open -> ShellExecuteW; the extracting backend (7-Zip) strips the traversal while the opener does not. In addition, the SECEXTCONST dangerous-extension confirmation prompt is implemented only in the double-click handler (grid_obj_open) and not on this preview route, so an executable inside an archive reaches ShellExecuteW unannounced, and where the prompt does fire it names the entry's display name rather than the resolved path that will run. Arbitrary code execution was demonstrated with a proof of concept against official PeaZip builds, confirmed on two archive formats (.zip and .tar) to show the defect is in PeaZip's own path handling and not in a single format parser.

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