Depășirea buffer-ului în Perl, legată de procesarea caracterelor

Au fost publicate actualizări corective pentru interpretorul Perl 5.40.2 și 5.38.4, care corectează o vulnerabilitate (CVE-2024-56406) ce duce la o suprascriere a memoriei tampon în timpul transliterării caracterelor ne-ASCII special formulate cu operatorul „tr/.../...”. Nu se exclude posibilitatea exploatării acestei vulnerabilități pentru a executa cod personal în sistem. Problema apare în versiunile stabile ale Perl începând din 2021 și afectează versiunile Perl 5.34, 5.36, 5.38 și 5.40. Urmărirea remedierii vulnerabilității în distribuții se poate face pe următoarele pagini: Debian, Ubuntu, Fedora, Arch, FreeBSD. Distribuțiile bazate pe RHEL 9, SUSE 15 și openSUSE Leap 15.6 nu sunt afectate de vulnerabilitate, deoarece includ versiunile Perl 5.32 și 5.26.

Vulnerabilitatea afectează programele care utilizează date externe nevalidate în partea stângă a operatorului „tr”, în care se specifică o variabilă cu date pentru înlocuirea caracterelor (de exemplu, „$external_string =~ tr/a/b/”). În funcția S_do_trans_invmap() care face posibilă activitatea operatorului, apare accesul la memorie în afara buffer-ului alocat în timpul procesării unor octeți ne-ASCII. Suprascrierea memoriei apare din cauza faptului că unele secvențe de octeți din setul de date inițial pot fi transformate în secvențe UTF-8, pentru care sunt necesare două byte-uri în loc de unul.

Este notabil că vulnerabilitatea a apărut după modificarea din 2020 care a eliminat verificarea suplimentară a alocării adecvate a memoriei sub pretextul că, la calcularea dimensiunii, este suficientă rotunjirea în sus. Pentru a verifica existența vulnerabilității, se poate executa codul: perl -e '$_ = "\x{FF}" x 1000000; tr/\xFF/\x{100}/;' Segmentation fault (core dumped)

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster