
मुझे OpenClaw में एक Zero-Day भेद्यता मिली — यहाँ बताया गया है कि यह कैसे हुआ
स्रोत कोड की समीक्षा करते समय, मैंने इस बात पर ध्यान केंद्रित किया कि OpenClaw HTTP अनुरोधों को कैसे संभालता है — विशेष रूप से fetchWithSsrFGuard() फ़ंक्शन, जो सर्वर-साइड fetch कॉल करने के लिए ज़िम्मेदार है।
मुझे कुछ गड़बड़ नज़र आई।
जब कोई अनुरोध क्रॉस-ओरिजिन रीडायरेक्ट का अनुसरण करता था (अर्थात सर्वर ने एक 3xx प्रतिक्रिया भेजी जो किसी भिन्न डोमेन की ओर इशारा करती थी), OpenClaw को नए गंतव्य पर अनुरोध अग्रेषित करने से पहले संवेदनशील हेडर हटाने चाहिए थे। उसने ऐसा किया — लेकिन केवल एक संकीर्ण हार्डकोडेड डेनीलिस्ट के लिए:
Authorization, Proxy-Authorization, Cookie, Cookie2
समस्या? वह सूची अधूरी है।
कस्टम प्रमाणीकरण हेडर जैसे X-Api-Key, Private-Token, या कोई अन्य बियरर-शैली हेडर जो डेवलपर्स आमतौर पर उपयोग करते हैं — इनमें से कोई भी नहीं हटाया गया। उन्हें रीडायरेक्ट गंतव्य पर ज्यों-का-त्यों अग्रेषित किया गया।
इसका मतलब है: यदि कोई हमलावर नियंत्रित या प्रभावित कर सकता था कि रीडायरेक्ट कहाँ इंगित करता है, तो वे संवेदनशील क्रेडेंशियल प्राप्त कर सकते थे जो उनके लिए कभी अभिप्रेत नहीं थे।
कल्पना करें कि आपका एप्लिकेशन OpenClaw का उपयोग कस्टम X-Api-Key हेडर के साथ एक आंतरिक API को कॉल करने के लिए करता है। एक दुर्भावनापूर्ण सर्वर हमलावर-नियंत्रित URL पर रीडायरेक्ट के साथ प्रतिक्रिया करता है। OpenClaw रीडायरेक्ट का अनुसरण करता है — और आपकी API कुंजी को उसके साथ आगे भेज देता है।
खेल खत्म। आपके क्रेडेंशियल अब किसी और के हाथों में हैं।
CVSS 3.1 स्कोर: 9.3 (गंभीर)
अनुरक्षकों ने डेनीलिस्ट दृष्टिकोण को एक सुरक्षित-हेडर अनुमतिसूची से बदल दिया। ज्ञात खराब हेडर को ब्लॉक करने की कोशिश करने के बजाय, नया तर्क केवल ज्ञात सुरक्षित हेडर को क्रॉस-ओरिजिन रीडायरेक्ट पर अनुमति देता है — जैसे सामग्री वार्ता और कैश सत्यापनकर्ता। बाकी सब कुछ डिफ़ॉल्ट रूप से हटा दिया जाता है।
यह सही दृष्टिकोण है। डेनीलिस्ट-आधारित सुरक्षा नाजुक है; अनुमतिसूची-आधारित सुरक्षा मजबूत है।
संदर्भ
46715371b0612a6f9114dffd1466941ac476cef5<= 2026.3.2>= 2026.3.7तुरंत >= 2026.3.7 पर अपडेट करें।
यदि आप कस्टम प्रमाणीकरण हेडर (जैसे X-Api-Key या Private-Token) का उपयोग करते हैं और आप पुराने संस्करण पर थे, तो उन क्रेडेंशियल्स को संभावित रूप से समझौता किए गए मानें और उन्हें बदल दें।