@fastify/busboyにおいて、multipartの境界が大きすぎる場合に、サービス拒否の脆弱性が存在する。
### 影響
@fastify/busboyのバージョン3.1.0以前および3.2.1より前のバージョンは、サービス拒否の脆弱性があります。組み込みのストリーミングmultipart検索は、デフォルトで`Uint8Array(256)`にスキップ距離を保存します。multipartの境界が正確に252バイトの場合、検索対象のデータが256バイトになり、テーブルのエントリがゼロに巻き戻されるため、巧妙に作成されたリクエストによって検索がCPUを占有するループに陥り、Node.jsのイベントループが停止します。認証されていないクライアントでも、単一の小さなリクエストでこの脆弱性を引き起こす可能性があります。@fastify/busboyを使用してmultipart/form-dataを解析するアプリケーション、または@fastify/multipartを介して解析するアプリケーションは、この影響を受けます。
### 修正
バージョン3.2.1で修正されました。
### 対策
解析前にmultipartの境界を検証し、RFC 2046で定められた70文字の制限を超える境界は拒否してください(例えば、リバースプロキシやonRequestフックなどで)。バージョン3.2.1にアップグレードすることで、この問題は解消されます。
影響を受けるパッケージ:
- npm (JavaScript) @fastify/busboy: 影響あり >= 3.1.0, < 3.2.1、3.2.1で修正済み。