În principal, implementarea limbajului de programare R, orientat spre soluționarea problemelor de prelucrare statistică, analiză și vizualizare a datelor, a identificat o vulnerabilitate critică (CVE-2024-27322) care duce la executarea codului în urma deserializării datelor nesecurizate. Vulnerabilitatea poate fi exploatată în timpul procesării fișierelor special concepute în formatele RDS (R Data Serialization) și RDX, utilizate pentru schimbul de date între aplicații. Problema a fost rezolvată în versiunea R 4.4.0. Puteți urmări lansările actualizărilor pachetelor în distribuțiile Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD.
Vulnerabilitatea este cauzată de particularitățile funcției readRDS, utilizată pentru încărcarea fișierelor în formatele RDS și RDX, care permit transmiterea obiectelor R serializate pentru prelucrare pe un alt sistem. Serializarea permite fixarea unui anumit stadiu și schimbul de seturi de date între programe. Formatul RDS permite stocarea stării unui singur obiect, iar formatul RDX, împreună cu fișierele RDB, permite transmiterea informațiilor despre mai multe obiecte. Problema este legată de faptul că formatul RDS acceptă codul de obiect PROMSXP, asociat tipului Promise, care este utilizat pentru a defini expresii invocate în mod asincron în timpul utilizării valorilor asociate.
În timpul deserializării, pentru a determina obiectul Promise sunt utilizate trei componente - valoarea Promise, expresia și mediu. Dacă pentru tipul Promise nu este definită anterior o valoare calculată, aceasta este calculată în timpul deserializării prin executarea expresiei folosind funcția „eval”. Astfel, un atacator poate reuși să execute cod arbitrar în limbajul R, substituindu-l în locul expresiei legate de valorile necalculează în fișierele RDS sau RDX.
Sursa: opennet.ro
