CVE-2026-9538
WysokieCVSS 7.5Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 36 - wyżej niż 36% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Atakujący może zdalnie spowodować wyczerpanie pamięci procesu Perla poprzez wysłanie spreparowanego archiwum tar z gigantycznym rozmiarem wpisu, co prowadzi do ataku DoS.
Rekomendacja
Należy zaktualizować bibliotekę Archive::Tar do wersji 3.10 lub nowszej, która zawiera poprawkę ograniczającą rozmiar alokacji.
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-42497Wysokie
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.
Oryginalny opis (angielski, źródło NVD)
Archive::Tar versions before 3.10 for Perl allow memory exhaustion via attacker controlled entry size field in tar header. _read_tar() reads each entry's payload with $handle->read($$data, $block), where $block is derived from the entry's 12-byte size field in the tar header with no upper bound on that value. A crafted header declaring a multi-gigabyte size causes Perl to allocate a scalar of that size.

