長らく放置されていたLodashライブラリの抜け穴がついに修正された。セキュリティバグへの対処には10月以降にようやく時間がかかった。

Table of Contents

長らく放置されていたLodashライブラリの抜け穴がついに修正された。セキュリティバグへの対処には10月以降にようやく時間がかかった。

パッケージ マネージャー npm を通じて配布される人気の JavaScript ヘルパー ライブラリである lodash に脆弱性が残っており、開発者の間でセキュリティの脆弱な状態について不満が高まっています。

長年の懸念が再燃したきっかけは、水曜日に npm のセキュリティ勧告が公開されたことで、npm の「audit」コマンドを使用しているユーザーや、lodash を依存関係として持つパッケージを npm を使用してインストールしているユーザーには、コマンド ライン警告として表示されるようになった。

118,000以上のパッケージにlodashが含まれており、その結果、週に2,650万回以上ダウンロードされていることを考えると、これはかなり多い人数であると考えられます。JavaScript言語への継続的な機能追加により、lodashは現在多くのプロジェクトで不要になっている可能性が高いにもかかわらずです。

問題となっている欠陥はプロトタイプ汚染攻撃であり、攻撃者はこれを利用してObject、ほぼすべての JavaScript オブジェクトの元となる基本的な JavaScript データ構造である のプロトタイプにプロパティを挿入することができます。

このようにオブジェクトのプロパティを追加または変更すると、子オブジェクトがこれらのプロパティを継承することになり、特定の状況下ではサービス拒否や任意のコード実行につながる可能性があります。

コード内のバグを見つける

調査によると、ビジネスアプリケーションの10個中9個に、古く、サポートされておらず、安全でないオープンソースコードが含まれている。

続きを読む

深刻度が低いとされるこのバグは、lodashのzipObjectDeep関数に存在し、特定のキー値を含む配列セットを関数に渡すことで悪用される可能性があります。このバグは昨年10月にバグ報奨金サービスHacker Oneに開示され、lodashの開発者であり主要メンテナーであるJohn-David Dalton氏は2019年12月初旬に通知を受けたようです。

設計自動化企業 Synopsys の 5 月のレポートによると、関数 、 、 に影響を与える同様の lodash のバグが 2018 年 10 月に公開され、商用オープンソース アプリケーションで最も多く見つかった脆弱性mergeでしたmergeWithdefaultsDeep

セキュリティ上の欠陥を修正するためのプル リクエスト (修正されたコード行) が 2 つありましたが、どちらも lodash プロジェクト コードにマージされて更新がリリースされるまで約 2 か月間待機していました。

Hacker News で 1 人の開発者が指摘したように、問題は「現在、適度な規模の JavaScript プロジェクトの大部分が依存しているライブラリである lodash をリリースする権限を持つ (無給の) 人物が実質的に 1 人いる」ということだ。

その人物とはダルトン氏で、現在はSalesforceでUIセキュリティエンジニアとして勤務し、その他様々なウェブ技術プロジェクトに携わっています。The Registerはダルトン氏にコメントを求めて連絡を試みましたが、返答はありませんでした。

Dalton氏は、lodashのリリースプロセスにボトルネックがあることを明確に認識しています。ライブラリが最後に改訂されたのは、2019年7月17日にリリースされたバージョン4.17.15でした。6月に彼はTwitterで、lodashや彼が手がける他のプロジェクトのメンテナンスを手伝ってくれるボランティアを募集し、応募した人にはメンテナーの地位を与えると約束しました。

この記事は木曜日の午後に執筆されたもので、彼はプルリクエストの 1 つをマージして問題を修正したため、近々更新される予定です。

無償のボランティアによる無料ソフトウェアに、もっと何かを期待していましたか?®

Discover More