R programimise põhiversioonis, mis on suunatud statistiliste andmete töötlemise, analüüsi ja visualiseerimise ülesannete lahendamisele, tuvastati kriitiline haavatavus (CVE-2024-27322), mis võimaldab koodi käivitamist mitte kontrollitud andmete deserialiseerimise käigus. Haavatavust saab kasutada spetsiaalsete RDS (R Data Serialization) ja RDX formaatide failide töötlemisel, mida kasutatakse rakenduste vahel andmete vahetamiseks. Probleem on lahendatud R versioonis 4.4.0. Pakettide uuenduste väljaandmist saab jälgida Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD lehtedel.
Haavatavus tuleneb funktsiooni readRDS tegevusest, mida kasutatakse RDS ja RDX formaadis failide laadimiseks, mis võimaldavad serialiseeritud R-objektide edastamist töötlemiseks teisele süsteemile. Serialiseerimine võimaldab fikseerida oleku ja vahetada andmehulkade vahel programmide vahel. RDS formaat võimaldab säilitada ühte objekti seisundit, samas kui RDX formaat koos RDB-failidega võimaldab edastada teavet mitme objekti kohta. Probleem seisneb selles, et RDS formaat toetab PROMSXP objekti koodi, mis on seotud Promise tüübi, mida kasutatakse väljendite määratlemiseks, mis kutsutakse asünkroonselt esile seoses nendega seotud väärtuste kasutamisega.
Deserialiseerimise käigus kasutatakse Promise objekti määratlemiseks kolme komponenti: Promise’i väärtus, väljend ja keskkond. Kui Promise’i tüübi jaoks ei ole eelnevalt arvutatud väärtust määratud, arvutatakse see deserialiseerimise käigus väljendi täitmisega, kasutades funktsiooni «eval». Seetõttu saab ründaja saavutada mis tahes koodi täitmise R keeles, asendades selle väljendiga, mis on seotud arvutamata väärtustega RDS või RDX failides.
Allikas: opennet.ru
