Moduł Storable dla Perl w wersjach przed 3.05 zawiera podatność typu stack overflow (przepełnienie stosu) w funkcji retrieve_hook. Podatność ma krytyczne znaczenie, ponieważ umożliwia zdalnemu atakującemu bez uwierzytelnienia wywołanie przepełnienia stosu poprzez spreparowane dane wejściowe.
▸ Pokaż oryginał (EN)
Storable versions before 3.05 for Perl has a stack overflow. The retrieve_hook function stored the length of the class name into a signed integer but in read operations treated the length as unsigned. This allowed an attacker to craft data that could trigger the overflow.
Funkcja retrieve_hook przechowuje długość nazwy klasy w zmiennej całkowitej ze znakiem (signed integer), natomiast podczas operacji odczytu traktuje tę długość jako wartość bez znaku (unsigned). Rozbieżność między interpretacją ze znakiem a bez znaku pozwala atakującemu przygotować specjalnie spreparowane dane, które wywołują przepełnienie bufora na stosie (stack overflow, CWE-121). Exploitacja nie wymaga uwierzytelnienia ani interakcji użytkownika.
Atakujący może doprowadzić do przepełnienia stosu, co potencjalnie skutkuje zdalnym wykonaniem kodu (RCE), naruszeniem poufności i integralności danych oraz niedostępnością systemu.
Należy zaktualizować moduł Storable do wersji 3.05 lub nowszej. Patch dostępny jest w repozytorium perl5 pod adresem wskazanym w referencjach producenta (commit a258c17c6937f79529c8319a829310e09cdbd216).
Moduł Nwclark Storable w wersjach przed 3.05 dla języka Perl.
Podatność dotyczy modułu Storable wchodzącego w skład dystrybucji Perl5. Poprawka została opublikowana w ramach wydania Storable 3.05. Dyskusja nad błędem miała miejsce na liście perl.perl5.porters w styczniu 2017 roku.
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:HNwclark Storable
APPNwclark< 3.05