【文章来源】【公众号:新智元】

“从GitHub上删除自己的代码是违反他们的服务条款的?WTF? 这是一种绑架行为。”

这两天,一些开发者感觉有点懵……

一觉醒来发现,自己程序跑出来的全都是「乱码」

说起来,这些开发者的共同点就是都使用了开源库「colors」「faker」

而且这两个库相当受欢迎!

仅仅在npm上,colors库每周的下载量就超过2000万次,并且有将近19000个项目正在使用。

faker在npm上每周的下载量超过280万次,有超过2500个项目使用。

甚至连亚马逊的云计算开发工具包(aws-cdk)也用上了。

最初,用户怀疑这些项目所使用的库「colors」「faker」被入侵,类似于去年coa、rc和ua-parser-js库被恶意分子劫持的情况。

看到各种反馈之后,开发者也赶紧发文表示已经在努力「修复」了。

但事实证明,故事并没有这么简单。

老子,不干了!

事件的开端要从这位名为「Marak Squires」的开发者说起。

近期,Marak在「colors」(GitHub上又名colors.js)加入了v1.4.44-liberty-2,并且发布了「faker」(GitHub上又名faker.js)的6.6.6版本。

稍微对西方有所了解的朋友们很容易就能注意到,这个「666」有些不太对劲啊。

找了一圈发现,网上的图都不太能放……

总之,就是和「恶魔」有着千丝万缕的联系。

而Marak所做的,正是引入了一个无限循环的bug,让数以千计的依赖「color」「faker」的项目直接崩溃。

这些信息包括文本「LIBERTY LIBERTY LIBERTY」,以及在后面跟着的一大串非ASCII字符。

这些字符也被称为「Zalgo文本」

当然,这又是另一个非常有意思的故事了,感兴趣的朋友可以自己搜一下。

然而,时间一分一秒地过去了,自己的程序跑不了,项目的开发者也迟迟没有提交解决方案。

开发者们不得不开始自己寻求解决方案。

很快就有人发现,只要回滚到之前的1.4.0版本,问题就解决了。

由此也就可以推断,这个bug很有可能就来自于最新提交的「v1.4.44-liberty-2」。

通过查看项目的历史发现,Marak在v1.4.44-liberty-2版本的colors.js库中添加了一个「新的美国国旗模块」,并将其推送到GitHub和npm。

就新的在代码中,有一段无限循环,会让所有使用「colors」的程序在控制台无休止地打印各种非ASCII字符序列。

对于「faker」,Marak除了炸了自己程序之外,还修改了GitHub repo的README页面。

这次,Marak直接摊牌了:endgame

Marak还提到了一个人:亚伦·斯沃茨。写到:「Aaron Swartz到底发生了什么?」

斯沃茨是一名美国程序员、企业家和著名的黑客活动家,在一场法律诉讼后「自杀」身亡。

为了使所有人都能自由获取信息,这位黑客从麻省理工学院校园网上的JSTOR数据库下载了数百万篇期刊文章,据称他通过反复旋转自己的IP和MAC地址来绕过JSTOR和麻省理工学院设置的技术封锁。

此前,在2020年11月,Marak就曾警告说,他将不再用他的「免费工作」来支持大公司了,而这些企业应该考虑用每年「六位数」的工资来补偿。

「恕我直言,我将不再用我的免费工作来支持财富500强(和其他较小规模的公司)。」

「你们可以把这当作一个机会,给我发一份六位数的年薪合同,或者把这个项目fork之后,让别人来做。」

于是,整件事的缘由逐渐明晰了起来,Marak似乎是在报复那些大型企业以及拿着开源项目赚钱的开发者。

他认为,这些人不仅大量地使用开源社区的免费软件,但是对社区又毫无贡献。

敢乱改自己项目?看我封你账号

对Marak的这波迷之操作,开源社区一部分开发者表示理解,另一部分则直接「口吐芬芳芳」

「显然,『colors.js』的作者为没有得到报酬而生气......。所以他决定在每次加载他的库时打印美国国旗......。」

嚯,有点意思啊!(doge)

信息安全专家VessOnSecurity称这种行为是「真**的不负责任」。

「如果你对企业免费使用你的免费代码有意见,就不要发布免费代码。通过破坏你自己被开发者广泛使用的项目,你不仅伤害了大企业,也伤害了所有在使用它的人。」

但是有人则认为:

「将代码发布到他们自己的库中,不需要对任何事情负责。如果你不同意我的观点,那么请阅读许可证中的实际法律条文,它没有给出任何保证。如果是不负责任的,那又怎样,他们不需要负责任。」

而GitHub一看,这个Marak怎么能瞎搞自己的项目,封了吧!

NPM已经恢复到faker.js包的前一个版本,Github已经暂停了我对所有公共和私人项目的访问。我有100多个项目。

软件工程师Sergio Gómez对此表示非常不理解:「从GitHub上删除自己的代码是违反他们的服务条款的?WTF? 这是一种绑架行为。」

Log4j:用爱发电,还得背锅

Marak的「删库跑路」,不由得让我们想起最近闹得沸沸扬扬的「Log4j事件」。

据火线安全不完全统计,仅在Github上,就有60644个开源项目发布的321094软件包存在风险,这一漏洞可以说是影响了互联网上70%以上企业系统的正常运转。

由于Java应用程序通常会记录各种各样的事件,例如用户发送和接收的消息,或者系统错误的详细信息,因此该漏洞可以通过多种方式触发。

很快,Log4shell漏洞开始出现大规模的恶意利用。

随着越来越多的问题被发现,Log4j的开发者们也不得不开启了假期无偿加班模式,为该项目打补丁。

虽然已经在「不眠不休地进行抢救:修复、文档、CVE、回复咨询了」,然而,依然有一些bug赏金猎人在对Log4j维护者进行围追堵截。

Log4j这件事也让更多人开始关注大企业是如何「压榨」开源的问题。

大量的网站、软件和应用程序依靠开源开发者来创造基本的工具和组件,他们不断地消费,却没有给予足够的回报。

而这些「孜孜不倦」地修复着安全问题的开发者们,不仅放弃了自己的闲暇时间,也没有得到任何资金的支持。

网友对此评论道:

「对color.js/faker.js作者破坏他们自己的软件包的反应,恰好也说明了有多少企业开发者认为他们在道德上有权使用开源开发者的无偿劳动,而不用做出任何回报。」

对于开源代码的未来,大概只能等时间来告诉我们吧。

参考资料:

https://www.bleepingcomputer.com/news/security/dev-corrupts-npm-libs-colors-and-faker-breaking-thousands-of-apps/

暴力拒绝白嫖,著名开源项目作者删库跑路!神秘Bug影响超2万个项目,亚马逊云也躺枪...相关推荐

  1. 暴力拒绝白嫖,著名开源项目作者删库跑路,数千个应用程序无限输出乱码

    往期热门文章: 1.两天两夜,1M图片优化到100kb! 2.12 个顶级 Bug 跟踪工具 3.1个人6种变现途径收入130万美金在2020年 4."阿里味" PUA 编程语言火 ...

  2. GitHub 著名开源项目作者删库跑路,神秘 Bug 影响超 20000 个项目!

    点击上方"Java精选",选择"设为星标" 别问别人为什么,多问自己凭什么! 下方有惊喜留言必回,有问必答! 每天 08:15 更新文章,每天进步一点点... ...

  3. 暴力拒绝白嫖,著名开源项目作者删库跑路,数千个应用程序无限输出乱码,亚马逊云也躺枪...

  4. 暴力拒绝白嫖,开源项目作者直接删库跑路,这下大家都不要用了 !

    编辑:好困,转载自:新智元 [导读]程序突然乱码,开发者紧急「修复」!然而-- 这两天,一些开发者感觉有点懵-- 一觉醒来发现,自己程序跑出来的全都是「乱码」. 说起来,这些开发者的共同点就是都使用了 ...

  5. 著名开源项目,神秘Bug影响超20000个项目,原因竟是作者删库跑路?

    热门资讯早知道,吃瓜唠嗑不冷场, 记得加个星标,第一时间获得推送 图文编辑:xj 来源:公众号「新智元」 "从GitHub上删除自己的代码是违反他们的服务条款的?WTF? 这是一种绑架行为. ...

  6. 炸锅了!删库跑路把“开源”推上了风口浪尖~

    <中智观察>第1592篇推送 作者:雨涵 编辑:苏苏 头图来源:哔哩哔哩Gitee酱 2022年新年伊始,开源圈被推上了风口浪尖. 前有知名开源工具Faker.js 的作者 Marak 故 ...

  7. 删库跑路、“投毒”、改协议,开源有哪几大红线千万不能踩?

    作者 | 彭慧中 责编 | 屠敏 出品 | CSDN(ID:CSDNnews) 开源协议是开源世界里的根基.根据CSDN<2021-2022 中国开发者调查报告>数据显示,尽管目前已有94 ...

  8. 安卓刷机时代不再!魔趣开源项目创始人宣布:“决定删库跑路了”

    整理 | 郑丽媛 出品 | CSDN(ID:CSDNnews) "刷机",一个 00 后听着可能有些陌生,却能勾起许多 80 后.90 后青春记忆的词语--如今,它可能要进一步退出 ...

  9. 删库跑路大神的一生:曾在家造炸弹被捕,现卖房押宝NFT,原是开源创业之星...

    梦晨 萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI "著名开源项目被作者本人删了库"这个瓜,现在是越吃越大了. 「faker.js」和「color.js」的作者Mar ...

最新文章

  1. 2021 年度热门技术书单提前公开,这些好书藏不住了
  2. 【NOIP2015模拟10.22】最小代价
  3. Mac系统如何配置adb路径
  4. F#学习之路(3) 如何组织程序(下)
  5. 比尔盖茨为什么能成为世界首富?
  6. mysql rs.next_JDBC结果集rs.next()注意事项
  7. Android数据的几种存储方式---------SharePreferences(轻量的以键值对) 的使用
  8. flash动画测试什么软件,flash测试(flash怎么测试动画)
  9. Linux上的tomcat版本升级
  10. Huffman实现对26个英文字母的编码
  11. JAVA生成热点图,JAVA 后端生成热力图图片返回
  12. 北航计算机控制系统实验报告,北航计算机控制系统实验报告.doc
  13. 主成分分析(PCA)方法步骤以及代码详解
  14. 操作系统实验八:页面置换模拟程序设计
  15. b+和b-数比较和优势
  16. python中正负号怎么表示_[转载]python中整数除法的正负号
  17. yii2.0.37反序列化漏洞审计
  18. 服务器Connections could not be acquired from the underlying database错误
  19. Artery6基本操作流程
  20. 通达信日线数据转换为csv和excel格式

热门文章

  1. html从入门到精通前锋,街篮新手攻略 从入门到精通的心得分享二
  2. nat模式物理机ping不通虚拟机
  3. 语言 OJ 高低位逆转_16年詹姆斯带队逆转勇士夺冠含金量最高?乔丹六冠含金量低?...
  4. 用C语言实现三子棋游戏(附上思路+项目展示+源代码)
  5. CSS图像中的一些属性
  6. HDU1808(抽屉原理)
  7. 2019 ICPC 南昌 K. Tree(树上启发式合并,平衡树 treap)
  8. python用渐变色画圆_利用python控制Autocad:pyautocad方式
  9. etc下没有mysql_我在linux下,安装mysql的时候,cp support-files/my-medium.cnf /etc/my.cnf找不到my-medium.cnf...
  10. c语言俄罗斯方块注释,C语言学习1年-俄罗斯方块(无注释)