Buffer overflow i Perl relateret til behandling af tegn

Korrigerende opdateringer til Perl-interpreterne 5.40.2 og 5.38.4 er udgivet, hvor sårbarheden (CVE-2024-56406) er blevet rettet. Denne sårbarhed kan føre til buffer overflow ved translitteration af specielt formaterede ikke-ASCII tegn ved hjælp af operatoren «tr/..../..../». Det er muligt at udnytte sårbarheden til at udføre ondsindet kode i systemet. Problemet har været til stede i stabile versioner af Perl siden 2021 og påvirker versionerne 5.34, 5.36, 5.38 og 5.40. For at følge op på løsning af sårbarheden i distributioner kan man besøge følgende sider: Debian, Ubuntu, Fedora, Arch, FreeBSD. Distributioner baseret på RHEL 9, SUSE 15 og openSUSE Leap 15.6 er ikke sårbare, da de inkluderer versioner af Perl 5.32 og 5.26.

Sårbarheden påvirker programmer, der bruger ukontrollerede eksterne data i venstre side af operatoren «tr», hvor en variabel til data til tegnudskiftning angives (f.eks. «$external_string =~ tr/a/b/»). I den funktion S_do_trans_invmap(), som driver operationen, opstår der ved behandling af visse ikke-ASCII bytes adgang til hukommelse uden for den allokerede buffer. Buffer overflow opstår, fordi nogle byte-sekvenser i det oprindelige datasæt kan blive konverteret til UTF-8-sekvenser, hvor der kræves to bytes i stedet for én.

Det er bemærkelsesværdigt, at sårbarheden opstod efter en ændring, der blev tilføjet i 2020, som fjernede den yderligere kontrol af, at der var tilstrækkelig hukommelse allokeret under påskud af, at størrelsen kunne rundes opad tilstrækkeligt. For at kontrollere, om sårbarheden eksisterer, kan følgende kode køres: perl -e ‘$_ = «\x{FF}» x 1000000; tr/\xFF/\x{100}/;’ Segmentation fault (core dumped)

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster