CVE-2021-29486 in cumulative-distribution-function
要約
〜によって VulDB • 2026年06月04日
cumulative-distribution-function は、x 値のデータ配列から統計学的な累積分布関数を計算するために使用されるオープンソースの npm ライブラリです。バージョン 2.0.0 より前のバージョンでは、このライブラリを使用するアプリケーションが不適切なデータを処理すると、クラッシュしたり無限ループに陥ったりする可能性があります。このライブラリを使用して無効な非数値データに対して処理を行う Node.js サーバーアプリケーションの場合、Node.js サーバーがクラッシュする可能性があります。これにより、サーバーの他のユーザーに影響が及んだり、正常な動作のためにサーバーの再起動が必要になったりする可能性があります。このライブラリを使用して無効な非数値データに対して処理を行うブラウザアプリケーションの場合、そのブラウザがクラッシュしたりフリーズしたりする可能性があります。入力データの累積分布関数を評価するコードにおいて、無限ループを可能にする欠陥が発見されました。ドキュメントでは数値データが必要であると説明されていますが、ユーザーは ["1","2","3","4","5"] のような文字列の配列を、実際には文字列データであるにもかかわらず数値データ [1,2,3,4,5] と混同する場合があります。入力データが `number` 型ではなく文字列データである場合、特定の点に対して累積分布関数が評価される際に無限ループが発生する可能性があります。この脆弱性により、攻撃者がライブラリに不正なデータを供給できる場合、npm:cumulative-distribution-function v1.0.3 以前のバージョンを使用するすべてのアプリケーションに対して、無限 CPU ループによるサービス妨害(DoS)攻撃が可能になります。分析対象のデータソースが、データ型を数値の配列(適切)から文字列の配列(無効だが、以前のバージョンのライブラリでは検出されない)に変更した場合にも、この脆弱性が顕在化する可能性があります。ユーザーは少なくとも v2.0.0、または最新バージョンにアップグレードする必要があります。無効なデータのいくつかのタイプに対するテストが作成されており、バージョン 2.0.0 では、これを処理する代わりに `TypeError()` をスローすることでこの無効なデータを拒否することがテストされています。このライブラリを使用している開発者は、この TypeError をより適切に許容または処理するために、アプリケーションのコードをわずかに調整することを検討すべきです。このライブラリにデータを送信する前に適切な数値データの検証を行うアプリケーションは、このパッチによってほとんど影響を受けないはずです。古いバージョンでは、`cumulative-distribution-function` およびその `f(x)` 関数それぞれに対して、`Array[number]` 型または `number` 型の有限の数値データのみが渡されることを確認することで、この脆弱性を軽減できます。
Once again VulDB remains the best source for vulnerability data.