JVNDB-2026-016012 | |
strapiにおける過度な認証試行の不適切な制限に関する脆弱性 | |
| 概要 | |
Strapiはオープンソースのヘッドレスコンテンツ管理システムです。バージョン5.45.0以前のStrapiでは、users-permissionsプラグインのレート制限ミドルウェアがレート制限キーの一部として`ctx.request.body.email`を使用していました。これは`email`フィールドを含まないルート(`/auth/local`、`/auth/reset-password`、`/auth/change-password`など)においても同様でした。認証されていない攻撃者はリクエストボディに任意の`email`値を含めることでルートごとに新しいレート制限キーを取得でき、これによりこれらのルートでのIPごとのスロットリングを効果的に回避できました。その結果、大量の認証情報ブルートフォース攻撃、パスワードリセットコードのブルートフォース攻撃、認証情報詰め込み攻撃が可能となりました。レート制限キーは`${userIdentifier}:${requestPath}:${ctx.request.ip}`の形式で構築されており、`userIdentifier = ctx.request.body.email`でした。メールを識別子として正しく使用するルート(例:`/auth/forgot-password`、`/auth/local/register`)ではこのスコープは適切でしたが、異なる識別子を使用するルート(ログイン時は`identifier`、パスワードリセット時は`code`、パスワード変更時は`currentPassword`)においてはメールフィールドがルートの契約に含まれていなかったにもかかわらず、ミドルウェアがキーに取り込んでいたため、呼び出し元は値を回転させることで毎回ユニークなキーを取得できました。バージョン5.45.0の修正ではメールフィールドを合法的にキーに含むルートの許可リストを維持し、それ以外のミドルウェアが設置されたすべてのルートではそのキー要素を除外しています。OAuthコールバックのパス(`/connect/*`)は識別子なしとして扱われます。許可リスト外のルートでは、ミドルウェアは固定の識別子なしキーにフォールバックし、リクエストボディが攻撃者に制御されていてもIPごとのスロットリングが効果的に機能し続けることを保証します。 | |
| CVSS による深刻度 (CVSS とは?) | |
|
CVSS v3 による深刻度
基本値: 5.3 (警告) [NVD値]
| |
| 影響を受けるシステム | |
|
| |
strapi | |
本脆弱性の影響を受ける製品の詳細については、ベンダ情報および参考情報をご確認ください。 | |
| 想定される影響 | |
当該ソフトウェアが扱う情報について、外部への漏えいは発生しません。 | |
| 対策 | |
正式な対策が公開されています。ベンダ情報を参照して適切な対策を実施してください。 | |
| ベンダ情報 | |
GitHub | |
| CWEによる脆弱性タイプ一覧 CWEとは? | |
| |
| 共通脆弱性識別子(CVE) CVEとは? | |
|
| |
| 参考情報 | |
| |
| 更新履歴 | |
|
| 公表日 | 2026/05/14 |
| 登録日 | 2026/05/18 |
| 最終更新日 | 2026/05/18 |



