R语言中的新漏洞可导致项目易受供应链攻击
2024-4-30 12:9:22 Author: mp.weixin.qq.com(查看原文) 阅读量:0 收藏

 聚焦源代码安全,网罗国内外最新资讯!

编译:代码卫士

R编程语言中存在一个漏洞,可被威胁行动者用于创建一个恶意RDS(R数据序列化)文件,从而在加载和引用时导致代码执行后果。

AI应用安全公司 HiddenLayer 在报告中提到,该漏洞的编号是CVE-2024-27322,“涉及使用R中的 promise 对象和惰性评估。” RDS类似于Python 中的 pickle,是一种用于对R中数据结构或对象状态进行序列化并保存的格式。R语言是一种开源编程语言,用于统计计算、数据可视化和机器挖掘。

这种序列化流程(serialize() 或 saveRDS())和反序列化(unserialize() 和 readRDS())也用于保存和加载R包。CVE-2024-27322的根因在于,在反序列化不可信数据时会导致任意代码执行,从而可使用户通过特殊构造R包被暴露给供应链攻击。因此,武器化利用该缺陷的攻击者可利用R包通过RDS格式保存和加载数据的方法,在程序包被解压和反序列化时自动执行代码。

安全研究员 Kasimir Schulz 和 Kieran Evans 表示,“R包易受该利用影响,因此能够用作经由包仓库发动的供应链攻击的一部分。攻击者要接管R包,他们所需做的就是以恶意构造的文件覆写 rdx 文件,而当宝加载时,它会自动执行代码。”

该漏洞已于2024年4月24日的版本4.4.0中修复。

HiddenLayer 公司指出,“攻击者利用该漏洞的方式是,构造 RDS 格式的文件,其中内含一个promise 指令,将值设为 unbound_value以及将表达式设为包含任意代码。由于惰性评估的原因,该表达式只有在与 RDS 文件相关联的符号被访问时,才会被评估和运行。因此,如果它只是一个RDS文件,当用户为其分配一个符号(变量)进行运作时,当用户引用该符号时,任意代码将会被执行。如果该对象是在R宝中编译的,则该包可被添加到 R 仓库中如 CRAN,而该表达式将得到评估,当用户加载该包时,任意代码就会运行。”

代码卫士试用地址:https://codesafe.qianxin.com
开源卫士试用地址:https://oss.qianxin.com

推荐阅读

在线阅读版:《2023中国软件供应链安全分析报告》全文

奇安信入选全球《软件成分分析全景图》代表厂商

NSA 发布关于集成SBOMs 提升网络安全的指南

CISA、NSA等联合发布关于SBOM的软件供应链安全保护新指南

《软件供应商手册:SBOM的生成和提供》解读

美国商务部发布软件物料清单 (SBOM) 的最小元素(上)

美国商务部发布软件物料清单 (SBOM) 的最小元素(中)

美国商务部发布软件物料清单 (SBOM) 的最小元素(下)

原文链接

https://thehackernews.com/2024/04/new-r-programming-vulnerability-exposes.html

题图:Pixabay License

本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。

奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的产品线。

    觉得不错,就点个 “在看” 或 "” 吧~


文章来源: https://mp.weixin.qq.com/s?__biz=MzI2NTg4OTc5Nw==&mid=2247519400&idx=1&sn=66cec4a7fd3d72c14f92738147c6d83a&chksm=ea94bdc2dde334d4b90886120c2d35848bb06c0cb45b93d2e709e6ceeacef8ea6b680ebbac16&scene=58&subscene=0#rd
如有侵权请联系:admin#unsafe.sh