Preklapanje bafera u Perlu, vezano uz obradu znakova

Objavljene su ispravke interpreterâ Perl 5.40.2 i 5.38.4, u kojima je otklonjena ranjivost (CVE-2024-56406) koja dovodi do preopterećenja bafera prilikom transliteracije posebno oblikovanih ne-ASCII znakova pomoću operatora „tr/..../..../“. Ne može se isključiti mogućnost eksploatacije ranjivosti za izvršavanje vlastitog koda u sistemu. Problem se javlja u stabilnim izdanjima Perla od 2021. godine i pogađa grane Perl 5.34, 5.36, 5.38 i 5.40. Praćenje otklanjanja ranjivosti u distribucijama može se izvršiti na sljedećim stranicama: Debian, Ubuntu, Fedora, Arch, FreeBSD. Distribucije temeljene na RHEL 9, SUSE 15 i openSUSE Leap 15.6 nisu pogođene ranjivošću jer uključuju verzije Perla 5.32 i 5.26.

Ranjivost pogađa programe koji koriste neproverene spoljne podatke u lijevoj strani operatora „tr“, gdje se navodi varijabla sa podacima za zamjenu znakova (na primjer, „$external_string =~ tr/a/b/“). U funkciji S_do_trans_invmap() koja omogućava rad operatora, prilikom obrade nekih ne-ASCII bajtova dolazi do pristupa memoriji izvan dodeljenog bafera. Preopterećenje se događa zbog toga što se neke sekvence bajtova u izvornoj skupini podataka mogu pretvoriti u sekvence UTF-8, za koje je potrebno dva bajta umjesto jednog.

Zanimljivo je da je ranjivost nastala nakon dodate promjene 2020. godine koja uklanja dodatnu proveru dovoljnog dodeljenja memorije pod izgovorom da je za izračunavanje veličine dovoljno zaokruživanje na veću stranu. Da biste proverili postojanje ranjivosti, možete izvršiti kod: perl -e '$_ = "\x{FF}" x 1000000; tr/\xFF/\x{100}/;' Segmentation fault (core dumped)

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster