CRITICAL✓ PATCH🇬🇧 English

CVE-2026-8376

Heap buffer overflow w Perl przy kompilacji wyrażeń regularnych (32-bit)

CVSS 9.8pub. 2026-05-26upd. 2026-05-27

Perl w wersjach do 5.43.10 zawiera podatność typu heap buffer overflow podczas kompilacji wyrażeń regularnych zawierających powtarzające się stałe ciągi znaków na kompilacjach 32-bitowych. Podatność uzyskała ocenę CVSS 9.8 (CRITICAL) i może być wywołana zdalnie bez uwierzytelnienia.

Pokaż oryginał (EN)

Perl versions through 5.43.10 have a heap buffer overflow when compiling regular expressions with a repeated fixed string on 32-bit builds. Perl_study_chunk in regcomp_study.c checked the size of the joined substring buffer in characters rather than bytes. For a quantified fixed substring with a large minimum count, the byte length mincount * l could overflow SSize_t, producing an undersized SvGROW allocation; the subsequent copy writes past the end of the buffer. A caller that compiles an attacker-controlled regular expression on a 32-bit perl build triggers a heap buffer overflow at compile time.

🤖 Analiza AI
Jak działa

Funkcja Perl_study_chunk w pliku regcomp_study.c nieprawidłowo sprawdzała rozmiar bufora dla złączonego podciągu — operowała na liczbie znaków zamiast liczbie bajtów. Przy kwantyfikowanym stałym podciągu z dużą minimalną liczbą powtórzeń wyrażenie mincount * l mogło przepełnić typ SSize_t, powodując zbyt małą alokację przez SvGROW. Następująca po tym operacja kopiowania wychodziła poza granice przydzielonego bufora na stercie. Atakujący może wywołać ten błąd, dostarczając spreparowane wyrażenie regularne, które jest następnie kompilowane przez docelową aplikację na 32-bitowym środowisku Perl.

Skutki

Atakujący może doprowadzić do zapisu danych poza granicami bufora na stercie podczas kompilacji wyrażenia regularnego, co potencjalnie umożliwia wykonanie dowolnego kodu (RCE), ujawnienie poufnych danych lub destabilizację działania aplikacji.

Mitygacja

Należy zastosować patch dostępny w repozytorium projektu Perl (commit 5e7f119eb2bb1181be908701f22bf7068e722f1c) lub zaktualizować Perl do wersji zawierającej poprawkę zgodnie z referencjami producenta. Jako obejście można rozważyć migrację do kompilacji 64-bitowej, w której przepełnienie SSize_t nie występuje.

Kogo dotyczy

Perl w wersjach do 5.43.10 (włącznie), wyłącznie kompilacje 32-bitowe.

Uwagi

Podatność dotyczy wyłącznie kompilacji 32-bitowych Perl. Informacja o podatności została opublikowana na liście oss-security w dniu 2026-05-26.

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
  • Perl

    APP
    Perl
    ≤ 5.43.10
🟢
PATCH DOSTĘPNY
Aktualizacja od producenta gotowa. Wdrożenie w ramach standardowego cyklu.
Tagi
Memory
CWE
Referencje

Powiązane podatności

CVE-2026-4176CRITICAL9.8PL ✓ten sam produkt

Podatność zlib w module Compress::Raw::Zlib w Perl (CVE-2026-4176)

CVE-2022-48522CRITICAL9.8ten sam produkt

In Perl 5.34.0, function S_find_uninit_var in sv.c has a stack-based crash that can lead to remote code execut...

CVE-2018-18311CRITICAL9.8ten sam produkt

Perl before 5.26.3 and 5.28.x before 5.28.1 has a buffer overflow via a crafted regular expression that trigge...

CVE-2018-18314CRITICAL9.8ten sam produkt

Perl before 5.26.3 has a buffer overflow via a crafted regular expression that triggers invalid write operatio...

CVE-2018-18313CRITICAL9.1ten sam produkt

Perl before 5.26.3 has a buffer over-read via a crafted regular expression that triggers disclosure of sensiti...