结论先行 npm 构建前端项目,启动后在桌面自动创建《 WITH-LOVE-FROM-AMERICA.txt 》文件。
过程:
npm install
npm run dev
观察: 已经有其他网友也出现此情况,桌面突然出现奇怪 txt 文件! 好像是今天才出现这个情况
怀疑是不是 npm 依赖项被恶意篡改了。 PS:难道是因为最近的国际时局?
非常感谢大家的帮助,已经解决了。
解决方式:
=======
有朋友提到使用yarn的解决方式,我并没有测试,遇到此问题的其他朋友可以试下。
用 yarn 的话,可以在 package.json 里添加 "resolutions": { "node-ipc": "9.2.1" }
1 dcsuibian 2022-03-15 18:33:23 +08:00 via Android node_modules 搜搜看? |
![]() | 2 love4taylor PRO |
![]() | 3 learningman 2022-03-15 19:01:02 +08:00 via Android 查找一下依赖树里哪来的这个包 |
4 caocong 2022-03-15 19:03:59 +08:00 vue-cli 里有 node-ipc node-ipc 里有 peacenotwar |
5 0o0O0o0O0o 2022-03-15 19:29:19 +08:00 via iPhone 这算供应链攻击吗? |
![]() | 6 simbaCheng OP @Love4Taylor 感谢,也在 github 上找了,眼拙没注意 |
![]() | 7 simbaCheng OP |
![]() | 8 weichengwu 2022-03-15 19:37:01 +08:00 @simbaCheng #7 找到谁依赖它的,然后 fork 一份,把那个依赖换掉 |
9 ahwwh1994 2022-03-15 19:46:05 +08:00 |
![]() | 10 simbaCheng OP @caocong 再次感谢,自己已经将这个依赖删除了。 |
![]() | 11 simbaCheng OP @ahwwh1994 感谢帮助 |
![]() | 12 ChaosesIb 2022-03-15 21:25:51 +08:00 github.com/RIAEvangelist/node-ipc/issues/233 好恶心的行为,有空的可以去和作者对线 |
13 vacnt7 2022-03-15 22:31:11 +08:00 刚才我也遇到了,重装依赖过后多了这个 txt ,还以为中毒了 |
![]() | 15 FrankHB 2022-03-15 23:22:28 +08:00 @iseki 要么 fork 要么忍是什么义务?开源协议可没本事阻止用户婊 adware (物理),更何况那个项目用的协议根本就没提。 |
![]() | 16 ChaosesIb 2022-03-15 23:53:27 +08:00 ![]() @iseki #14 正是因为作者有权利那么做,才需要靠跟他沟通来解决。不过现在 issue 里那些直接人身攻击的我觉得就有些过了,开骂的话作者就更难退让了 |
17 iseki 2022-03-16 00:11:45 +08:00 via Android |
![]() | 18 Trim21 2022-03-16 00:18:29 +08:00 “美国全方位针对,国产知名开源软件遭美国开发者供应链攻击!” 不过这种行为真的挺恶心的,拉资助好歹还是为了项目本身活下去。 |
![]() | 19 ChaosesIb 2022-03-16 00:26:25 +08:00 ![]() github.com/RIAEvangelist/node-ipc/issues/233#issuecomment-1068182278 被人挖出真恶意代码了,本机如果是俄或者白俄的 IP 会直接覆写所有文件,有依赖的赶紧换下吧 |
![]() | ![]() vuecli 发了新版本,可以直接升级 |
21 v2gg 2022-03-16 01:23:44 +08:00 ![]() PS: 恶意代码受影响的 node-ipc 版本为 v10.1.3 ,已经被作者删除或被 npm 撤下(不知道原因)了,而「 WITH-LOVE-FROM-AMERICA.txt 」文件是由 v11.0.0 版本引入的 |
![]() | 22 ChaosesIb 2022-03-16 01:40:25 +08:00 有关恶意代码的 comment 已经都被作者删了,我存了张截图,想看的可以看下 s1.ax1x.com/2022/03/16/bzADMD.png |
![]() | 23 ChaosesIb 2022-03-16 01:52:03 +08:00 github.com/vuejs/vue-cli/issues/7054 后续对话在 vue 这里 |
![]() | 24 FrankHB 2022-03-16 02:02:42 +08:00 ![]() @iseki 我先前可没评论谁具体应该说什么。我关心的是公众场合行为被容许的边界。 你回复的 @Chaoseslb 原话里说的是“可以”,隐含具体应该怎么做各人自担后果。 相对地,你直接使用了没有后退余地的祈使句,仿佛你表达的意见已经是天经地义的共识,这就串味得厉害了。 我之前都还没对项目的作者进行评论。现在我仍然认为这个案例至此还不值得我去 issue 针对(至少我不是直接受害者),但我倒是可以拿来举例说明为什么我同样会有意见:和你类似,这个项目的作者僭越了道德评价的有效范围,把私货传播到了公共领域。 区别是你也许只是无意间这么做罢了。不过这也不使你显得相对更高尚;相反,该项目作者起码(看上去)知道自己是在做什么,并且在 issue 里明确指出了下游可以消除影响的变通(尽管没事找事让用户凭空受到无妄之灾仍然很欠骂),这点理应比你的直线条惯性思维更应该受到褒扬。 “如果你认为跑到对应 issue 区域开骂是合理的,请自便”实质上回避你被指出的问题,这种跑题行径直觉上容易引起另外的不满。不过更直接的问题是你的“如果”就是妄自揣测,事实上等于没说。 我敦请停止无意义的道德评价。确定不应该在 issue 里做什么事情,ToS 应该够完善了。 |
![]() | 25 joyqi 2022-03-16 02:06:21 +08:00 开始以为只是个恶作剧,后来发现这个提交者太邪恶了,如果是俄罗斯的 IP 运行,文件内容就会全部被替换为?太可怕了。 |
26 0o0O0o0O0o 2022-03-16 06:40:35 +08:00 via iPhone @0o0O0o0O0o #5 一语成谶 |
![]() | 27 agdhole 2022-03-16 10:30:45 +08:00 真恶心,流氓软件行为 |
![]() | 28 AV1 2022-03-16 11:22:13 +08:00 ![]() 看到 WITH-LOVE-FROM-AMERICA 蚌埠住了。 人反是我最好笑的笑。 |
![]() | 29 SongGG3 2022-03-16 11:32:02 +08:00 今天被恶心到了,今天新起了个项目,竟然依赖 peacenotwar ,下载失败提示 451 。赶紧指定版本绕过去了。马丹 |
30 43529 2022-03-16 11:47:41 +08:00 via Android ![]() 我又想起了前段时间 fakejs 那件事。开源社区的建立来之不易,希望大家都能有一份起码的尊重:作为一个受益者我当然要去尊重作者,去提 bug 贡献代码;但是我也希望作者们能尽量不有意地去向代码里加恶意代码(这是一份请求而非要求,我当然没有要求作者的权力) |
![]() | 31 villivateur 2022-03-16 13:32:51 +08:00 建议大家都去 npm 官方 report spam 吧 |
32 t2jk4000 2022-03-16 13:48:59 +08:00 唉……又是 npm 啊…… |
![]() | 33 shadows 2022-03-16 14:02:58 +08:00 ![]() WITH-LOVE-FROM-AMERICA 可以参选年度最佳笑话 |
![]() | 34 sujin190 2022-03-16 14:04:16 +08:00 via Android @ChaosesIb 这往桌面这这种东西,显然作者没权利这么干吧,就算我们接受用他的开源软件包他就能想干嘛就干嘛,更不用说清空文件这种叫犯罪,但是不能不能从依赖链中从外部强行下架确实是个坑,毕竟世界总有那么几个傻缺 |
![]() | 35 murmur 2022-03-16 14:09:26 +08:00 这个比阿里圣诞更恶劣,看来以后逼人自建仓库,全代码审查了 |
![]() | 36 murmur 2022-03-16 14:11:29 +08:00 那个 peacenotwar ,小学生水平,md 该格式化补格式化,空格补空格,一堆 var ,大小写开头混用,就一坨 shi |
![]() | 37 Torpedo 2022-03-16 14:14:37 +08:00 @simbaCheng 这和新人、伸手党没关系。纯粹这个作者坑人 |
38 wangxin13g 2022-03-16 16:25:42 +08:00 ![]() 我愿称之为开源恐怖主义 |
39 Danswerme 2022-03-16 20:16:56 +08:00 via iPhone @wangxin13g 这六个字太贴切了,总不能去审查每一行开源代码吧。 |
41 xiaojun1994 2022-03-16 23:53:07 +08:00 坐等有人说‘这是开源,这是人家的自由,人家爱干啥干啥’ |
![]() | 42 MiketsuSmasher 2022-03-18 09:53:40 +08:00 西方前端娱乐圈又整了个毁灭性花活 |
![]() | 43 matrix67 2022-03-18 11:35:19 +08:00 摘录一下 Google 选择引入一个依赖时的决策条款,用于对任何技术做还是不做的评估都有用: - 是不是有测试,并且使用者可以自己跑起来测试 - 测试是不是通过的 - 谁开发的这个库 - 承诺怎么样的兼容性 - 作者有没有详细地说清楚这个库期望用在什么场景下 - 这项目有多流行 - 我们大概会有多长时间要依赖这个包 - 在历史上这个包搞出来破坏性变更的频率是怎么样的 - 我自己来实现这个依赖的功能的话有多复杂 - 让这个依赖保持版本跟进是不是必要的 - 以后谁来更新依赖的版本 - 这个依赖的版本更新难不难 #94 就《 Software Engineering at Google 》这本书 O'Reilly 官网地址: https://learning.oreilly.com/library/view/software-engineering-at/9781492082781/ 原书第 436 页,第 21 章依赖管理 第三条就是,“谁开发的这个库”。看来人品更重要 |
44 cwyalpha 2022-03-19 08:31:10 +08:00 via iPhone |
![]() | 45 CL 2022-03-21 02:42:37 +08:00 非常恶劣的行为 |