概要
@fastify/express は、Express ミドルウェアを Fastify プラグインとして使用できるアダプターです。v4.0.4 以前において、onRegister フック内でミドルウェアのパスが子プラグインに継承される際に、プレフィックスが二重に付加されるバグが存在します。
子プラグインを特定のプレフィックスで登録すると、そのプレフィックスがミドルウェアパスと一致する場合、ミドルウェアが受信リクエストに一切マッチしなくなります。これにより、認証・認可・レート制限などのセキュリティ制御が完全にスキップされます。
特別な設定変更やリクエストの細工は不要で、通常の動作として再現します。
CVSSベクトル
| 要素 | 値 |
|---|---|
| Attack Vector | Network |
| Attack Complexity | Low |
| Privileges Required | None |
| User Interaction | None |
| Scope | Changed |
| Confidentiality | High |
| Integrity | High |
| Availability | None |
| CVSSスコア | 9.1 (Critical) |
影響を受けるソフトウェア
| 製品 | 影響バージョン | 修正バージョン |
|---|---|---|
| @fastify/express | v4.0.4 以前 | v4.0.5 以降 |
修正バージョンと回避策
推奨対応: @fastify/express を v4.0.5 以降にアップデートしてください。
npm install @fastify/express@latest
# または
yarn add @fastify/express@latest
アップデートが困難な場合の暫定回避策:
- ミドルウェアのパス定義が子プラグインのプレフィックスと一致しないよう、パス設計を変更する
- 認証ロジックを Fastify ネイティブのフック(
onRequest、preHandler)に移行する
関連リンク
データソース: NVD (NIST), GitHub Advisory Database AI解説は Claude API により自動生成されています。正確性については原文をご確認ください。
