CVE-2026-57432
WysokieCVSS 8.4Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 10 - wyżej niż 10% wszystkich znanych CVE
Streszczenie
W Perlu do wersji 5.43.10 występuje przepełnienie liczby całkowitej w funkcji S_measure_struct, prowadzące do odczytu poza dozwolonym obszarem sterty podczas operacji pack i unpack. Duża liczba powtórzeń w szablonie powoduje zawinięcie sumy na ujemną, co omija zabezpieczenia i pozwala na odczyt pamięci poza buforem.
Ocena ryzyka
Atakujący może dostarczyć specjalnie spreparowany szablon, co prowadzi do wycieku danych z pamięci sterty, potencjalnie ujawniając poufne informacje, takie jak klucze czy dane użytkowników.
Rekomendacja
Należy natychmiast zaktualizować Perla do wersji 5.44.0 lub nowszej, która zawiera poprawkę usuwającą podatność. Jeśli aktualizacja nie jest możliwa, należy ograniczyć przetwarzanie niezaufanych szablonów pack/unpack.
Inne podatności w Perl
Zobacz wszystkie- CVE-2016-1238Wysokie
Wersje Perl 5.x przed 5.22.3-RC2 oraz 5.24 przed 5.24.1-RC2 nieprawidłowo usuwają znaki '.' z końca tablicy katalogów include. Może to umożliwić lokalnym użytkownikom uzyskanie uprawnień za pomocą złośliwego modułu w bieżącym katalogu roboczym.
- CVE-2016-2381Wysokie
Perl może umożliwić atakującym, zależnie od kontekstu, ominięcie mechanizmu ochrony przed zanieczyszczeniem w procesie potomnym poprzez duplikowane zmienne środowiskowe w envp.
- CVE-2024-56406Wysokie
W Perlu odkryto podatność przepełnienia bufora sterty. Problem występuje w gałęziach wydań 5.34, 5.36, 5.38 i 5.40 oraz w wersjach rozwojowych od 5.33.1 do 5.41.10. Gdy w lewej stronie operatora `tr` znajdują się bajty spoza ASCII, funkcja `S_do_trans_invmap` może przepełnić bufor.
- CVE-2023-47038Wysokie
Podatność w Perlu 5.30.0 do 5.38.0 pozwala na przepełnienie bufora sterty podczas kompilacji spreparowanego wyrażenia regularnego. Atakujący może wykorzystać ten błąd do kontrolowanego przepełnienia bufora.
- CVE-2026-13221Krytyczne
W Perlu do wersji 5.43.9 włącznie, podczas kompilacji alternatywy zawierającej więcej niż 65535 stałych gałęzi do struktury trie w funkcji Perl_study_chunk, dochodzi do przepełnienia 16-bitowego pola przechowującego różnicę między pierwszą gałęzią a wspólnym ogonem. Powoduje to obcięcie tablicy decyzyjnej trie bez żadnego ostrzeżenia lub błędu, co prowadzi do fałszywie pozytywnych i fałszywie negatywnych dopasowań wyrażeń regularnych.
- CVE-2026-8376Krytyczne
W Perlu do wersji 5.43.10 występuje przepełnienie bufora sterty podczas kompilacji wyrażeń regularnych z powtarzającym się stałym łańcuchem na 32-bitowych systemach. Błąd w funkcji Perl_study_chunk powoduje nieprawidłowe obliczenie rozmiaru bufora, co prowadzi do zapisu poza przydzieloną pamięcią.
- CVE-2015-8608Krytyczne
Funkcje VDir::MapPathA i VDir::MapPathW w Perl 5.22 umożliwiają zdalnym atakującym wywołanie odmowy usługi (odczyt poza zakresem) oraz potencjalne wykonanie dowolnego kodu poprzez spreparowane argumenty (1) litera dysku lub (2) pInName.
- CVE-2026-19487Średnie
Perl w wersjach od 5.9.4 do przed 5.41.9 generuje nieprawidłowe wyniki dopasowania wyrażeń regularnych, gdy nieaktualna flaga błędu kończy przedwcześnie prescan Aho-Corasick w S_find_byclass. Może to prowadzić do pominięcia dopasowań lub dopasowania na złej gałęzi.
- CVE-2026-15534Średnie
Podatność w silniku wyrażeń regularnych Perla (do wersji 5.45.1) powoduje odczyty i zapisy poza pamięcią podczas dopasowywania wzorca. Problem wynika z przepełnienia licznika w pamięci podręcznej superlinearnej, co prowadzi do zbyt małej alokacji i późniejszego dostępu poza jej granice.
- CVE-1999-1386Średnie
Perl w wersji 5.004_04 i wcześniejszych podąża za linkami symbolicznymi podczas uruchamiania z opcją -e, co pozwala lokalnym użytkownikom na nadpisywanie dowolnych plików poprzez atak symlink na plik /tmp/perl-eaXXXXX.
Oryginalny opis (angielski, źródło NVD)
Perl versions through 5.43.10 have an integer overflow in S_measure_struct leading to an out-of-bounds heap read in pack and unpack. S_measure_struct adds each item's size times its repeat count to a running total with no overflow check, so a large repeat count in a pack or unpack template wraps the signed SSize_t total negative. The @, X, and x position codes then guard their moves with a signed length comparison that passes when the length is negative, advancing the buffer pointer out of bounds. A template derived from untrusted input can read heap memory past the buffer and return it to the caller.

