出品|开源中国
根据外媒 BleepingComputer 近日的报道,多个 PyPI 软件包被发现含有后门,原因是这些软件包的某些版本存在恶意的 'request' 依赖,涉及的软件包包括 pyanxdns、api-res-py,以及 keep。
以 keep 为例,它会使用合法的 Python 模块 requests 来进行 HTTP 请求,但 keep v.1.2 版本中包含了一个名为 request 的模块(注:后者缺少末尾的字母 s),虽然仅有一个字母的差异但没有 s 的 request 被认定为恶意依赖。
受影响的各个软件包版本及 CVE ID 如下:
CVE-2022-30877:keep v1.2 版本受到影响
CVE-2022-30882:pyanxdns v0.2 版本受到影响
CVE-2022-31313:api-res-py v0.1 版受到影响
早在 5 月,就有研究人员注意到上述软件包的部分版本包含拼写错误的 request 依赖,而不是合法的 requests。虽然 pyanxdns 和 api-res-py 规模相对较小,用户数量也不算多,但 keep 则是一个周下载量平均超过 8000 次的软件包,如上所述其 1.2 版本使用了恶意依赖。
通过查看 keep v1.2 版本的代码可以发现该版本包含恶意后门,而这个恶意后门就是 request 依赖。即使 request 被 PyPI 删除,但还有许多镜像网站没有完全删除这个版本的软件包,所以不知情的用户仍有可能会安装这个包含恶意依赖的软件包。
进一步查看可以发现,代码的第 57 行包含一个 base64 编码的 URL,指向下面显示的 check.so 恶意软件。分析员还发现了另一个 URL(x.pyx),也与 request 依赖关系有关。
其中 check.so 传递了一个远程访问木马(RAT),而 x.pyx 包含信息窃取恶意软件,可以从 Chrome、Firefox、Yandex、Brave 等网络浏览器窃取 cookies 和个人信息。
在多个 PyPI 软件包中同时出现相同的恶意依赖,确实给人们提出了一个关键问题 —— 这是怎么发生的?
外媒 BleepingComputer 尝试联系了这些软件包的作者,以了解这个问题是由单纯的打错了字产生的,还是维护者账户被劫持所导致。从 pyanxdns 作者和维护者 Marky Egebäck 那里得到的回复确认,这个错误确实是由打错字所造成的。
Egebäck 表示:
很抱歉,在 setup.py 文件中出现了一个打字错误,根据 git 历史记录显示,这是在我添加 install_requires 的时候添加的。
此后,该开发者重新向 PyPI 上传了一个新版本,并删除了引用恶意 require 依赖的版本。
目前有在项目中使用 pyanxdns、api-res-py,以及 keep 的开发者还是需要查看一下目前在使用的版本是什么,避免受到漏洞的影响,尽快升级到最新版本,或使用其他软件包进行替换。
留言与评论(共有 0 条评论) “” |