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

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

编译:代码卫士

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

4b129454d105567339c429236bbc4058.jpeg

代码卫士试用地址: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”。

bad02c2802a4e488dc2d5fa1b1d08a06.jpeg

d19262571eeb326a8b332cc31a9fe4f5.jpeg

奇安信代码卫士 (codesafe)

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值