AI-सक्षम GitHub Actions को केवल एक कमेंट के माध्यम से हैक किया जा सकता है, जिससे API कीज़, क्लाउड टोकन और अन्य सीक्रेट्स लीक हो सकते हैं। एक सुरक्षा शोधकर्ता ने 22 ऐसी ओपन-सोर्स रिपॉजिटरीज़ का पता लगाया है जहाँ एक सार्वजनिक ट्रिगर, "skip prompts" फ्लैग के साथ चलाया गया एक AI टूल और उजागर किए गए सीक्रेट्स मिलकर डेटा चोरी (exfiltration) का एक सीधा रास्ता बना देते हैं।
यह खामी कैसे काम करती है
अब प्रोजेक्ट्स सीधे CI पाइपलाइन्स में AI एजेंट—जैसे Claude Code, GitHub Copilot CLI और इसी तरह के टूल्स—को शामिल कर रहे हैं। एक वर्कफ़्लो स्टेप एक शेल कमांड चलाता है और अक्सर एक ऐसा फ्लैग जोड़ता है जो टूल को इंटरैक्टिव अनुमति अनुरोधों (permission requests) को अनदेखा करने के लिए कहता है। जब वर्कफ़्लो किसी भी सार्वजनिक इनपुट—जैसे कोई इश्यू (issue), कमेंट, या पुल-रिक्वेस्ट (pull-request) टाइटल—पर शुरू होता है, तो हमलावर को केवल टेक्स्ट की एक ऐसी लाइन पोस्ट करने की आवश्यकता होती है जिसे AI एक कमांड के रूप में मानेगा।
AI, जिसे "skip prompts" फ्लैग द्वारा पहले से ही बिना किसी प्रतिबंध के शेल एक्सेस दे दिया गया है, वर्कफ़्लो द्वारा उजागर किए गए किसी भी एनवायरनमेंट वेरिएबल या फ़ाइल को पढ़ सकता है। यदि जॉब में सीक्रेट्स—जैसे API कीज़, क्लाउड सर्विस टोकन, या फुल सर्विस-अकाउंट क्रेडेंशियल्स—भी लोड किए जाते हैं, तो AI उन वैल्यूज़ को हमलावर द्वारा नियंत्रित सर्वर पर भेज देता है। इसमें न तो कोड में कोई बदलाव की ज़रूरत है, न ही किसी नई डिपेंडेंसी की, बस एक हानिरहित दिखने वाला कमेंट ही काफी है।
वास्तविक दुनिया के उदाहरण
शोधकर्ता ने तीन असुरक्षित रिपॉजिटरीज़ की पुष्टि की है जिन्हें पहले ही पैच (patch) कर दिया गया है:
- pymc-labs/pymc-marketing – प्रॉम्प्ट इंजेक्शन के माध्यम से एक सार्वजनिक इश्यू का उपयोग Anthropic API की तक पहुँचने के लिए किया जा सकता था।
- MadAppGang/dingo – वर्कफ़्लो ने Claude Code को पूर्ण Bash एक्सेस दिया और उसी जॉब में दो सीक्रेट्स उजागर कर दिए।
- MadAppGang/claudish – dingo प्रोजेक्ट के समान ही असुरक्षित टेम्पलेट का पुन: उपयोग किया गया था।
एक खोज में एक लाइव क्लाउड-सर्विस अकाउंट की (key) मिली, जिसकी रिपोर्ट शोधकर्ता ने सीधे एक प्रमुख AI प्रोवाइडर की सुरक्षा टीम को दी। बारह अतिरिक्त रिपोर्ट मेंटेनर के पास लंबित हैं; उनके नाम तब तक गुप्त रखे जा रहे हैं जब तक कि उनके फिक्स लाइव नहीं हो जाते।
दांव पर क्या है
जब कोई हमलावर किसी सीक्रेट को निकाल लेता है, तो नुकसान तत्काल और भारी हो सकता है। एक क्लाउड-सर्विस अकाउंट की कंप्यूट रिसोर्सेज, स्टोरेज बकेट और अन्य सशुल्क सेवाओं तक बिना किसी प्रतिबंध के पहुँच प्रदान करती है। एक लार्ज-लैंग्वेज-मॉडल (LLM) प्रोवाइडर की API की असीमित क्वेरी चला सकती है, जिससे संभावित रूप से हजारों डॉलर का खर्च बढ़ सकता है। क्योंकि यह एक्सप्लॉइट CI एनवायरनमेंट के अंदर चलता है, इसलिए यह ब्रीच आगे भी फैल सकता है: समझौता किए गए रनर पर बनाया गया कोई भी आर्टिफैक्ट (artifact) मैलिशियस कोड ले जा सकता है, जिससे एक एकल रिपॉजिटरी पूरे सप्लाई-चेन वेक्टर में बदल सकती है।
जो टीमें AI-असिस्टेड CI पर निर्भर हैं, उनके लिए यह समझौता बहुत बड़ा है। ऑटो-जेनरेटेड कोड, लिंटिंग या डॉक्यूमेंटेशन की सुविधा को इस जोखिम के विरुद्ध तौलना होगा कि एक सार्वजनिक कमेंट एक गुप्त बैकडोर बन सकता है।
इस भेद्यता (vulnerability) को नज़रअंदाज़ करना आसान क्यों है
शोधकर्ता ने शुरू में छह रिपोर्टें दर्ज की थीं जिन्हें बाद में वापस ले लिया गया। ये वापसी GitHub Actions के परमिशन चेक के बारे में धारणाओं के कारण हुई थीं, न कि एक्शन के सोर्स कोड की लाइन-दर-लाइन समीक्षा के कारण। डॉक्यूमेंटेशन और अंतर्ज्ञान (intuition) भ्रामक हो सकते हैं; AI-सक्षम स्टेप की सुरक्षा स्थिति की पुष्टि करने का एकमात्र विश्वसनीय तरीका उस कोड का निरीक्षण करना है जो टूल को चलाता है और वह वर्कफ़्लो YAML है जो उन्हें आपस में जोड़ता है।
शमन (Mitigation) चेकलिस्ट
यदि आप GitHub Actions वर्कफ़्लो के अंदर किसी AI CLI या इसी तरह के टूल को चलाते हैं, तो मर्ज करने से पहले इन दो सवालों के जवाब दें:
वर्कफ़्लो को कौन ट्रिगर कर सकता है? ट्रिगर्स को केवल विश्वसनीय इवेंट्स (जैसे सुरक्षित ब्रांचों पर पुश) तक सीमित रखें या बाहरी योगदानकर्ताओं द्वारा शुरू किए गए रन के लिए स्पष्ट अनुमति (explicit approval) की आवश्यकता रखें। अतिरिक्त गेटिंग के बिना
on: issue_commentयाon: issuesका उपयोग करने से बचें।उसी जॉब में कौन से सीक्रेट्स लोड किए गए हैं? उस जॉब में कभी भी API कीज़, क्लाउड टोकन, या सर्विस-अकाउंट क्रेडेंशियल्स को उजागर न करें जो बिना किसी प्रतिबंध के शेल एक्सेस के साथ एक AI एजेंट भी चलाता है। सीक्रेट-हैवी स्टेप्स को अलग (isolated) जॉब्स या रनर्स में विभाजित करें जो AI टूल्स को कॉल नहीं करते हैं।
अतिरिक्त सुरक्षा (hardening) कदम:
- उस फ्लैग को हटा दें जो परमिशन प्रॉम्प्ट को स्किप करता है, जिससे AI टूल को शेल कमांड निष्पादित करने से पहले स्पष्ट पुष्टि (explicit confirmation) मांगने के लिए मजबूर किया जा सके।
- एक ऐसा स्टेप जोड़ें जो किसी भी एनवायरनमेंट वेरिएबल को सैनिटाइज या रेडैक्ट (redact) करे जिसे AI टूल पढ़ सकता है।
- नेटवर्क एग्रेस (egress) कंट्रोल के साथ सेल्फ-होस्टेड रनर्स का उपयोग करें ताकि मनमाने एंडपॉइंट्स पर डेटा चोरी को रोका जा सके।
काउंटर-पॉइंट: CI में AI की उपयोगिता
समर्थकों का तर्क है कि उत्पादकता में होने वाला लाभ जोखिम से अधिक है। ऑटोमेटेड कोड सुझावों से रिव्यू का समय कम होता है, और AI-संचालित टेस्टिंग बग्स को जल्दी सामने लाती है। फिर भी, यही सुविधा अटैक सरफेस (attack surface) को बढ़ा देती है। मुख्य बात AI को छोड़ना नहीं है, बल्कि शेल-लेवल विशेलेग्स वाले किसी भी टूल को एक संभावित वेक्टर के रूप में देखना है।
आगे क्या देखें
इन निष्कर्षों ने GitHub के सुरक्षा फ़ोरमों पर AI-सक्षम Actions के लिए अधिक सख्त डिफ़ॉल्ट अनुमतियों के संबंध में पहले ही चर्चाओं को जन्म दे दिया है। भविष्य के प्लेटफ़ॉर्म अपडेट में शामिल हो सकते हैं:
- एक फ्लैग जो AI टूल्स को बिना डायरेक्ट शेल एक्सेस के sandboxed environment में चलने के लिए मजबूर करता है।
- इश्यू बॉडी या कमेंट्स में prompt-injection पैटर्न का built-in detection।
- जब कोई workflow पब्लिक ट्रिगर्स को secret-laden jobs के साथ मिलाता है, तो automated alerts।
फिलहाल, ज़िम्मेदारी रिपॉजिटरी मेंटेनर की है। पहचाने गए 22 रिपॉजिटरीज़ दिखाते हैं कि यह समस्या केवल एक जगह तक सीमित नहीं है; कोई भी प्रोजेक्ट जो उसी workflow पैटर्न का अनुसरण करता है, वह असुरक्षित है। CI कॉन्फ़िगरेशन का एक त्वरित ऑडिट हमलावर से पहले समस्या का पता लगा सकता है।
निष्कर्ष: एक पब्लिक GitHub इश्यू में टेक्स्ट की एक अकेली लाइन एक AI एजेंट को आपके CI एनवायरनमेंट पर पूरा नियंत्रण दे सकती है और वहां स्टोर किए गए सीक्रेट्स चुरा सकती है। सत्यापित करें कि कौन आपके workflows लॉन्च कर सकता है, सीक्रेट्स को AI-संचालित स्टेप्स से दूर रखें, और हर उस फ्लैग की बारीकी से जांच करें जो बिना किसी जांच के अनुमतियां देता है। डेटा ब्रीच की लागत एक अनुशासित समीक्षा के प्रयास से कहीं अधिक होती है।
