Уязвимост в изпълнението на езика R, позволяваща изпълнение на код при обработка на файлове rds и rdx

В основната реализация на езика за програмиране R, насочен към решаване на задачи в статистическата обработка, анализа и визуализацията на данни, е открита критична уязвимост (CVE-2024-27322), водеща до изпълнение на код при десериализация на непроверени данни. Уязвимостта може да бъде експлоатирана при обработка на специално форматирани файлове в RDS (R Data Serialization) и RDX, използвани за обмен на данни между приложения. Проблемът е отстранен в издание R 4.4.0. Може да се проследи издаването на актуализации на пакетите в дистрибуции на страниците на Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD.

Уязвимостта е предизвикана от особеност на работата на функцията readRDS, използвана за зареждане на файлове в RDS и RDX, които позволяват предаване на сериализирани R обекти за обработка на друга система. Сериализацията дава възможност за фиксиране на състоянието и обмен на набори данни между програми. Форматът RDS позволява съхранение на състоянието на един обект, а форматът RDX в комбинация с файлове RDB дава възможност за предаване на информация за няколко обекта. Проблемът е свързан с факта, че форматът RDS поддържа обектен код PROMSXP, свързан с типа Promise, който се използва за определяне на изрази, извиквани асинхронно по време на използването на свързаните с тях стойности.

По време на десериализацията за определяне на обект Promise се използват три съставки — стойност Promise, израз и околна среда. Ако за типа Promise не е зададена предварително изчислена стойност, тя се изчислява при десериализация чрез изпълнение на израза с помощта на функцията «eval». Така атакуващият може да постигне изпълнение на произволен код на езика R, подменяйки го вместо израз, свързан с неизчислените стойности във файлове RDS или RDX.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster