Une nouvelle vulnérabilité a été découverte dans le langage de programmation R qui permet l’exécution de code arbitraire lors de la désérialisation de fichiers RDS et RDX spécialement conçus.
R est un langage de programmation open source particulièrement populaire parmi les statisticiens et les mineurs de données qui développent et utilisent des modèles d’analyse de données personnalisés, et il est également de plus en plus adopté par le domaine émergent de l’IA/ML.
Des chercheurs de HiddenLayer ont récemment découvert une vulnérabilité dans R, répertoriée sous le numéro CVE-2024-27322 (CVSS v3: 8.8), qui permet aux attaquants d’exécuter du code arbitraire sur des machines cibles lorsque la victime ouvre la sérialisation des données R (RDS) ou les fichiers de package R (RDX).
La vulnérabilité exploite la façon dont R gère la sérialisation (« saveRDS ») et la désérialisation (« readRDS »), en particulier via des objets de promesse et une « évaluation paresseuse ». »
Les attaquants peuvent incorporer des objets de promesse avec du code arbitraire dans les métadonnées du fichier RDS sous la forme d’expressions, qui sont évaluées lors de la désérialisation, entraînant l’exécution du code.
La victime doit être convaincue ou incitée à exécuter ces fichiers, de sorte que l’attaque implique une composante d’ingénierie sociale.
Cependant, les attaquants peuvent opter pour une approche plus passive, distribuant les packages sur des référentiels largement utilisés et attendant que les victimes les téléchargent.
Impact et atténuation
HiddenLayer explique que CVE-2024-27322 a des implications de grande envergure en raison de son utilisation intensive dans des secteurs critiques et du grand nombre de packages déployés dans des environnements d’analyse de données sans contrôles suffisants.
« Après avoir effectué des recherches sur GitHub, notre équipe a découvert que readRDS, l’un des nombreux moyens d’exploiter cette vulnérabilité, est référencé dans plus de 135 000 fichiers sources R. En parcourant les référentiels, nous avons constaté qu’une grande partie de l’utilisation concernait des données non fiables fournies par l’utilisateur, ce qui pourrait entraîner une compromission complète du système exécutant le programme. Certains fichiers sources contenant du code potentiellement vulnérable comprenaient des projets de R Studio, Facebook, Google, Microsoft, AWS et d’autres grands éditeurs de logiciels. »- Couche cachée
CERT / CC a émis une alerte pour avertir les projets et les organisations qui utilisent R et la fonction readRDS sur des packages non vérifiés de la nécessité de mettre à jour vers R Core version 4.4.0, qui traite de CVE-2024-27322.
Publié le 24 avril 2024, R Core v4. 4. 0 introduit des restrictions sur l’utilisation des promesses dans le flux de sérialisation, empêchant l’exécution de code arbitraire.
Les organisations qui ne peuvent pas mettre à niveau immédiatement ou qui souhaitent implémenter des couches de sécurité supplémentaires doivent exécuter des fichiers RDS/RDX dans des environnements isolés tels que des bacs à sable et des conteneurs pour empêcher l’exécution de code sur le système sous-jacent.