日前,某被大量下载的Node.js组件被发现存在高危代码注入漏洞。该漏洞编号为CVE-2021-21315,影响“systeminformation”npm组件的安全,该组件每周下载约80万次,自推出以来已获得近3400万次下载。Bug已修复简单地说,“systeminformation”是一个轻量级的Node.js组件,开发人员可以将其包含在他们的项目中,以检索与CPU、硬件、电池、网络、服务和系统进程信息相关的系统信息。这个组件的开发者说:“虽然Node.js附带了一些基本的操作系统信息,但我一直想要更多的信息。所以我写了这个小组件。这个组件仍在开发中。它可以作为后端/服务器端使用组件,绝对不会在浏览器中工作”。然而,“systeminformation”中存在代码注入漏洞,这意味着攻击者可以通过在组件使用的未初始化参数中小心地注入有效载荷来执行系统命令。下面显示的是版本5.3.1中对“systeminformation”的修复,在调用更多命令之前,对参数进行清理以检查它们是否为字符串数据类型,并额外检查参数是否随时发生原型污染。“systeminformation”用户应升级到5.3.1及以上版本,以解决其应用程序中的CVE-2021-21315漏洞。也有变通办法对于项目不够灵活无法升级到固定版本的开发者,“systeminformation”项目的发布者也在公告中分享了变通办法。安全公告指出:“作为替代升级的解决方法,请务必检查或清理传递给si.inetLatency()、si.inetChecksite()、si.services()、si.processLoad()的服务参数。只有字符串是允许的,不允许数组。”这再次涉及清理参数中的任何违规字符并正确验证它们是否属于字符串数据类型。本文转自OSCHINA文章标题:知名Node.js组件存在代码注入漏洞
