Biblioteka XML::Parser dla języka Perl w wersjach do 2.47 zawiera błąd off-by-one prowadzący do przepełnienia bufora na stercie (heap buffer overflow). Podatność umożliwia atakującemu zdalnie wykonanie dowolnego kodu bez żadnego uwierzytelnienia.
▸ Pokaż oryginał (EN)
XML::Parser versions through 2.47 for Perl has an off-by-one heap buffer overflow in st_serial_stack. In the case (stackptr == stacksize - 1), the stack will NOT be expanded. Then the new value will be written at location (++stackptr), which equals stacksize and therefore falls just outside the allocated buffer. The bug can be observed when parsing an XML file with very deep element nesting
Błąd występuje w strukturze stosu serializacji (st_serial_stack). Gdy wskaźnik stosu (stackptr) osiąga wartość równą (stacksize - 1), mechanizm nie rozszerza bufora, po czym inkrementuje wskaźnik i zapisuje nową wartość pod adresem (stackptr == stacksize), który wykracza o jeden element poza przydzielony obszar pamięci na stercie. Warunek ten jest osiągany podczas parsowania dokumentu XML z wyjątkowo głoko zagnieżdżonymi elementami, co atakujący może wywołać, dostarczając odpowiednio spreparowany plik XML.
Atakujący może nadpisać sąsiednie obszary pamięci sterty, co w praktyce może prowadzić do wykonania dowolnego kodu (RCE), ujawnienia danych lub destabilizacji procesu (crash aplikacji).
Należy zaktualizować bibliotekę XML::Parser do wersji zawierającej poprawkę wskazaną w referencjach producenta (commit 3eb9cc95420fa0c3f76947c4708962546bf27cfd w repozytorium cpan-authors/XML-Parser). Użytkownicy dystrybucji Debian powinni zainstalować pakiet aktualizacyjny ogłoszony przez Debian LTS zgodnie z ogłoszeniem debian-lts-announce z kwietnia 2026.
XML::Parser dla Perl w wersjach do 2.47 włącznie (Toddr XML::Parser).
Błąd był pierwotnie zgłoszony jako ticket rt.cpan.org #19860. Publiczne ujawnienie nastąpiło 19 marca 2026 r. za pośrednictwem listy oss-security.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HToddr Xml\
APPToddr\
Powiązane podatności
XML::Parser versions through 2.45 for Perl could overflow the pre-allocated buffer size cause a heap corruptio...
Heap buffer overflow i inne podatności w YAML::Syck dla Perl (do wersji 1.36)
YAML::Syck versions before 1.36 for Perl has missing null-terminators which causes out-of-bounds read and pote...