
लैब + राइटअप CVE-2026-44166 के लिए: अमान्य createData.email के माध्यम से PocketBase OAuth2 खाता प्री-हाइजैकिंग
PocketBase का एक auth संग्रह जिसमें OAuth2 सक्षम है, क्लाइंट को साइन अप करते समय createData ऑब्जेक्ट पास करने देता है। createData के अंदर का ईमेल कभी भी उस ईमेल से जाँचा नहीं जाता जिसे OAuth2 प्रदाता ने सत्यापित किया है। किसी कॉन्फ़िगर किए गए प्रदाता पर खाता रखने वाला कोई भी व्यक्ति एक रिकॉर्ड पंजीकृत कर सकता है जो किसी और का ईमेल रखता है, जो उनकी अपनी OAuth2 पहचान से जुड़ा होता है।
एक प्रदाता कॉन्फ़िगर होने पर, वास्तविक मालिक लॉक आउट हो जाता है। दो या अधिक के साथ, मालिक बाद में किसी भिन्न प्रदाता के माध्यम से लॉग इन करता है और हमलावर के साथ खाता साझा करता है।
प्रभावित: < 0.22.42 और >= 0.30.0, < 0.37.4। 0.22.42 और 0.37.4 में ठीक किया गया।
सलाह: GHSA-pq7p-mc74-g65w। CWE-287. CVSS 4.0 6.1.
पूर्ण लेख: WRITEUP.md
python fetch_binaries.py # pulls vulnerable 0.37.3 + patched 0.37.4 for your OS
python poc.py # pre-claim and lockout against the vulnerable build
python verify_fix.py 0.37.4 # same steps on the patched build, attacker gets evicted
Python 3.8+, standard library only. The PoC runs offline against a bundled mock OAuth2 provider, so there is no real IdP or network target.
कमजोर 0.37.3:
[1] Attacker token issued for: [email protected] (verified=False)
[2] Victim login: HTTP 400 -- Failed to authenticate.
[3] Attacker re-auth: [email protected] -- same record: True
पैच किया गया 0.37.4:
[1] Attacker pre-claims: [email protected] verified=False id=...
[2] Victim login: SUCCESS verified=True id=... => victim owns the account
[3] Attacker re-auth: [email protected] id=... same-as-victim=False
शिक्षा और अधिकृत सुरक्षा परीक्षण के लिए: आपकी अपनी प्रयोगशाला, CTF और HTB बक्से, दायरे में आने वाले बग बाउंटी लक्ष्य। प्रयोगशाला ऑफ़लाइन है और कभी भी किसी ऐसी चीज़ को नहीं छूती जिसे आप स्वयं नहीं चलाते।
| फ़ाइल | उद्देश्य |
|---|
WRITEUP.md | मूल-कारण विश्लेषण, दोनों हमले के प्रकार, उपचार, पहचान |
fetch_binaries.py | आपके OS/arch के लिए 0.37.3 / 0.37.4 बाइनरी डाउनलोड करता है |
mock_oauth2_server.py | छोटा ऑफ़लाइन नकली OAuth2 प्रदाता (टोकन + userinfo) |
poc.py | कमजोर बिल्ड के खिलाफ शोषण |
verify_fix.py | किसी भी बिल्ड पर समान चरण चलाता है और परिणाम रिपोर्ट करता है |