Node.js 和 JavaScript 的最新版 npm 导致 Linux 系统崩溃,迫使用户重装系统!

2018 年 2 月 23 日 云头条

npm(节点软件包管理器)是使用最广泛的JavaScript软件包管理器,npm中的一个缺陷(bug)将更改重要的Linux系统文件夹(比如/etc、/usr和/boot)的所有权。



据此前安装npm v5.7.0的用户声称,更改这些文件的所有权后,结果不是导致系统和各个本地应用程序崩溃,就是阻止系统启动。这是一款显然存在缺陷的npm更新版。


大多数用户将不得不重装系统


安装了此更新版的用户(主要是开发人员和软件工程师)可能不得不从头开始重新安装系统,或者从之前的系统镜像来进行恢复。


一位受到影响的用户今天在GitHub的缺陷报告中诉苦:“仅仅部署了一下, 3台生产环境服务器就彻底毁了。”其他许多用户纷纷跑到Twitter,吐槽开发和生产环境服务器存在类似问题,提醒其他用户切勿更新。


我的天……npm中的缺陷更改了/ 文件系统的属性,搞坏了生产环境linux或unix系统。“sudo npm”将更改“/”目录的所有权。

我开这个问题单是由于,npm崩溃了。npm导致了不正确的安装。npm的行为让我摸不着头脑。


“如果我运行sudo npm --help……我的文件系统[更改]/etc、/usr和/boot等目录的所有权。”

今天对许多操作人员来说会是漫长的一天。


来自npm社区的早间问候:垃圾箱着火了:

我开这个问题单是由于,npm崩溃了。npm导致了不正确的安装。npm的行为让我摸不着头脑。


今天真不想成为Node.js开发人员,听起来最新版的NPM将你的系统搞砸了。


一周前就首次报告了缺陷


这个缺陷在一周前就被首次报告了,却迟迟没有得到npm开发人员的答复。昨晚的版本发布后,用户们提交了一个新的错误报告(https://github.com/npm/npm/issues/19883),随后npm的开发团队发布了npm v5.7.1,这个版本去除了有缺陷的代码。FreeBSD用户也反映受到了这个缺陷的影响。Mac用户和Windows用户没有遇到任何问题。这个问题并没有影响到所有Linux用户。



在v5.7.0上线三小时后,软件开发人员杰瑞德•蒂亚拉(Jared Tiala)向npm的开发团队报告了这个问题。他说:“如果以非root用户的身份(root用户没有同样的影响)运行sudo npm,文件系统权限会被严重修改。”


以root用户的身份运行npm update命令并不导致npm试图为所有文件重新分配root所有权,所以这个问题似乎只影响以sudo命令作为前缀的npm update操作。


蒂亚说:“比如说,如果我运行sudo npm --help或sudo npm update -g,那么这两个命令都会导致文件系统更改/etc、/usr、/boot等目录以及运行系统所需要的其他目录的所有权。 看起来所有权被递归更改,改成属于目前运行npm的用户。”


npm是Node.js和JavaScript的一个重要部分,而Node.js和JavaScript运行着如今许多网站。尽管npm很重要,但npm项目却只有两个开发人员。这使得该项目极容易出现低级错误;万一哪里出了岔子,这两名程序员同时在梦乡的情况也很常见。


npm是所有大中小型JavaScript项目的事实上的软件包管理器。npm由Node.js来包装,也是互联网上的头号软件包管理器,为Node.js、Ember、jQuery、Bootstrap、React、Angular及其他许多JavaScript框架托管代码库和插件。这年头你找不到不使用JavaScript的开发人员。


这可不是npm头一回表明它到底有多脆弱不堪了。两年前,一名程序员仓促发布了一个只有7行代码的名为left-pad的程序后(成千上万的Node.js程序需要该程序才能正常运行),npm发生了灾难性故障。像这么重要的程序不该只有两名核心开发人员靠拮据的经费来运作和维护。


登录查看更多
0

相关内容

Node.js 是一个在浏览器外部创建互联网应用程序的框架,它基于 Google 开发的 V8 JavaScript 引擎,轻量,高效,事件驱动,非阻塞I/O,特别适合运行于跨分布式设备的实时数据处理程序。
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
专知会员服务
69+阅读 · 2020年1月17日
【书籍推荐】简洁的Python编程(Clean Python),附274页pdf
专知会员服务
179+阅读 · 2020年1月1日
机器学习在材料科学中的应用综述,21页pdf
专知会员服务
48+阅读 · 2019年9月24日
msf实现linux shell反弹
黑白之道
49+阅读 · 2019年8月16日
用Now轻松部署无服务器Node应用程序
前端之巅
16+阅读 · 2019年6月19日
Kali Linux 渗透测试:密码攻击
计算机与网络安全
16+阅读 · 2019年5月13日
“黑客”入门学习之“windows系统漏洞详解”
安全优佳
8+阅读 · 2019年4月17日
基于Web页面验证码机制漏洞的检测
FreeBuf
7+阅读 · 2019年3月15日
去哪儿网开源DNS管理系统OpenDnsdb
运维帮
21+阅读 · 2019年1月22日
Python | Jupyter导出PDF,自定义脚本告别G安装包
程序人生
7+阅读 · 2018年7月17日
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
Learning Recommender Systems from Multi-Behavior Data
Arxiv
7+阅读 · 2018年11月29日
Next Item Recommendation with Self-Attention
Arxiv
5+阅读 · 2018年8月25日
Arxiv
23+阅读 · 2018年8月3日
Arxiv
6+阅读 · 2018年5月18日
Arxiv
14+阅读 · 2018年4月18日
Arxiv
4+阅读 · 2018年4月9日
Arxiv
9+阅读 · 2018年3月23日
Arxiv
5+阅读 · 2018年1月23日
VIP会员
相关VIP内容
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
TensorFlow Lite指南实战《TensorFlow Lite A primer》,附48页PPT
专知会员服务
69+阅读 · 2020年1月17日
【书籍推荐】简洁的Python编程(Clean Python),附274页pdf
专知会员服务
179+阅读 · 2020年1月1日
机器学习在材料科学中的应用综述,21页pdf
专知会员服务
48+阅读 · 2019年9月24日
相关资讯
msf实现linux shell反弹
黑白之道
49+阅读 · 2019年8月16日
用Now轻松部署无服务器Node应用程序
前端之巅
16+阅读 · 2019年6月19日
Kali Linux 渗透测试:密码攻击
计算机与网络安全
16+阅读 · 2019年5月13日
“黑客”入门学习之“windows系统漏洞详解”
安全优佳
8+阅读 · 2019年4月17日
基于Web页面验证码机制漏洞的检测
FreeBuf
7+阅读 · 2019年3月15日
去哪儿网开源DNS管理系统OpenDnsdb
运维帮
21+阅读 · 2019年1月22日
Python | Jupyter导出PDF,自定义脚本告别G安装包
程序人生
7+阅读 · 2018年7月17日
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
相关论文
Learning Recommender Systems from Multi-Behavior Data
Arxiv
7+阅读 · 2018年11月29日
Next Item Recommendation with Self-Attention
Arxiv
5+阅读 · 2018年8月25日
Arxiv
23+阅读 · 2018年8月3日
Arxiv
6+阅读 · 2018年5月18日
Arxiv
14+阅读 · 2018年4月18日
Arxiv
4+阅读 · 2018年4月9日
Arxiv
9+阅读 · 2018年3月23日
Arxiv
5+阅读 · 2018年1月23日
Top
微信扫码咨询专知VIP会员