Pretečenie zásobníka v Perl, spojené so spracovaním znakov.

Boli zverejnené opravy pre interpretery Perl 5.40.2 a 5.38.4, ktoré odstraňujú zraniteľnosť (CVE-2024-56406), vedúcu k pretečeniu vyrovnávacej pamäte pri transliterácii špeciálne formátovaných ne-ASCII symbolov pomocou operátora "tr/..../...". Nie je vylúčená možnosť zneužitia zraniteľnosti na vykonanie vlastného kódu v systéme. Problém sa prejavuje v stabilných vydaniach Perl od roku 2021 a ovplyvňuje vetvy Perl 5.34, 5.36, 5.38 a 5.40. Sledovať odstránenie zraniteľnosti v distribúciách je možné na nasledujúcich stránkach: Debian, Ubuntu, Fedora, Arch, FreeBSD. Distribúcie založené na RHEL 9, SUSE 15 a openSUSE Leap 15.6 zraniteľnosti nie sú podrobené, pretože obsahujú verzie Perl 5.32 a 5.26.

Zraniteľnosť ovplyvňuje programy využívajúce nekontrolované externé dáta na ľavej strane operátora "tr", kde je určená premenná s údajmi na výmenu symbolov (napríklad "$external_string =~ tr/a/b/"). Pri vykonávaní funkcie S_do_trans_invmap(), ktorá zabezpečuje chod operátora, dochádza pri spracovaní niektorých ne-ASCII bajtov k prístupu do pamäte mimo vyhradeného vyrovnávacej pamäte. Pretečenie vzniká preto, že niektoré sekvencie bajtov vo vstupnom datasete môžu byť prevedené na sekvencie UTF-8, pre ktoré je potrebné dva bajty namiesto jedného.

Zaujímavé je, že zraniteľnosť vznikla po pridaní zmeny v roku 2020, ktorá odstránila dodatočnú kontrolu dostatočného pridelovania pamäte s odôvodnením, že pri výpočte veľkosti je dostatočné zaokrúhliť veľkosť nahor. Na overenie prítomnosti zraniteľnosti je možné spustiť kód: perl -e '$_ = "\x{FF}" x 1000000; tr/\xFF/\x{100}/;' Segmentation fault (core dumped)

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster