Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
bitwarden-cipher-create-acl — Bitwarden Server v2026.9.2 - उच्च - IDOR - कॉलर उन संग्रहों में डिक्रिप्ट करने योग्य वॉल्ट आइटम डाल सकता है जिनमें वह लिख नहीं सकता | Kitploit
उपकरण/GitHubGitHub/abraxas/bitwarden-cipher-create-acl
प्रमाणीकरण और प्राधिकरणभेद्यता विश्लेषणशोषणवेब एप्लिकेशन शोषणवेब सुरक्षापेनिट्रेशन टेस्टिंगलैब और अभ्यास
GitHub

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
abraxas/bitwarden-cipher-create-acl

bitwarden-cipher-create-acl

Bitwarden Server v2026.9.2 - उच्च - IDOR - कॉलर उन संग्रहों में डिक्रिप्ट करने योग्य वॉल्ट आइटम डाल सकता है जिनमें वह लिख नहीं सकता

रिपॉजिटरी देखें
11113 दिन पहलेअभी तक समीक्षित नहीं

Abraxas Labs - bitwarden-cipher-create-acl

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  bitwarden-cipher-create-acl

bitwarden-cipher-create-acl

Bitwarden Server v2026.9.2 - Bitwarden

Entity Framework पथ (MariaDB, Postgres, SQLite) पर Org cipher create, collection attach से पहले caller id को गिरा देता है। एक confirmed member उस collection में org-key item रख सकता है जिसमें वे लिख नहीं सकते। Collection members इसे सामान्य shared login के रूप में sync करते हैं।

IDअभी तक कोई CVE नहीं
CWECWE-863 / CWE-639
CVSSHigh: 7.1 CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:L
ProductBitwarden Server
Affectedv2026.9.2 (9ee4e0eb) lite EF (MariaDB / Postgres / SQLite)। MSSQL/Dapper @UserId रखता है।
Authconfirmed org member
LicenseGNU Affero GPL v3.0
Labकेवल 127.0.0.1

हमलावर क्या कर सकता है

हमलावर shared collection में vault items जोड़ता है। वे उसमें पहले से मौजूद secrets को पढ़ते या बदलते नहीं हैं।

एक confirmed org member के पास पहले से org key होती है, इसलिए नया item उन सभी के लिए decrypt हो जाता है जो उस collection को देख सकते हैं। Bitwarden इसे कंपनी vault के अंदर से एक सामान्य shared login, note, card, या SSH key के रूप में दिखाता है।

  • Vault से phishing। किसी असली shared item (Okta, GitHub, VPN, Payroll) जैसा नाम वाला login रखें जिसका URI उनके नियंत्रित host की ओर इशारा करता हो। Collection members इसे Bitwarden से खोलते हैं और हमलावर के page पर पहुँच जाते हैं, या lookalike के विरुद्ध auto-fill कर देते हैं।
  • Ops को ज़हर देना। एक secure note या login रखें जो rotation जैसा दिखे (new AWS key, bastion SSH key, DB password after change)। कोई इसे production या terminal में copy कर लेता है।
  • निकाले जाने के बाद भी बने रहना। Create, collection में एक नया cipher है। हमलावर की membership हटाए जाने के बाद भी यह उन सभी के लिए बना रहता है जिनके पास access है।
  • Read-only को bypass करना। एक contractor जो केवल Production पढ़ सकता है, वह भी lite EF पर उसमें नया item डाल सकता है।

यदि उनके पास target collection तक access नहीं है, तो POST /api/ciphers/create write पहले ही commit हो जाने के बाद 404 लौटा सकता है। Victims को sync पर फिर भी item मिल जाता है।

मैंने इसे कैसे खोजा

मैंने 2026 की लहर के बाद bitwarden/server v2026.9.2 (9ee4e0eb) pin किया: admin-request TDE (CVE-2026-60104), SSO ExternalId truncation (CVE-2026-101878), org import empty collections (CVE-2026-43638)। वे बंद हैं। create पर Collection ACL नहीं था।

CiphersController.PostCreate केवल org membership जाँचता है, फिर जब OrganizationId सेट होता है तो skipPermissionCheck: true पास करता है। SaveDetailsAsync फिर "यह collection org में मौजूद है" को एकमात्र collection जाँच मान लेता है।

Lite MariaDB/Postgres/SQLite EF का उपयोग करते हैं। CreateAsyncReturnCipher cipher.UserId = null सेट करता है क्योंकि org id मौजूद है, फिर उस null को UpdateCollectionsAsync में दे देता है। Null user id का अर्थ है org की हर collection। SQL Server Dapper Cipher_UpdateCollections (ReadOnly = 0) के लिए @UserId रखता है। वह पथ negative है।

पहले से दर्ज गलत मोड़: cloud POST /organizations को self-host create मानना (यह [NotSelfHostedOnly] है; lite को license file चाहिए, इसलिए lab register के बाद org rows seed करता है); ऐसी collection में plant करना जिसे caller पढ़ नहीं सकता और HTTP 404 को miss मानना (CollectionCipher row पहले ही commit हो चुकी होती है); यह मानना कि MSSQL lite इसे दिखाएगा (Dapper caller id नहीं गिराता); BW_ENABLE_ADMIN बंद छोड़ना जिससे lite कभी User / OrganizationDomain migrate नहीं करता (इस image पर admin ही EF migrator है); /identity/connect/token पर Bitwarden-Client-Version छोड़ना और password grant 400 होते देखना। एक reverse shell। नाटक।

Lab

cd lab
./run.sh

लक्ष्य केवल http://127.0.0.1:18160। Image ghcr.io/bitwarden/lite:2026.9.2 और MariaDB।

SUCCESS BITWARDEN-CIPHER-CREATE-ACL create-http=404 collectioncipher=1 victim-sync-has-cipher=yes cipher=<id> negative-http=404 readonly-http=200 BITWARDEN-CIPHER-CREATE-ACL-WITNESS

No-access plant, CollectionCipher commit होने के बाद 404 लौटाता है। Victim GET /api/ciphers और /api/sync दोनों में नया id मौजूद होता है। B पर read-only 200 लौटाता है और फिर भी plant कर देता है। Foreign-org collection बिना join row के 404 रहता है।

समाधान

Saving user id को EF UpdateCollectionsAsync में उसी तरह पास करें जैसे CipherDetails_CreateWithCollections stored UserId column को null करने के बाद भी @UserId पास करता है। Member create पथ पर null user को "सभी collections" न मानें। Org में मौजूदगी write access नहीं है।

संदर्भ

  • github.com/bitwarden/server tag v2026.9.2
  • CiphersController.cs (Post, PostCreate)
  • CipherService.cs (SaveDetailsAsync)
  • CipherRepository.cs (CreateAsyncReturnCipher, UpdateCollectionsAsync)
  • CWE-863

लाइसेंस

GNU Affero GPL v3.0

टूल डाउनलोड करें