CVE-2026-13221
KrytyczneCVSS 9.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 36 - wyżej niż 36% wszystkich znanych CVE
Streszczenie
Perl w wersjach przed 5.40.5-RC1, od 5.41.0 przed 5.42.3-RC1 oraz od 5.43.0 przed 5.43.10 generuje błędne wyniki dopasowania wyrażeń regularnych, gdy alternatywa zawierająca więcej niż 65535 stałych gałęzi jest kompilowana do trie w Perl_study_chunk. Przepełnienie 16-bitowego pola powoduje obcięcie tablicy decyzyjnej, co prowadzi do fałszywych dopasowań (pozytywnych i negatywnych).
Ocena ryzyka
Jeśli takie wyrażenie regularne jest używane do kontroli dostępu lub filtrowania, błędne dopasowania mogą prowadzić do nieautoryzowanego dostępu lub blokowania prawidłowych operacji.
Rekomendacja
Zaktualizuj Perla do wersji 5.40.5-RC1, 5.42.3-RC1 lub 5.43.10 (lub nowszej) w zależności od używanej gałęzi.
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-8376Krytyczne
Perl w wersjach przed 5.40.5-RC1, od 5.41.0 przed 5.42.3-RC1 oraz od 5.43.0 przed 5.43.11 ma przepełnienie bufora sterty podczas kompilacji wyrażeń regularnych z powtarzanym stałym ciągiem znaków na buildach 32-bitowych. Błąd w Perl_study_chunk w regcomp_study.c sprawdzał rozmiar bufora w znakach zamiast w bajtach, co prowadzi do zbyt małej alokacji i zapisu poza buforem.
- 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-2026-57432Wysokie
W wersjach Perla przed 5.40.5-RC1, od 5.41.0 przed 5.42.3-RC1 oraz od 5.43.0 przed 5.43.11 występuje przepełnienie liczby całkowitej w funkcji S_measure_struct, prowadzące do odczytu poza zakresem sterty w operacjach pack i unpack. Duża liczba powtórzeń w szablonie może spowodować zawinięcie sumy do wartości ujemnej, co umożliwia przesunięcie wskaźnika bufora poza dozwolony obszar. Szablon pochodzący z niezaufanego źródła może doprowadzić do odczytu pamięci sterty poza buforem i zwrócenia jej do wywołującego.
- 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 before 5.40.5-RC1, from 5.41.0 before 5.42.3-RC1, from 5.43.0 before 5.43.10 produce silently incorrect regular expression matches when an alternation of more than 65535 fixed string branches is compiled into a trie in Perl_study_chunk. When such branches are combined into a trie, the delta between the first branch and the shared tail is stored in a 16-bit field. A branch count above 65535 overflows the field, and the trie's match decision table is truncated with no warning or error. A pattern of this shape produces false positive matches (matching strings it should not) and false negative matches (failing to match strings it should). When such a pattern gates an access or filtering decision, the result is wrong.

