CVE-2026-42497
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 34 - wyżej niż 34% wszystkich znanych CVE
Streszczenie
Podatność w bibliotece Archive::Tar dla Perla przed wersją 3.08 umożliwia wypakowanie dowiązań twardych (hardlink) do ścieżek kontrolowanych przez atakującego poza katalogiem docelowym. Funkcja _make_special_file() przekazuje linkname z nagłówka tar do funkcji link() bez walidacji ścieżek bezwzględnych lub segmentów '..', co pozwala na utworzenie dowiązania twardego do pliku ofiary. Kolejny zapis przez wypakowaną nazwę modyfikuje plik ofiary, a blok _extract_file() (chroniony tylko przed dowiązaniami symbolicznymi) stosuje uprawnienia, właściciela i znaczniki czasu do współdzielonego i-węzła.
Ocena ryzyka
Atakujący może zmodyfikować dowolny plik w systemie, do którego ma dostęp proces wypakowujący archiwum, co może prowadzić do eskalacji uprawnień lub naruszenia integralności systemu.
Rekomendacja
Zaleca się aktualizację biblioteki Archive::Tar do wersji 3.08 lub nowszej.
Inne podatności w Archive::Tar
Zobacz wszystkie- CVE-2026-42496Krytyczne
Archive::Tar w wersjach przed 3.08 dla Perla wyodrębnia dowiązania symboliczne z celami kontrolowanymi przez atakującego poza katalogiem wyodrębniania. Funkcja _make_special_file() przekazuje linkname z nagłówka tar do symlink() bez walidacji względem ścieżek bezwzględnych lub segmentów .. . Sprawdzanie trybu bezpiecznego wyodrębniania, które chroni wyodrębnianie zwykłych plików, nie obejmuje celu dowiązania symbolicznego. Kolejne otwarcie przez wyodrębnioną nazwę odczytuje lub zapisuje ścieżkę wybraną przez atakującego.
- CVE-2026-9538Wysokie
W bibliotece Archive::Tar dla Perla w wersjach przed 3.10 występuje podatność na wyczerpanie pamięci poprzez kontrolowane przez atakującego pole rozmiaru wpisu w nagłówku tar. Funkcja _read_tar() alokuje skalar o rozmiarze pochodzącym z nagłówka bez górnego ograniczenia.
Oryginalny opis (angielski, źródło NVD)
Archive::Tar versions before 3.08 for Perl extract hardlinks to attacker controlled paths outside the extraction directory. _make_special_file() passes the tar header's linkname to link() without validating it against absolute paths or .. segments, creating a hardlink that shares the victim file's inode. A subsequent write through the extracted name modifies the victim file, and the post-extraction chmod, chown, and utime block in _extract_file() (guarded only against symlinks via -l) applies the tar header's mode, owner, and timestamps to the shared inode during extraction alone.

