V jadre implementácie programovacieho jazyka R, ktorý je určený na štatistické spracovanie, analýzu a vizualizáciu údajov, bola identifikovaná kritická zraniteľnosť (CVE-2024-27322). Táto zraniteľnosť umožňuje spustenie kódu pri deserializácii nedôveryhodných údajov. Zraniteľnosť možno zneužiť pri spracovaní špeciálne vytvorených súborov vo formátoch R Data Serialization (RDS) a RDX, ktoré sa používajú na výmenu údajov medzi aplikáciami. Problém bol opravený vo verzii R 4.4.0. Vydávanie aktualizácií balíkov v distribúciách môžete sledovať na nasledujúcich stránkach: Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD.
Zraniteľnosť je spôsobená funkciou readRDS, ktorá sa používa na načítanie súborov vo formátoch RDS a RDX, ktoré umožňujú preniesť serializované objekty R na spracovanie v inom systéme. Serializácia umožňuje zachytiť stav a vymieňať si súbory údajov medzi programami. Formát RDS umožňuje uložiť stav o jednom objekte a formát RDX v kombinácii so súbormi RDB umožňuje prenášať informácie o viacerých objektoch. Problém je v tom, že formát RDS podporuje objektový kód PROMSXP spojený s typom Promise, ktorý sa používa na definovanie výrazov, ktoré sa volajú asynchrónne, keď sa použijú ich priradené hodnoty.
Počas deserializácie sa na definovanie objektu Promise používajú tri časti – hodnota Promise, výraz a prostredie. Ak typ Promise nemá vopred vypočítanú hodnotu, vypočíta sa počas deserializácie vykonaním výrazu pomocou funkcie „eval“. Týmto spôsobom by útočník mohol spôsobiť spustenie ľubovoľného kódu R tým, že ho nahradí výrazom spojeným s nevypočítanými hodnotami v súboroch RDS alebo RDX.
Zdroj: opennet.ru
