
पता लगाएं कि कोई Strapi इंस्टेंस CVE-2026-27886 (प्रमाणीकरण रहित बूलियन-ओरेकल द्वारा प्रशासक गुप्त जानकारी का बहिर्वाह) के प्रति संवेदनशील है या नहीं।
बिना पूर्ण खाता-अधिग्रहण श्रृंखला निष्पादित किए, यह सुरक्षित रूप से पता लगाएं कि कोई Strapi इंस्टेंस CVE-2026-27886 के लिए असुरक्षित है या नहीं। पूर्ण विवरण के लिए Bishop Fox ब्लॉग पर पूर्ण विवरण देखें।
CVE-2026-27886 Strapi संस्करण 4.0.0 से 5.36.1 में एक अप्रमाणित पैरामीटर स्वच्छता बाईपास है जो रिमोट, अप्रमाणित हमलावरों को सार्वजनिक Content API के माध्यम से प्रशासक रहस्यों को लीक करने की अनुमति देता है। फ्रेमवर्क का क्वेरी सैनिटाइज़र @strapi/utils में केवल दस्तावेज़ीकृत filters, sort, fields, और populate क्वेरी कुंजियों को संसाधित करता है और अनुरोध पर अन्य सभी शीर्ष-स्तरीय कुंजियों को चुपचाप संरक्षित करता है। अज्ञात कुंजियाँ फिर transformQueryParams के माध्यम से आगे भेजी जाती हैं और SQL WHERE क्लॉज के रूप में strapi.db.query(...) पर पहुँचती हैं। किसी भी सार्वजनिक Content API संग्रह के विरुद्ध where[updatedBy][resetPasswordToken][$startsWith]=<prefix> की जाँच करके, एक हमलावर प्रतिक्रिया के meta.pagination.total फ़ील्ड के माध्यम से एक बार में एक कैरेक्टर प्रशासक रहस्यों को लीक कर सकता है।
यह उपकरण विनाश-रहित भेद्यता परीक्षण निम्नलिखित तरीके से करता है:
GET /api/<collection> भेजनाGET ?where[id][$lt]=-1 जोड़कर भेजनाmeta.pagination.total मानों की तुलना करना कि क्या where क्लॉज डेटाबेस परत तक पहुंचाwhere[id][$lt]=-1 प्रेडिकेट किसी भी वास्तविक पंक्ति से मेल नहीं खा सकता, इसलिए जब क्लॉज डेटाबेस परत पर स्वीकार किया जाता है तो प्रतिक्रिया शून्य पंक्तियों में सिमट जाती है। जब पैच लागू होता है, तो क्वेरी बनने से पहले अज्ञात where कुंजी को सैनिटाइज़र की अनुमति सूची द्वारा हटा दिया जाता है और प्रतिक्रिया बेसलाइन के समान होती है। जांच कभी भी निजी प्रशासक कॉलम को स्पर्श नहीं करती और कभी भी कोई डेटा संशोधित नहीं करती।
where क्लॉज डेटाबेस परत पर स्वीकार किया गया था।sanitizeQuery डेटाबेस तक पहुंचने से पहले किसी भी अपरिचित शीर्ष-स्तरीय कुंजी को हटा देता है।INCONCLUSIVE परिणाम रिपोर्ट करेंगे।एक असुरक्षित सर्वर पर, उपकरण फिर प्रशासक के ईमेल पते को where[updatedBy][email][$startsWith]=<prefix> के माध्यम से एक-एक कैरेक्टर एनुमरेट करता है। यह प्रशासक खाता अधिग्रहण की श्रृंखला नहीं बनाता है।
git clone https://github.com/BishopFox/CVE-2026-27886-check
cd CVE-2026-27886-check
कोई बाहरी निर्भरता नहीं। स्कैनर केवल Python मानक लाइब्रेरी मॉड्यूल का उपयोग करता है।
किसी Strapi सर्वर के सार्वजनिक Content API संग्रह एंडपॉइंट का परीक्षण करें। Strapi सामग्री प्रकार के pluralName को URL पथ में मैप करता है, इसलिए सटीक नाम परिनियोजन के अनुसार भिन्न होता है।
python3 CVE-2026-27886-check.py <ENDPOINT>
$ python3 CVE-2026-27886-check.py http://target.example.com/api/articles
[+] Target: http://target.example.com/api/articles
[+] Differential confirmed: baseline total=1, where-test total=0 -> VULNERABLE
[+] Enumerating admin email
admin email = [email protected]
[+] Done. To remediate, upgrade to Strapi 5.37.0 or later.
$ python3 CVE-2026-27886-check.py http://target.example.com/api/articles
[+] Target: http://target.example.com/api/articles
[+] Differential check: baseline total=1, where-test total=1 -> NOT VULNERABLE
find अनुदान दिया गया हैupdated_by_id हैयदि कोई भी शर्त पूरी नहीं होती है, तो उपकरण INCONCLUSIVE परिणाम रिपोर्ट करेगा।
यह कोड MIT लाइसेंस के अंतर्गत वितरित किया जाता है।
पूर्व आपसी सहमति के बिना लक्ष्यों पर हमला करने के लिए इस उपकरण का उपयोग अवैध है। सभी लागू स्थानीय, राज्य और संघीय कानूनों का पालन करना अंतिम उपयोगकर्ता की जिम्मेदारी है। डेवलपर्स कोई दायित्व नहीं लेते हैं और इस प्रोग्राम के कारण किसी भी दुरुपयोग या क्षति के लिए जिम्मेदार नहीं हैं।