Table of Contents
びっくり。
colors.js
@babel/coreのバージョンアップでCIを動かしていたところ謎のアスキーアート的なログが出たままヒープメモリを食いつぶして落ちてしまう事象が昨日の夜中に発生しました。
https://github.com/tubone24/portfolio/runs/4755929687?check_suite_focus=true
CIのジョブ的にはUIcheckのpercyを動かすところでクリティカルではなく、更新内容的にも急いで更新するような重要なアップデートではなかったので機能時点ではスルーしてましたが、今朝colors.jsの問題で本事象が発生することを下記の記事から気が付きました。
Dev corrupts npm libs 'colors' and 'faker' breaking thousands of apps
記事を追っていくと実際のコミットも見つけることができ、作者が意図的に星条旗おじさん(名前はCarl Pilcherですかね...?ちょっとわからなかったです。)を表示させ、無限ループを発生させるようなコードを仕込んでいることがわかります。
https://github.com/Marak/colors.js/commit/074a0f8ed0c31c35d13d28632bd8a049ff136fb6?diff=unified
この汚染が仕込まれたのが colors@1.4.44-liberty-2のバージョンであることから^1.4.0を利用していたライブラリはsemantic versioningでpatchアップデートにかかってしまったため、思いがけずアップデートされてしまったものと思われます。
また、ローカルで動かしてみたものの同様に事象が発生してしまっております。すごいMacのファンが回ってしまって怖いです。
対処法
取り急ぎpackage.jsonのresoltionsに安全なcolors@1.4.0を設定してを実施して事象の回復ができました。
https://github.com/tubone24/portfolio/pull/351/files
"resolutions": {
"@graphql-codegen/visitor-plugin-common": "1.22.0",
"colors": "1.4.0"
}
OSSのあり方とは
こればっかりは難しい問題なので今回結論を出すことはないですが、イチ開発者としては素敵なOSS活動を続けている皆さんを少しでもサポートしたい気持ちではいます。どんな形での貢献ができるかは不明ですが。
原因のコミットには多くのコントリビューターから賛否両論のコメントが投稿されてました。
oh man. whatever is going on. i will not judge, since iam a very average dev, the sense of this, nor your reasons. but: take a step back. have some holydays. this is clearly not going anywhere good. stay strong and healthy my dear. best regards from far europe.
私はごく普通の開発者なので、その感覚や理由を判断することはできませんが、しかし、一歩下がって、休日を過ごしてください。これは明らかに良い方向には向かっていません。遠く離れたヨーロッパから、よろしくお願いします。
もちろん、開発者のMarak氏の言い分もわかりますしOSS活動を続けていくモチベーションが落ちるようなことはあってはならないとは思いつつも、彼が犯した行動がすべて容認されうるものではないこともまた事実です。
なのでまず休んで。一息ついて考えて!というメッセージは痛いほどわかります。
F500 companies that care about security already patched out all Marak's stuff months ago. He's been a malicious supply chain issue for a while.
At this point the main people he's hurting are small folks who don't check their packages as much as big company appsec teams do.
セキュリティに気を配るF500企業は、数ヶ月前にすでにマラクのものをすべてパッチで除去しています。彼はしばらくの間、悪意のあるサプライチェーンの問題だった。
この時点で、彼が傷つけているのは、大企業のセキュリティチームほどには自分のパッケージをチェックしない、小さな人々なのです。
これもその通りだなぁと思います。誰も得しない...。とはいえ彼がもっとひどい不具合、たとえばOS自体を破壊しまくるものを仕込んでいたら。。被害は考えるだけでも恐ろしいですね。
これからもOSSが発展するように自分にできることは何か模索していきたいと思います。