R语言中的新漏洞可导致项目易受供应链攻击

admin 2024年5月1日23:01:03评论5 views字数 865阅读2分53秒阅读模式

R语言中的新漏洞可导致项目易受供应链攻击聚焦源代码安全,网罗国内外最新资讯!

编译:代码卫士

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,而该表达式将得到评估,当用户加载该包时,任意代码就会运行。”

R语言中的新漏洞可导致项目易受供应链攻击

原文始发于微信公众号(代码卫士):R语言中的新漏洞可导致项目易受供应链攻击

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年5月1日23:01:03
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   R语言中的新漏洞可导致项目易受供应链攻击https://cn-sec.com/archives/2701831.html

发表评论

匿名网友 填写信息