A programozási nyelv, az R, amely a statisztikai feldolgozás, elemzés és adatvizualizáció feladatainak megoldására irányul, kritikus sebezhetőséget (CVE-2024-27322) tárt fel, amely kód végrehajtásához vezethet a nem ellenőrzött adatok deszerializálása során. A sebezhetőség kifejlesztett fájlok feldolgozása során kihasználható az RDS (R Data Serialization) és RDX formátumokban, amelyek alkalmazások közötti adatcserére szolgálnak. A probléma megoldva az R 4.4.0 kiadásában. Az összes csomagfrissítés nyomon követhető a Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD disztribúciók oldalain.
A sebezhetőség a readRDS funkció működésével kapcsolatos, amelyet az RDS és RDX formátumú fájlok betöltésére használnak, lehetővé téve az R sérializált objektumok egy másik rendszeren való feldolgozását. A sérializáció lehetővé teszi az állapot rögzítését és a készletek adatcseréjét programok között. Az RDS formátum egyetlen objektum állapotának tárolását teszi lehetővé, míg az RDX formátum az RDB fájlokkal kombinálva több objektumról szóló információk átvitelét kínálja. A probléma összefügg azzal, hogy az RDS formátum támogatja a PROMSXP objektumkódot, amely a Promise típushoz kapcsolódik, amelyet az olyan kifejezések meghatározására használnak, amelyeket aszinkron módon hívnak elő, az azzal összefüggő értékek használata során.
A deszerializálás során a Promise objektum meghatározásához három összetevő szükséges: a Promise értéke, a kifejezés és a környezet. Ha a Promise típushoz nincs előzetesen kiszámított érték megadva, akkor az a deszerializálás során a kifejezés végrehajtásával számítódik ki az 'eval' funkció segítségével. Így a támadó tetszőleges kód végrehajtását érheti el az R nyelven, ha azt behelyettesíti a RDS vagy RDX fájlokban található, nem kiszámított értékekkel összefüggő kifejezés helyére.
Forrás: opennet.ru
