Security Blog

आपने अपने एजेंट से त्रुटियाँ ठीक करने को कहा। उनमें से एक हमलावर ने लिखी थी।

#488

October 2, 2026 · By Marketing team

← All posts

एक नकली Sentry त्रुटि रिपोर्ट AI कोडिंग एजेंटों को धोखा देकर उनसे हमलावर का कोड डेवलपर के पूरे अधिकारों के साथ चलवा देती है — 85% मामलों में। तबाही की जड़ इंजेक्शन नहीं है; जड़ वे स्थायी क्रेडेंशियल हैं जिन तक अगवा किया गया एजेंट पहुँच सकता है।

एक डेवलपर अपना AI कोडिंग एजेंट खोलता है और दुनिया का सबसे सामान्य अनुरोध टाइप करता है: "देख लो, Sentry में जो त्रुटियाँ अनसुलझी पड़ी हैं, उन्हें ठीक कर दो।" एजेंट अपने Sentry कनेक्टर के ज़रिए त्रुटि सूची निकालता है, सबसे ऊपर की समस्या पढ़ता है, रिपोर्ट में वहीं लिखे उपाय के चरणों का पालन करता है, और उन्हें चला देता है। आधे मिनट बाद वह डेवलपर की मशीन पर हमलावर का कोड चला चुका होता है — डेवलपर के पूरे अधिकारों के साथ — और किसी ने कुछ भी गलत नहीं किया था।

इसे Agentjacking कहते हैं, जिसका खुलासा इस महीने Tenet Security ने किया, और यह बाज़ार के तीन सबसे लोकप्रिय कोडिंग एजेंटों — Claude Code, Cursor, और Codex — के विरुद्ध 85% मामलों में काम कर गया [1][2]।

हुआ क्या था

पहले, Sentry क्या है: सॉफ़्टवेयर की सबसे व्यापक रूप से इस्तेमाल होने वाली त्रुटि-निगरानी सेवाओं में से एक। जब आपका ऐप कोई त्रुटि देता है या क्रैश होता है, Sentry उसे कैद करके वह रिपोर्ट दर्ज करता है जिसे आपके डेवलपर छाँटते हैं — आप रोज़ जिन ऐप्स को छूते हैं, उनमें से बहुत बड़े हिस्से में यह अंदर बैठा होता है। उसे ये रिपोर्ट भेजने के लिए हर ऐप एक DSN जोड़ता है: एक क्लाइंट-साइड कुंजी, जो जानबूझकर आपकी वेबसाइट के सोर्स में रहती है, ताकि ब्राउज़र त्रुटियाँ वापस भेज सके। इसे कोई भी पढ़ सकता है। और इसे रखने वाला कोई भी आपके Sentry प्रोजेक्ट में एक त्रुटि इवेंट POST कर सकता है।

हमले की पूरी कुंजी यही है। Tenet ने एक नकली त्रुटि इवेंट गढ़ा, जिसका message फ़ील्ड बिल्कुल Sentry के अपने उपाय-निर्देशों जैसा दिखने के लिए सजाया गया था: साफ़-सुथरा मार्कडाउन, एक "अनुशंसित सुधार," चलाने के लिए एक कमांड। उन्होंने इसे सार्वजनिक DSN से जमा किया। फिर उन्होंने उस सबसे स्वाभाविक काम का इंतज़ार किया जो डेवलपर करता है — एजेंट से त्रुटि कतार ख़ाली करने को कहना।

एजेंट अपने MCP कनेक्टर के ज़रिए Sentry से पूछताछ करता है। कनेक्टर त्रुटि को विश्वसनीय सिस्टम आउटपुट के रूप में लौटाता है। एजेंट असली Sentry रिपोर्ट और जालसाज़ी में फ़र्क नहीं बता सकता; दोनों बाइट-दर-बाइट एक ही आकार के हैं। इसलिए वह बताए अनुसार करता है और "सुधार" चला देता है — आमतौर पर हमलावर के किसी पैकेज का एक npx कॉल। वहाँ से उसके पास वह सब है जो डेवलपर के पास है: एनवायरनमेंट वेरिएबल, Git क्रेडेंशियल, निजी रिपॉज़िटरी URL, ~/.aws/ में पड़ी क्लाउड कुंजियाँ।

Tenet ने 2,388 संगठन ऐसे पाए जिनके DSN इंजेक्शन-योग्य थे — स्वतंत्र डेवलपर से लेकर Fortune 100 कंपनियों तक। अपने नियंत्रित परीक्षणों में, एजेंटों ने वास्तविक कंपनियों में वाकई इंजेक्ट किए गए निर्देश चलाए — जिनमें, Tenet के अनुसार, एक 250 अरब डॉलर की Fortune 100 टेक कंपनी भी शामिल है, जिसके AI एजेंट ने नकली बग रिपोर्ट पढ़ी और Tenet का कोड उसकी दो कॉर्पोरेट मशीनों पर चला दिया [1][3]। 3 जून को Sentry को बताने पर, कंपनी ने उसी दिन इसे स्वीकार किया और जड़ से सुधारने से इनकार कर दिया, समस्या को "तकनीकी रूप से बचाव-योग्य नहीं" बताते हुए। उसने एक कंटेंट फ़िल्टर जारी किया जो एक ख़ास पेलोड स्ट्रिंग को रोकता है [4]।

यह Sentry की लापरवाही नहीं है

अब असुविधाजनक हिस्सा: उस पूरी श्रृंखला में कहीं कोई बग नहीं था। DSN का सार्वजनिक होना माना ही जाता है। MCP सर्वर का आपका त्रुटि डेटा लौटाना माना ही जाता है। एजेंट का उन निदानों पर काम करना माना ही जाता है जिन्हें आपने ठीक करने को कहा था। हर चरण अधिकृत था, और इसीलिए किसी फ़ायरवॉल, किसी EDR, किसी सिस्टम प्रॉम्प्ट ने इसे नहीं पकड़ा।

ख़ामी संरचनात्मक है, और यह अकेले Sentry की नहीं है। कोई भी उपकरण जो एजेंट को वह पाठ खिलाता है जिसे कोई बाहरी व्यक्ति प्रभावित कर सकता है — त्रुटि ट्रैकर, समस्या कतार, स्क्रैप किया गया वेब पेज, साझा दस्तावेज़ — इंजेक्शन का एक रास्ता है, और एजेंट इस सब को एक अविभाज्य निर्देश-धारा की तरह लेता है। प्रॉम्प्ट इंजेक्शन, एजेंट युग के दो साल बाद भी, अनसुलझा है: किसी मॉडल की तर्क-प्रक्रिया से शत्रुतापूर्ण पाठ को भरोसे के साथ बाहर रखना आप नहीं कर सकते। मान लीजिए कि नहीं कर पाएँगे।

तबाही की जड़ इंजेक्शन नहीं है

अब उस हिस्से पर ठहरकर विचार कीजिए। Agentjacking को पाँच-अलार्म वाली आग इसलिए नहीं कहा जाता कि एजेंट धोखा खा गया। कारण है वह जिस तक धोखा खाया हुआ एजेंट पहुँच सकता था। वह डेवलपर के पूरे स्थायी पहुँच-अधिकारों के साथ चला: एनवायरनमेंट की हर कुंजी, डिस्क पर हर क्रेडेंशियल फ़ाइल, पूरी कीरिंग बस एक कमांड दूर।

वह विनाश-क्षेत्र कोई प्रकृति का नियम नहीं है। वह एक कॉन्फ़िगरेशन है। एजेंट को यह सब इसलिए स्थायी पहुँच में मिला था क्योंकि आज क्रेडेंशियल ऐसे ही संग्रहीत होते हैं — चारों ओर बिखरे, मशीन पर, वहाँ चलने वाली किसी भी चीज़ के लिए पठनीय। इसे हटाइए, और वही अगवा किया गया एजेंट दीवार से टकरा जाएगा।

इसी के लिए, जानबूझकर बनाया गया

Clavitor का कोई क्रेडेंशियल उस एनवायरनमेंट में नहीं रहता जहाँ एजेंट चलता है। पढ़ने के लिए कोई ~/.aws/credentials नहीं है, किसी एनवायरनमेंट वेरिएबल में बाहर भेजने लायक कोई API कुंजी नहीं है, क्योंकि गुप्त मान कभी वहाँ नहीं उतरता जहाँ कोड चलता है — एजेंट को क्रेडेंशियल के इस्तेमाल का परिणाम मिलता है, क्रेडेंशियल स्वयं नहीं। वह केवल उसी एक चीज़ तक पहुँच सकता है जिसके लिए उसका नाम दिया गया है, इसलिए वह भंडार की सूची बनाकर यह नहीं ढूँढ़ सकता कि और क्या-क्या पड़ा है। और अनुमति सीमित और रद्द-करने-योग्य होती है, ताकि जो सत्र हमलावर जैसा व्यवहार करने लगे, उसे बीच कार्रवाई ही काटा जा सके।

ईमानदार सीमा यह है: यह इंजेक्शन को नहीं रोकता, और यह अगवा किए गए एजेंट को कमांड चलाने से नहीं रोकता। प्रॉम्प्ट इंजेक्शन अनसुलझा है और हम यह दावा नहीं करते कि उसे हम सुलझाते हैं। जो बदलता है वह है लूट का फ़ायदा। हमलावर का कोड फिर भी चलता है — और उसे ऐसा एनवायरनमेंट मिलता है जिसमें चारों ओर चुराने लायक कुछ नहीं रखा। अगवा करना सफल होता है और डकैती नाकाम हो जाती है।

हमने वे नियम लिख रखे हैं जिनका एक क्रेडेंशियल प्रणाली को पालन करना ही चाहिए जब एजेंट स्वयं ही आपके विरुद्ध मोड़ा जा सकता हो — शुरुआत इससे कि गुप्त मान वहाँ कभी न रहे जहाँ कोड चले, और एजेंट केवल उतनी ही दूरी तक जाए जितना उसका नाम है। अपनी व्यवस्था को इन पर परखिए: clavitor.ai/rules।

सबक "Sentry को पैच करो" नहीं है

Sentry इसे ठीक नहीं कर सकता, और उसने यह कह भी दिया है। और अगला ज़हरीला उपकरण Sentry नहीं होगा। जब तक आपके एजेंट चारों ओर बिखरे, स्थायी क्रेडेंशियल उठाए चलते हैं, वह हर विश्वसनीय उपकरण जिसे वे पढ़ते हैं, भरी हुई बंदूक है — और प्रॉम्प्ट इंजेक्शन वह ट्रिगर है जिसे आप लॉक नहीं कर सकते।

आप शत्रुतापूर्ण पाठ को बाहर नहीं रख पाएँगे। इसलिए क्रेडेंशियल उस एजेंट की पहुँच से बाहर रखना बंद कीजिए जो उसे पढ़ता है।

Clavitor (@clavitorai) AI एजेंटों के लिए बनाया गया क्रेडेंशियल वॉल्ट है — और उन्हीं के विरुद्ध भी। clavitor.ai

स्रोत

[1] Tenet Security — "Agentjacking: hijacking coding agents with fake Sentry errors" (85% सफलता; 2,388 संगठन; तंत्र): https://tenetsecurity.ai/blog/agentjacking-coding-agents-with-fake-sentry-errors/

[2] The Hacker News — "Agentjacking Attack Tricks AI Coding Agents Into Running Malicious Code": https://thehackernews.com/2026/06/agentjacking-attack-tricks-ai-coding.html

[3] The New Stack — "A public Sentry key is all it takes to hijack Claude Code, Cursor, and Codex": https://thenewstack.io/agentjacking-sentry-mcp-attack/

[4] Infosecurity Magazine — "New 'Agentjacking' Attacks Could Hijack AI Coding Agents" (Sentry की प्रतिक्रिया): https://www.infosecurity-magazine.com/news/agentjacking-attacks-hijack-ai/