Përmbushja e buferit në Perl, e lidhur me përpunimin e simboleve

Janë publikuar përditësime korrigjuese për interpretuesin Perl 5.40.2 dhe 5.38.4, të cilat rregullojnë një cenueshmëri (CVE-2024-56406), e cila çon në përmbushjen e buferit gjatë transliterimit të simboleve të pa-ASCII të formuar posaçërisht përmes operatorit «tr/../..». Nuk përjashtohet mundësia e shfrytëzimit të kësaj cenueshmërie për të organizuar ekzekutimin e kodit të vet në sistem. Problemi shfaqet në versionet stabile të Perl që nga viti 2021 dhe prek degët Perl 5.34, 5.36, 5.38 dhe 5.40. Mund të ndjekësh rregullimin e cenueshmërisë në shpërndarjet e mëposhtme: Debian, Ubuntu, Fedora, Arch, FreeBSD. Shpërndarjet e bazuara në RHEL 9, SUSE 15 dhe openSUSE Leap 15.6 nuk janë të prekura nga cenueshmëria, pasi përfshijnë versionet e Perl 5.32 dhe 5.26.

Cenueshmëria prek programet që përdorin të dhëna të jashtme të pa verifikuara në anën e majtë të operatorit «tr», ku përcaktohet një variabël me të dhëna për të përmirësuar simbolet (për shembull, «$external_string =~ tr/a/b/»). Në funksionin mbështetës S_do_trans_invmap() gjatë përpunimit të disa bajtëve të pa-ASCII ndodh një referencë në memorie jashtë buferit të alokuar. Përmbushja ndodh sepse disa sekuenca bajtësh në setin e dhënash origjinal mund të shndërrohen në sekuenca UTF-8, për të cilat kërkohen dy bajtë në vend të një.

Është e rëndësishme të theksohet se cenueshmëria u shfaq pas një ndryshimi të shtuar në vitin 2020, i cili eleminoi kontrollin shtesë të mjaftueshmërisë së alokimit të memories nën pretencën se gjatë llogaritjes së madhësisë është e mjaftueshme rrumbullakimi i madhësisë në anën e sipërme. Për të kontrolluar praninë e cenueshmërisë, mund të ekzekutoni kodin: perl -e ‘$_ = “\x{FF}” x 1000000; tr/\xFF/\x{100};’ Gabim segmentimi (në themel të dump-it)

Burimi: opennet.ru

Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS 🔥 Blini hostim të besueshëm për faqe interneti me mbrojtje DDoS, serverë VPS VDS - ProHoster