聚焦源代码安全,网罗国内外最新资讯!
编译:代码卫士
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://thehackernews.com/2024/04/new-r-programming-vulnerability-exposes.html
题图:Pixabay License
本文由奇安信编译,不代表奇安信观点。转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。
奇安信代码卫士 (codesafe)
国内首个专注于软件开发安全的产品线。
觉得不错,就点个 “在看” 或 "赞” 吧~