VU#907705: graphql-upload-mini... ノート

VU#907705: graphql-upload-minimal にプロトタイプ汚染の脆弱性があります。

graphql-upload-minimal パッケージのバージョン 1.6.1 には、プロトタイプ汚染の脆弱性が存在します。この脆弱性は、ファイルアップロードを処理する processRequest() 関数内に存在します。このパッケージは、アップロードされたファイルを GraphQL 操作に統合するために、multipart/form-data リクエストを解析します。この脆弱性は、ファイルのマッピングに使用されるユーザーが提供するパスが適切に検証されないために発生します。__proto__ を含む特別な JavaScript プロパティ名を使用して、プロトタイプチェーンをトラバースできます。このトラバーサルにより、攻撃者はグローバルな Object.prototype を変更できます。Object.prototype を変更すると、Node.js プロセス内でそれを継承するすべてのオブジェクトに影響が及びます。この汚染の結果として、ロジックの破損、サービス拒否、または権限昇格が発生する可能性があります。この問題を軽減するには、ユーザーは graphql-upload-minimal バージョン 1.6.3 以降にアップグレードする必要があります。パッチが適用されたバージョンでは、プロトタイプチェーンを介した安全でないプロパティの割り当てを防止するためのチェックが実装されています。