یک آسیب پذیری امنیتی (CVE-2024-27322) در زبان برنامه نویسی R کشف شده است که میتواند توسط هکرها برای ایجاد یک فایل مخرب RDS (R Data Serialization) مورد سوء استفاده قرار گیرد. این فایل به هنگام بارگیری و ارجاع، منجر به اجرای کد میشود.
R یک زبان برنامه نویسی منبع باز است که در میان کارشناسان آمار، داده کاوی، یادگیری ماشین و هوش مصنوعی بسیار محبوب میباشد.
پکیجهای R از فرمت RDS برای ذخیره و بارگذاری دادهها استفاده میکنند و باعث اجرای خودکار کد به هنگام خروج پکیج از حالت فشرده میشوند. پکیجهای R در برابر این اکسپلویت آسیب پذیر بوده و میتوانند به عنوان بخشی از حمله زنجیره تأمین از طریق مخازن پکیجها مورد استفاده قرار گیرند.
RDS، مانند pickle در پایتون، فرمتی است که برای دنباله سازی[1] و ذخیره وضعیت ساختارهای داده یا آبجکت ها در R، استفاده میشود. این فرآیند دنباله سازی (serialize() و saveRDS()) و غیردنباله سازی[2] (unserialize() و readRDS())، به هنگام ذخیره و بارگذاری پکیجهای R مورد استفاده قرار میگیرد.
قربانیان میبایست متقاعد یا فریب داده شوند که فایل ها را اجرا کنند، بنابراین حمله شامل یک مرحله مهندسی اجتماعی است. مهاجمان میتوانند رویکرد منفعلتری را انتخاب کنند و پکیج ها را در مخازن پرمخاطب، توزیع کرده و منتظر بمانند تا قربانیان آنها را دانلود نمایند.
مهاجم کافیست تا فایل rdx را با فایلی که به طور مخرب ساخته شده است، بازنویسی کند. پکیج به هنگام لود شدن، کد را به طور خودکار اجرا خواهد کرد.
این نقص امنیتی در نسخه 4.4.0 که در 24 آوریل 2024 منتشر گردید، برطرف شده است.
[1] serialization
[2] deserialization