CVE-2026-13221
KrytyczneCVSS 9.1Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 42 - wyżej niż 42% 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-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-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-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-2022-48522Krytyczne
W Perl 5.34.0 funkcja S_find_uninit_var w pliku sv.c powoduje awarię stosu, która może prowadzić do zdalnego wykonania kodu lub lokalnego podniesienia uprawnień.
- CVE-2020-12723Wysokie
W Perlu przed wersją 5.30.3, plik regcomp.c zawiera podatność na przepełnienie bufora poprzez spreparowane wyrażenie regularne, spowodowaną rekurencyjnymi wywołaniami S_study_chunk.
- CVE-2020-10878Wysokie
Perl przed 5.30.3 ma przepełnienie liczby całkowitej związane z nieprawidłowym obsłużeniem sytuacji "PL_regkind[OP(n)] == NOTHING". Spreparowane wyrażenie regularne może prowadzić do wadliwego kodu bajtowego z możliwością wstrzyknięcia instrukcji.
- CVE-2020-10543Wysokie
W Perlu przed wersją 5.30.3 na platformach 32-bitowych występuje przepełnienie bufora na stercie spowodowane przepełnieniem liczby całkowitej przy zagnieżdżonych kwantyfikatorach wyrażeń regularnych.
- 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.
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.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

