知名 Node.js 组件存在代码注入漏洞

安全 漏洞
日前,一个被大量下载的 Node.js 组件被发现其含有一个高危的代码注入漏洞。该漏洞被追踪为 CVE-2021-21315,影响了「systeminformation」npm 组件的安全性,该组件每周的下载量约为 80 万次,自诞生以来,至今已获得近 3400 万次下载。

日前,一个被大量下载的 Node.js 组件被发现其含有一个高危的代码注入漏洞。

该漏洞被追踪为 CVE-2021-21315,影响了「systeminformation」npm 组件的安全性,该组件每周的下载量约为 80 万次,自诞生以来,至今已获得近 3400 万次下载。

漏洞已被修复

简单来说,「systeminformation」是一个轻量级的 Node.js 组件,开发者可以在项目中加入该组件,以检索与 CPU、硬件、电池、网络、服务和系统进程相关的系统信息。

该组件的开发者表示:"虽然 Node.js 自带了一些基本的操作系统信息,但我一直想要获得更多信息。因此我就写了这个小型的组件。这个组件目前还在开发中。它可以作为一个后端/服务器端的组件来使用的,肯定不会在浏览器内工作"。

然而,「systeminformation」中代码注入漏洞的存在意味着攻击者可以通过在组件使用的未初始化参数内小心翼翼地注入有效载荷来执行系统命令。

下图所示的是「systeminformation」在 5.3.1 版本的修复,在调用进一步的命令之前,会对参数进行清理,以检查它们是否为字符串数据类型,并额外检查该参数在任何时候是否发生过原型污染。

「systeminformation」的用户应升级到 5.3.1 及以上版本,以解决其应用程序中的 CVE-2021-21315 漏洞。

变通方法同样可用

对于那些项目灵活性不高、无法升级到修复版本的开发者,「systeminformation」项目的发布者在公告中也分享了一个可以采用的变通方法。

安全公告中提到:“作为替代升级的一种变通方法,一定要检查或清理传递给 si.inetLatency()、si.inetChecksite()、si.services()、si.processLoad() 的服务参数。只允许字符串,拒绝任何数组。”

这同样涉及清理参数中的任何违规字符,并正确验证它们是否属于字符串数据类型。

本文转自OSCHINA

本文标题:知名 Node.js 组件存在代码注入漏洞

本文地址:https://www.oschina.net/news/131199/heavily-used-nodejs-package-has-a-code-injection-vulnerability

 

责任编辑:未丽燕 来源: 开源中国
相关推荐

2012-02-02 15:14:29

Node.js

2015-03-10 10:59:18

Node.js开发指南基础介绍

2011-12-23 13:58:57

node.js

2013-11-01 09:34:56

Node.js技术

2022-04-02 06:04:03

Node.js代码缓存V8

2012-10-24 14:56:30

IBMdw

2011-11-10 08:55:00

Node.js

2011-09-08 13:46:14

node.js

2011-09-02 14:47:48

Node

2011-11-01 10:30:36

Node.js

2011-09-09 14:23:13

Node.js

2021-12-25 22:29:57

Node.js 微任务处理事件循环

2020-05-29 15:33:28

Node.js框架JavaScript

2020-08-24 08:07:32

Node.js文件函数

2012-02-03 09:25:39

Node.js

2015-06-23 15:27:53

HproseNode.js

2020-10-26 08:34:13

Node.jsCORS前端

2021-02-01 15:42:45

Node.jsSQL应用程序

2021-04-06 10:15:29

Node.jsHooks前端

2021-07-09 00:24:10

No.jsNode.js原理
点赞
收藏

51CTO技术栈公众号