CVE-2026-15534
ŚrednieCVSS 5.7Prawdopodobieństwo exploitacji (EPSS)
Niskie ryzykoPercentyl 16 - wyżej niż 16% wszystkich znanych CVE
Streszczenie
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.
Ocena ryzyka
Atakujący może doprowadzić do awarii procesu lub uszkodzenia pamięci sterty, co może umożliwić wykonanie dowolnego kodu lub naruszenie integralności systemu.
Rekomendacja
Zaleca się natychmiastową aktualizację Perla do wersji nowszej niż 5.45.1, jeśli dostępna, oraz ograniczenie przetwarzania niezaufanych danych wejściowych o dużych rozmiarach w wyrażeniach regularnych.
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
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).
- 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.
Oryginalny opis (angielski, źródło NVD)
Perl versions through 5.45.1 have out-of-bounds heap reads and writes during regular expression matching via an undersized superlinear cache in S_regmatch. The regex engine's superlinear cache holds one bit per subject position for each participating WHILEM node, so the bit count is the subject length plus one times the number of nodes. Nothing checks that product for positive overflow of the signed 32-bit count: a 286331153 byte subject matched against a pattern with 15 participating nodes stores the count as 14, leaving a two byte cache. The cache is then indexed from the real match position and node number, so reads go past the end of the allocation, and on failure CACHEsayNO sets a bit past it. A caller that matches an attacker controlled subject of this size against a pattern of this shape can crash the process or corrupt heap memory.
Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS

