
vue cli 的一个依赖库,node-ipc 在最近的版本改了 license ,同时也加了一个 peacenotwar 的依赖库。
这个库就是 node-ipc 作者自己的,他的作用本来是输出一个反战的 log 。
但最近的版本会检测你的 IP ,如果发现匹配就直接用垃圾数据填充你的文件。然而这个 IP 检查会有各种错误。。。
另外还有几百个库依赖了 node-ipc ,如果你有使用最好也排查一下。
详情可见 https://gist.github.com/MidSpike/f7ae3457420af78a54b38a31cc0c809c
1 Oktfolio 2022-03-18 10:14:33 +08:00 又是开源库放毒 |
2 olaloong 2022-03-18 10:16:32 +08:00 这操作,属实失了智 |
3 ALVC666 2022-03-18 10:21:32 +08:00 有点恶心了。。 |
4 yazinnnn 2022-03-18 10:21:55 +08:00 这些傻逼总是以为是码农发动的战争 |
5 liuidetmks 2022-03-18 10:38:57 +08:00 破坏计算机系统罪? 可惜中国没有长臂管辖 |
6 sarices 2022-03-18 10:40:01 +08:00 如果开源社区默许了这个行为对于开源社区是灾难性的,任何人都能以抗议的形式,夹带病毒。 |
7 0o0O0o0O0o 2022-03-18 10:47:53 +08:00 via iPhone 这件事在 V2EX 被披露的第二天我就把我电脑上的 npm 删了,以后全部用 docker 配合 volume 吧,这样只影响项目目录。 关于防护,有人有更好的建议吗? |
8 yujinchn 2022-03-18 10:52:34 +08:00 @0o0O0o0O0o 已经被 npm 拉黑了,新版本的 vue-cli 好像也移除这个库了,不是 ip 的服务器应该问题不大 |
9 2kCS5c0b0ITXE5k2 2022-03-18 10:54:24 +08:00 现在我打开互联网想聊聊游戏,聊聊电影小说音乐,聊聊代码 但是这些我原以为属于生活的东西却越来越政治化。 |
10 christin 2022-03-18 10:59:35 +08:00 via iPhone @0o0O0o0O0o #7 不要升级最新的,等两三个月在升级 |
11 xiao109 2022-03-18 11:02:51 +08:00 peace and love. 我给你马两刀 |
12 miniliuke 2022-03-18 11:05:40 +08:00 这件事是赤裸裸得犯罪啊,政治正确得威力还是大啊 |
13 0o0O0o0O0o 2022-03-18 11:06:31 +08:00 via iPhone |
14 infactory 2022-03-18 11:10:47 +08:00 npm 真是隔一段时间就能整个活 |
15 run2 2022-03-18 11:13:04 +08:00 被感染的包里 https://github.com/RIAEvangelist/peacenotwar/network/dependents 出现了 vuejs / vue-cli 是我没有想到的,里面还有一些通过 vue-cli 新建的项目。 |
16 x86 2022-03-18 11:13:14 +08:00 前端娱乐圈 |
17 shijingshijing 2022-03-18 11:13:36 +08:00 @infactory 不整活没法活 |
18 jk54 2022-03-18 11:15:46 +08:00 最近看到整活的好像都是 npm.... 其他也有包管理依赖语言的,比如 go ,rust ,java 印象中没有看到过类似的事情。有谁可以举个例子吗 |
19 zhangshine 2022-03-18 11:17:05 +08:00 是不是魔怔了? |
20 learningman 2022-03-18 11:18:39 +08:00 @jk54 #18 比如 pypi 啊,go 啊这种包管理的设计其实都能整活的,可能还没人想到吧 |
21 leavic 2022-03-18 11:20:58 +08:00 nodejs 出这种事不是第一次了吧/div> |
22 agdhole 2022-03-18 11:21:52 +08:00 @emeab #9 互联网从未不政治过,在国内早就因为政治让大多数游戏,部分音乐、网站这些生活的东西无法访问或进行高压审查了。 |
23 adoal 2022-03-18 11:22:38 +08:00 又是 node.js 娱乐圈 |
24 adoal 2022-03-18 11:24:22 +08:00 @learningman pypi 也有过,不过因为被投毒的包本身没多少用户,影响不大 |
25 polobug 2022-03-18 11:27:16 +08:00 反战就反战,夹私货干啥。。。。政治巨婴。。。 |
26 irainsoft 2022-03-18 11:29:26 +08:00 GitHub 举报里面包含了“harmful code”这一选项,不知道对这个库是否有效 https://support.github.com/contact/report-abuse?category=report-abuse |
28 FightPig 2022-03-18 11:34:01 +08:00 node 是一年要出个两三回这种那种的事 |
29 matrix67 2022-03-18 11:34:02 +08:00 |
31 fengyj 2022-03-18 11:41:19 +08:00 npm 每次都能来个新花样,新把戏。 |
32 sheeta 2022-03-18 11:45:01 +08:00 前端娱乐圈不是开玩笑的噢 |
33 yin1999 2022-03-18 11:45:06 +08:00 via Android @Oktfolio 还好吧,现在不都用 go modules 嘛,从 go proxy 拉下来的特定版本是会被其缓存且无法修改的,作者只能要求 go proxy 删除 |
34 marcong95 2022-03-18 11:47:40 +08:00 @agdhole #22 其实也没那么从未,至少在刚出来那几年还是挺「不政治」的,所以也时不时有人在怀念过去。 政治确实一件挺可恨的东西,不论中外也不论过去现在,不过可惜在本人寿命范围内,估计也是不可能看见政治这种东西的消亡了,而且应该还会往恶化的方向走。 |
35 moreant 2022-03-18 11:52:16 +08:00 |
36 wwqgtxx 2022-03-18 11:52:58 +08:00 @Oktfolio go.mod 都是锁版本号和 checksum 的,开发者不主动升级根本不会被供应链攻击,就算默认的 proxy.golang.org 被投毒了,本地的.sum 文件也就让他验证不通过的 |
37 2kCS5c0b0ITXE5k2 2022-03-18 11:53:32 +08:00 @agdhole 你看 你这发言不就符合我发言. 而且大部分游戏哪里就不能访问了.. |
38 yujinchn 2022-03-18 12:38:12 +08:00 |
39 EPr2hh6LADQWqRVH 2022-03-18 13:02:57 +08:00 这库有啥用,为啥要用,桌面出东西除了因为 vue 还有因为其他的吗? 责任都能追到 node.js 身上,但 vue 没有一点责任 棒呆了各位前端大佬 |
40 pengtdyd 2022-03-18 13:07:24 +08:00 前端真是娱乐圈啊!!!!还是搞 C 好啊,没有那么多牛鬼蛇神 |
41 whiler 2022-03-18 13:13:33 +08:00 版本锁定 + 代码审查 |
42 xingyue 2022-03-18 13:16:48 +08:00 via Android @0o0O0o0O0o 想要安心就 npm ci |
43 fxxkgw 2022-03-18 13:29:47 +08:00 足球比咱们这行业更热闹呢。。尤其欧足联 还有猫啊狗啊协会啥。。 |
44 cutlove 2022-03-18 13:34:55 +08:00 ?这都能扩展到前端身上 |
45 KevinChan 2022-03-18 13:48:22 +08:00 把 IP 检查修好了再放出来就好了 |
46 charlie21 2022-03-18 13:52:11 +08:00 |
47 wooi 2022-03-18 14:20:05 +08:00 反对开源项目内做表态本身已经是一种政治立场的选择,本质上是一样的 |
48 chocotan 2022-03-18 14:27:09 +08:00 |
49 gitdoit 2022-03-18 14:33:41 +08:00 感觉每个月都会整点花出来, 还真就离谱 |
50 Qute 2022-03-18 14:36:20 +08:00 我觉得这个问题主要是作者,但是 npm 也是有问题的,npm 的默认开区间(现在是^符号)安装依赖导致作者发布的小版本安装时会自动升级,绝大部分人不会去锁定某个软件的版本,其次 npm 的黑洞式依赖根本就很难分清你到底使用了什么软件(A 依赖 B ,B 依赖 C ,C 依赖 D ) |
51 shengyueming 2022-03-18 14:47:57 +08:00 @yazinnnn 既然是开源库,那作者在一定范围内有权利做任何事。而你没有付费使用也没有贡献不应该感激么,至少出问题不该谩骂 |
52 leviathansroc 2022-03-18 14:56:56 +08:00 @shengyueming 对开源项目的使用和关注也是一种支持,支持者没有资格对这种行为评判吗? |
53 dvsilch 2022-03-18 15:01:46 +08:00 @shengyueming 出问题跟恶意塞垃圾是一个性质? |
54 Wanex 2022-03-18 15:07:44 +08:00 @shengyueming 你在说什么呢?随意动用户的东西这是投毒,按你的意思免费用了东西就要感恩戴德了?自己的东西就可以随你处置了?偷偷动用户的东西都不能骂了那病毒为什么是病毒?小的是随意新建个没什么太大伤害的东西,大是的拿你的电脑挖矿、删除或破坏电脑里面的文件! |
55 lovelive1024 2022-03-18 15:12:36 +08:00 总喜欢整点新花样 |
56 shengyueming 2022-03-18 15:16:32 +08:00 @dvsilch 你可以理解为 bug @Mexion 他动的是自己的库。你有能力直接提 issue ,或者做个类似的库,在这里骂娘有啥用,人家下次还这样 @leviathansroc 不能批判?我写的是谩骂?中文看不懂? |
57 keepeye 2022-03-18 15:16:55 +08:00 如果西方标榜的自由制度下尽出这种垃圾的话,这种自由要了干啥?作恶也是自由 |
58 dvsilch 2022-03-18 15:24:52 +08:00 @shengyueming 你说是 bug 就是 bug ?他是无意中写了个 peacenotwar 的库然后再无意引入进来发布的?怎么说你们混淆概念真有一套呢 |
59 2kCS5c0b0ITXE5k2 2022-03-18 15:27:37 +08:00 @shengyueming 当时 antd 圣诞节改个 UI 都被骂翻了. 动用户数据反而是 bug... 人类很奇妙吧. |
60 krixaar 2022-03-18 15:30:54 +08:00 @shengyueming #51 开源库更新了一个小版本里面加了会格掉你的硬盘代码就不算恶意代码了?还不能骂两句? |
61 zhaol 2022-03-18 16:01:55 +08:00 @shengyueming 你真是脑子有毛病,你利用开源社区的规则赢取了信任去做坏事,我还不能骂了?反思怪真的牛逼,你有你的立场可以,甚至你在 readme 里面表达也可以,你特么往代码里面塞东西删用户的文件,往别人的 pc 里面创建文件,这是犯罪知道吗? |
63 hidemyself 2022-03-18 16:14:18 +08:00 > 如果主机的 IP 地址来自俄罗斯或白俄罗斯,该代码将对其文件进行攻击,将文件全部替换成 。该作者是个反战人士,还特意新建了一个 peacenotwar 仓库来宣传他的反战理念. 嚯,牛批,挂俄罗斯梯子的会不会被爆破哇 |
64 brucedone 2022-03-18 16:42:50 +08:00 @shengyueming 多谢你,多了一个 block 的对象 |
65 sprite82 2022-03-18 17:31:02 +08:00 @shengyueming 你来我的饭店吃饭,我给你的菜里加 shit ,但是我给你免费吃, 你是不是要对我感恩戴德?我都给你免费了,我往里面加什么是我的自由,是不是! |
66 lengyuqu 2022-03-18 22:26:29 +08:00 @jk54 因为 npm 的依赖机制问题,java 的依赖的不会不是递归依赖,rust 目前没有 npm 规模大,golang 的机制其实和 npm 比较像,但又不完全像,基础工具还是完全依赖官方的。npm 最大的问题其实从底层就是千万的轮子,你都不知道哪个底层轮子出问题 |
67 shadeofgod 2022-03-19 00:49:07 +08:00 @wapzjn #50 并不是这样的,lockfile (package-lock.json, yarn.lock, pnpm-lock.yaml)的作用就是保证所有的依赖版本都和你初次 install 是一致的,如果你开发的是一个应用,你应该总是把这个文件 commit 进去,这样其他协作者,CICD 都能保证是一致的,除非你手动更新了依赖才会导致 lockfile 也更新。如果你开发的是一个 library ,倒是可以不 commit ,这样会让问题提早被发现。 |
68 shadeofgod 2022-03-19 01:14:41 +08:00 开源对开发者来说事实上提供了一个简单免费快速方便的软件分发方式,中间是不存在审核的,任何人都可以发布任何你想要发布的东西,其他人开到是开源时天然就产生了一种更信任的感觉,这个社区就是建立在脆弱的信任链条上的,希望它从来不出问题是不可能,扪心自问有几个人使用 curl xxx.sh | bash 这种方式安装东西的时候会去检查那个脚本里写了什么呢?更别说一个项目那么多的依赖了。 不管是包的数量还是开发者的数量,npm 社区这个第一庞大的超级规模出现这种事情是完全可以预期的,其他语言 /社区要做这种事情一样有的是办法,拿这点来喷完全就是尬黑了,还有黑前端的,node-ipc 看包名就知道是个 nodejs 进程通信的包,跟前端有什么关系?意思前端一些基础设施工具底层依赖了这玩意儿就也能把整个前端圈拿出来批判一番了? 再多说一句,这种事情我相信以后会越来越多,倒不是说某个开发者自己发疯下毒,而是随着软件行业的繁荣和开源社区的壮大,这个脆弱的链条会被越来越多坏人盯上,我印象里的这种 supply chain 上暴露的问题已经是肉眼可见的一年比一年多了。 |
69 skiy 2022-03-19 05:10:04 +08:00 via iPhone 这对开源社区是一个非常大的打击。 突然觉得,BSD 社区的人观点是对的。 今天只是这个前端搞事而已,明天若是 linux 内核有开发者这么搞,那这“开源”就死了。 |
70 cwyalpha 2022-03-19 08:29:58 +08:00 via iPhone |
72 shengyueming 2022-03-23 18:36:31 +08:00 @zhaol 你脑子没有毛病至于这么激动?不就是跟你观点不一样?当心气急败坏猝死 |
73 shengyueming 2022-03-23 18:37:47 +08:00 @emeab 所以骂的人和现在骂的人是一波人?所以有什么可比性。就是要煽动对立呗 |
74 shengyueming 2022-03-23 18:39:24 +08:00 @brucedone 你爱咋咋吧。以为别人惧怕你 block 似的。对于任何人的生活不产生任何影响。你这种思想也就是某某长期熏陶下的产物 |
75 shengyueming 2022-03-23 18:43:26 +08:00 @sprite82 你每天吃的外卖真有可能,并且你还会说真好吃。连小学生的餐食都不放过的地方,别说你们这种底层了 |
76 sprite82 2022-03-23 21:34:40 +08:00 @shengyueming 比不上你,毕竟你吃的是高贵的洋大人的给你剩下的泔水 |
77 zhaol 2022-03-24 10:18:51 +08:00 @shengyueming 24k 纯智障,别回复了。脑残 |
78 shengyueming 2022-04-03 21:12:59 +08:00 @zhaol 听说你父母挂得早?所以么家教?你觉得我会跟风狗对着喊吗? |
79 shengyueming 2022-04-03 21:15:23 +08:00 @sprite82 你赶紧少吃点,省下来的钱要资助你的黑哥,还有你的老婆给他们做学伴 |
80 zhaol 2022-04-06 10:27:01 +08:00 @shengyueming fw 东西,被人喷了,知道自己没理了,开始嘴臭了 |