高严重代码注入漏洞影响Yamale Python包 超过200个项目使用

在23andMe的Yamale (YAML的模式和验证器)中披露了一个高度严重的代码注入漏洞,网络攻击者可以随意利用该漏洞执行任意Python代码。

该漏洞被跟踪为CVE-2021-38305(CVSS分数:7.8),涉及操纵作为工具输入提供的架构文件,以绕过保护并实现代码执行。特别是,问题存在于模式解析函数中,该函数允许对传入的任何输入进行求值和执行,从而导致在模式中使用特殊制作的字符串来注入系统命令的情况。

Yamale是一个Python包,它允许开发人员从命令行验证YAML(一种经常用于编写配置文件的数据序列化语言)。GitHub上至少有224个存储库使用这个包。

JFrog Security 首席技术官 Asaf Karas 在电子邮件声明中说:“这个漏洞允许攻击者提供输入模式文件来执行 Python 代码注入,从而导致使用Yamale进程的特权执行代码。” “我们建议对任何进入eval() 的输入进行彻底的清理,最好是用任务所需的更具体的api替换eval()调用。”

该问题已在Yamale 版本3.0.8中得到纠正。Yamale的维护者在8月4日发布的发布说明中指出:“这个版本修复了一个错误,即格式良好的模式文件可以在运行Yamale的系统上执行任意代码。”

这是JFrog在Python包中发现的一系列安全问题中的最新发现。

2021年6月,Vdoo在PyPi存储库中披露了typosquatted包,发现这些包下载并执行第三方加密器,如T-Rex、ubqminer或PhoenixMiner,用于在受影响的系统上挖掘以太坊和Ubiq。

随后,JFrog安全团队发现了另外8个恶意的Python库,这些库被下载了不少于3万次,可以用来在目标机器上执行远程代码,收集系统信息,窃取信用卡信息和自动保存在Chrome和Edge浏览器中的密码,甚至窃取Discord认证令牌。

“软件包存储库正成为供应链攻击的热门目标,npm、PyPI和RubyGems等流行存储库已经受到恶意软件攻击,”研究人员称。“有时,恶意软件包被允许上传到包存储库,这给了恶意行为者利用存储库传播病毒的机会,并对开发人员和管道中的CI/CD机发起成功的攻击。”

随着敏捷开发的盛行,第三方软件包存储库被广泛使用,这在一定程度上帮助开发人员加快开发进程,提高工作效率。但在犯罪分子眼中,开发人员及其团队及客户群已成为恶意软件的关键切入点,针对开发人员的最常见的攻击媒介之一是利用公共软件包存储库。因此在使用这些托管包时,对框架及代码及时进行安全检测十分重要。

当应用程序中的第三代码方库不能保持在最新状态时,对企业来说后果可能很严重。首先,违规风险可能会更高,其次是增加了补丁的复杂性。漏洞时间越长修补就越复杂,打补丁所需的时间就越长,破坏应用程序的风险也就越大。

因此在软件开发期间就开始关注代码质量和安全,使用静态代码检测工具或SCA等工具,检测编码规范问题及缺陷,提高自研代码及第三方代码的安全性,不但可以为开发人员查看修改代码问题节省大量时间成本,还能为后续维护软件安全问题减少阻力,确保软件自身安全。

参读链接:

thehackernews.com/2021/10/cod…

评论