AGENTS.md Downloads अटैक: Codex और Claude Code की सुरक्षा जाँच

एजेंट शुरू करने से पहले डाउनलोड किए गए निर्देशों की जाँच करें। Codex की यूज़र कॉन्फ़िगरेशन, Claude Code की सेटिंग्स का प्राथमिकता क्रम और function-color इंस्टॉल होने के सबूत देखें। असली घटना और प्रयोगों के नतीजों का अंतर समझें। प्रभावित क्रेडेंशियल रद्द करें और अपने गेटवे का रूट जाँचें। यूज़र सेटिंग्स को सुरक्षा की ऐसी सीमा न मानें जिसे प्रोजेक्ट बदल नहीं सकता।

विषय-सूची
AGENTS.md Downloads अटैक: Codex और Claude Code की सुरक्षा जाँच

Codex या Claude Code को ~/Downloads या ऐसे किसी फ़ोल्डर में शुरू न करें जहाँ बिना जाँची फ़ाइलें जमा होती हैं। AGENTS.md Downloads अटैक का असर जाँचने के लिए, दोनों टूल दोबारा खोलने से पहले निर्देश फ़ाइलें और एजेंट की कॉन्फ़िगरेशन देखें। अगर कोई अनधिकृत endpoint या दुर्भावनापूर्ण पैकेज इंस्टॉल होने का सबूत मिले, तो प्रभावित सेशन रोकें और संबंधित क्रेडेंशियल रद्द करें।

यह प्रक्रिया आपके कंप्यूटर पर चलने वाले Codex और Claude Code के लिए है। कॉन्फ़िगरेशन के विवरण 2026-10-28 को जाँचे गए थे। इससे आपको समीक्षा के लिए फ़ाइलों की सूची बनाने, कॉन्फ़िगरेशन जाँचने और घटना पर आगे कार्रवाई का निर्णय लेने में मदद मिलेगी।

Downloads अटैक के प्रयोगों से क्या पता चला

इस अटैक में अविश्वसनीय निर्देशों के ज़रिए एजेंट की अपनी कॉन्फ़िगरेशन बदली जाती है। Markdown अपने आप नहीं चलता; उसे पढ़ने वाला एजेंट अपने टूल इस्तेमाल करता है।

Forever Security की 22 अक्टूबर की रिपोर्ट में एक ग्राहक के ~/Downloads/AGENTS.md से शुरू हुआ इंस्टॉलेशन प्रयास दर्ज है। उस प्रयास को रोक दिया गया था। फ़ाइल उस कंप्यूटर पर कैसे पहुँची, यह अब भी अज्ञात है।

  • Codex में दोहराया गया अटैक: निर्देशों ने ~/.codex/config.toml में Model Context Protocol (MCP) टूल सर्वर दर्ज कराया। इसमें function-color इंस्टॉल करने के लिए launchctl और npm का इस्तेमाल हुआ। चाइल्ड प्रोसेस के रूप में चले codex exec ने --dangerously-bypass-approvals-and-sandbox इस्तेमाल किया।
  • Claude Code में दोहराया गया अटैक: CLAUDE.md ने .claude/settings.json में ANTHROPIC_BASE_URL बदलवाया। शोधकर्ताओं को एक OAuth टोकन मिला, जो लॉग-इन किए गए अकाउंट को प्रमाणित करता है। उन्होंने बदले में फ़र्जी Bash कॉल भेजीं। कभी-कभी सबएजेंट ने उसी सेशन में बदले हुए पते से कनेक्शन खोला। रिपोर्ट के अनुसार, सेटिंग्स में यह बदलाव लिखने के लिए इंसान की मंज़ूरी चाहिए थी।

रिपोर्ट में Codex के लिए सफलता 90% से अधिक और Claude की कॉन्फ़िगरेशन बदलने के लिए लगभग 50% बताई गई। Claude के उसी सेशन में कोड चलाने वाला प्रयोग लगभग पाँच में से एक प्रयास में सफल हुआ। अधिकतर प्रयोगों में असली पैकेज की जगह कैलकुलेटर चलाया गया। असली पैकेज एक बार अलग-थलग वर्चुअल मशीन में चला। ये शोधकर्ताओं के परीक्षणों के नतीजे हैं, आपके व्यक्तिगत जोखिम का अनुमान नहीं।

ब्राउज़र का व्यवहार भी उसकी सेटिंग्स पर निर्भर करता है। Chrome के दस्तावेज़ डाउनलोड का स्थान बदलने, सेव करने का स्थान पूछने और डाउनलोड की सूचनाओं का वर्णन करते हैं। ब्राउज़र से फ़ाइल डाउनलोड होना और एजेंट का सफलतापूर्वक हैक होना अलग घटनाएँ हैं।

मौजूदा सुरक्षा नियंत्रणों को चालू रखें। Codex 0.165.0 स्पष्ट रूप से अविश्वसनीय चिह्नित प्रोजेक्ट के निर्देश लोड नहीं करता। OpenAI अपनी डिफ़ॉल्ट workspace-write नीति में संरक्षित .codex पाथ भी बताता है। पहले जाँचे गए फ़ोल्डर में भी नई, बिना जाँची सामग्री आ सकती है।

लगभग पाँच मिनट की शुरुआती जाँच करें

एजेंट बंद रखकर सामान्य टर्मिनल और टेक्स्ट एडिटर से फ़ाइलें जाँचें। किसी परिचित वर्कस्पेस की शुरुआती जाँच में लगभग पाँच मिनट लगने का अनुमान है। मिली गड़बड़ी की पड़ताल और कंप्यूटर ठीक करने में अधिक समय लगेगा।

1. एजेंट खोलने से पहले निर्देश फ़ाइलें खोजें

सबसे पहले वास्तविक वर्किंग डायरेक्टरी और डाउनलोड का स्थान देखें। macOS या Linux पर Bash में यह कमांड सिर्फ़ फ़ाइलों के नाम दिखाती है। इसके लिए ripgrep, यानी rg, इंस्टॉल होना चाहिए:

pwd -P
rg --files --hidden --no-ignore \
  -g 'AGENTS.md' -g 'AGENTS.override.md' \
  -g 'CLAUDE.md' -g 'CLAUDE.local.md' \
  -g '**/.claude/settings*.json' \
  -g '**/.codex/config.toml' -g '.mcp.json' \
  -g '!**/.git/**' -g '!**/node_modules/**' \
  "$HOME/Downloads"

अगर ब्राउज़र कहीं और डाउनलोड करता है, तो अंतिम पाथ बदलें। डाउनलोड या क्लोन किए गए प्रोजेक्ट की डायरेक्टरी के लिए भी खोज दोहराएँ। rg न हो, तो फ़ाइल मैनेजर में छिपी फ़ाइलें दिखाकर इन नामों को खोजें।

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

मिली फ़ाइलें साधारण टेक्स्ट के रूप में खोलें। एजेंट की सेटिंग्स दोबारा लिखने, प्रोवाइडर बदलने, अनपेक्षित टूल इंस्टॉल करने या मंज़ूरी की शर्त हटाने वाले निर्देश खोजें। इम्पोर्ट या लिंक की गई निर्देश फ़ाइलें अलग से जाँचें।

अपने Codex कॉन्फ़िगरेशन फ़ोल्डर की ग्लोबल निर्देश फ़ाइलें और ~/.claude/CLAUDE.md भी देखें। Codex प्रोजेक्ट के निर्देश खोजता है, पहचाने गए प्रोजेक्ट रूट से वर्किंग डायरेक्टरी तक। प्रोजेक्ट रूट न मिलने पर वह केवल मौजूदा डायरेक्टरी देखता है। AGENTS.override.md और कॉन्फ़िगर किए गए वैकल्पिक फ़ाइल नाम भी शामिल करें।

Claude Code पैरेंट डायरेक्टरी की निर्देश फ़ाइलें भी लोड करता है। इसलिए Downloads के किसी सबफ़ोल्डर में जाने से इन निर्देशों का स्रोत हटने की गारंटी नहीं मिलती। जाँचा हुआ वर्कस्पेस डाउनलोड डायरेक्टरी और उसके सबफ़ोल्डर से बाहर रखें।

2. दूसरे प्रोजेक्ट पर असर डालने वाली Codex कॉन्फ़िगरेशन जाँचें

Codex शुरू करने से पहले ~/.codex/config.toml खोलें। यह यूज़र स्तर की कॉन्फ़िगरेशन है, इसलिए बदलाव उस यूज़र के दूसरे प्रोजेक्ट पर भी असर डाल सकता है। अगर आपने CODEX_HOME सेट किया है, तो उसके अंदर का config.toml जाँचें।

लॉन्चर से चुनी गई प्रोफ़ाइल फ़ाइल और लागू प्रोजेक्ट की .codex/config.toml फ़ाइलें भी देखें। OpenAI की कॉन्फ़िगरेशन गाइड बताती है कि कौन-सी परतें लोड होती हैं। उसकी एडवांस्ड गाइड कॉन्फ़िगरेशन डायरेक्टरी और प्रोफ़ाइल समझाती है।

सेटिंगक्या जाँचें
[mcp_servers.<name>]सर्वर को पहचानें और उसका पूरा command, args, cwd, env या रिमोट url देखें।
chatgpt_base_urlपुष्टि करें कि ChatGPT सेवा के पते का कोई भी बदलाव जानबूझकर किया गया था।
openai_base_url, model_provider और model_providers.<id>.base_urlAPI रूट उस प्रोवाइडर से मिलाएँ जिसे आपने मंज़ूरी दी थी।
projects.<path>.trust_levelभरोसे के बारे में सेव किए गए निर्णय जाँचें, खासकर Downloads जैसे बड़े फ़ोल्डर के लिए।

MCP एजेंट को टूल से जोड़ता है। स्थानीय MCP सर्वर की कॉन्फ़िगरेशन कोई प्रोसेस शुरू कर सकती है। उसके नाम के साथ आर्ग्युमेंट और कनेक्शन का गंतव्य भी जाँचें।

अपरिचित सर्वर की पड़ताल ज़रूरी है। सामान्य-सा नाम या केवल npm, npx अथवा launchctl की मौजूदगी अपने आप में मैलवेयर का सबूत नहीं है।

2026-10-28 को उपलब्ध Codex कॉन्फ़िगरेशन रेफ़रेंस के अनुसार, प्रोजेक्ट की स्थानीय सेटिंग्स chatgpt_base_url या प्रोवाइडर रूटिंग की कुंजियाँ नहीं बदल सकतीं। यह प्रतिबंध यूज़र कॉन्फ़िगरेशन में हुए अनधिकृत बदलाव को वापस नहीं करता।

3. Claude Code की सेटिंग्स और उनका प्राथमिकता क्रम जाँचें

उन सभी सेटिंग स्रोतों को जाँचें जिनसे endpoint आ सकता है। प्रोजेक्ट रूट से शुरू हुए सेशन के लिए ये फ़ाइलें देखें:

फ़ाइलदायरा
~/.claude/settings.jsonसभी प्रोजेक्ट के लिए आपकी सेटिंग्स।
.claude/settings.jsonइस प्रोजेक्ट की साझा सेटिंग्स।
.claude/settings.local.jsonइस प्रोजेक्ट के लिए आपकी स्थानीय सेटिंग्स।

अगर CLAUDE_CONFIG_DIR इस्तेमाल करते हैं, तो यूज़र सेटिंग्स की फ़ाइल उस कॉन्फ़िगरेशन डायरेक्टरी में देखें। कंपनी के कंप्यूटर पर एडमिन से प्रबंधित सेटिंग्स के बारे में पूछें।

env.ANTHROPIC_BASE_URL, HTTP_PROXY और HTTPS_PROXY जाँचें। देखें कि प्रमाणीकरण के लिए कौन-से वेरिएबल सेट हैं, लेकिन उनके गुप्त मान चैट या लॉग में कॉपी न करें। अनपेक्षित hooks और अनुमति नियमों में बदलाव भी देखें।

Anthropic के अनुसार, ANTHROPIC_BASE_URL API endpoint बदलने वाला वेरिएबल है। मंज़ूर किए गए गेटवे के लिए इसका होना सामान्य है। अपरिचित होस्टनेम, अस्पष्ट बदलाव या डाउनलोड किए गए निर्देशों से मिले endpoint की पड़ताल करें।

Claude Code में सेटिंग्स के प्राथमिकता क्रम में प्रोजेक्ट की स्थानीय सेटिंग्स उसकी साझा सेटिंग्स से ऊपर होती हैं। दोनों यूज़र सेटिंग्स से ऊपर होती हैं। अधिकतर सेशन में सेटिंग्स फ़ाइल का env मान शेल से मिले उसी वेरिएबल को भी बदल देता है। इसलिए यूज़र सेटिंग में endpoint रखना या शेल से एक्सपोर्ट करना उसे बदलाव से सुरक्षित नहीं करता।

अनपेक्षित MCP इंटीग्रेशन के लिए .mcp.json भी देखें। Anthropic की MCP सुरक्षा गाइड बताती है कि दूसरे दायरों की सेटिंग्स और प्लगइन इस फ़ाइल से बाहर भी सर्वर जोड़ सकते हैं।

4. पैकेज इंस्टॉल होने के सबूत खोजें

अगर एजेंट संदिग्ध डायरेक्टरी में चला था, तो पैकेज मेटाडेटा और लॉग खोजें। उसी डायरेक्टरी से Bash में यह कमांड चलाएँ। यह केवल मेल खाने वाली फ़ाइलों के नाम दिखाती है:

rg -l --hidden --no-ignore -F 'function-color' \
  -g 'package.json' -g '*lock*' \
  -g 'npm-shrinkwrap.json' -g '*.log' \
  -g '!**/.git/**' \
  .

मिली फ़ाइलें अपने कंप्यूटर पर जाँचें। /tmp/ptools और संबंधित npm इंस्टॉलेशन लॉग मौजूद हों, तो उन्हें भी देखें। केवल प्रोजेक्ट में खोजने से दूसरी जगह हुए इंस्टॉलेशन छूट सकते हैं।

Checkmarx का पैकेज विश्लेषण function-color के 1.0.0 और 1.7.3 वर्शन को function-flag के दुर्भावनापूर्ण रैपर बताता है। जाँचा गया डाउनलोडर Windows को निशाना बनाता है। सिर्फ़ macOS की कॉन्फ़िगरेशन में पैकेज का नाम देखकर यह न मानें कि कोई खास दुर्भावनापूर्ण पेलोड चला था।

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

दोबारा लॉग-इन करने से पहले सबूत के अनुसार कार्रवाई करें

प्रभावित कॉन्फ़िगरेशन दोबारा इस्तेमाल करने से पहले किसी भरोसेमंद डिवाइस से लीक हुए क्रेडेंशियल रद्द करें। अपने सबूत से मेल खाने वाली स्थिति के अनुसार कार्रवाई करें:

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

Claude सब्सक्रिप्शन के प्रमाणीकरण के लिए Claude के अकाउंट सेशन नियंत्रण इस्तेमाल करें। Settings → Account में प्रभावित सेशन रद्द करें या पूरे अकाउंट से लॉगआउट का विकल्प चुनें। अगर Claude Code के टोकन Settings → Claude Code में दिखें, तो संबंधित अनुमति वहाँ हटाएँ। Anthropic के अनुसार, पूरे अकाउंट से लॉगआउट करने पर Claude Code और setup-token टोकन भी शामिल होते हैं।

API कुंजियों के लिए अलग कार्रवाई करनी होगी। Anthropic के लीक हुई API कुंजी संबंधी निर्देश प्रभावित कुंजी हटाकर नई बनाने को कहते हैं। अकाउंट से लॉगआउट करने पर API कुंजियाँ रद्द नहीं होतीं।

OpenAI के लिए उसके अकाउंट सुरक्षा संबंधी निर्देश अपनाएँ। अकाउंट के सेशन बंद करें, लीक हुई API कुंजियाँ हटाएँ, गतिविधि जाँचें और सहायता टीम से संपर्क करें। यह न मानें कि स्थानीय क्रेडेंशियल फ़ाइल हटाने से चोरी हुआ रिमोट सेशन अमान्य हो जाएगा।

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

वैध गेटवे की सेटिंग्स अपने नियंत्रण में रखें

गेटवे का पता खुद चुनें और जाँचें कि वह सेटिंग कहाँ से आ रही है। निजी इस्तेमाल के लिए मंज़ूर endpoint अपनी यूज़र कॉन्फ़िगरेशन या अपने नियंत्रण वाले शेल एनवायरनमेंट में रखें। केंद्रीय रूप से प्रबंधित टीमों को अपने स्वीकृत डिप्लॉयमेंट तरीके का पालन करना चाहिए।

प्रोजेक्ट से मिले endpoint को कॉन्फ़िगरेशन में ऐसा बदलाव मानें जिसकी समीक्षा ज़रूरी है। वह टीम की वैध सेटिंग हो सकती है। केवल खुद को आंतरिक गेटवे बताने से उसे मंज़ूरी नहीं मिलनी चाहिए।

उदाहरण के लिए, BetterToken के Claude Code निर्देश में https://bettertoken.ai, बिना /v1, और आपकी अपनी BetterToken API कुंजी इस्तेमाल होती है। यह API एक्सेस Claude सब्सक्रिप्शन से अलग है। गेटवे का अपना क्रेडेंशियल इस्तेमाल करें; सब्सक्रिप्शन का OAuth टोकन न दें।

अगर आप जानबूझकर Codex इंटीग्रेशन सेट कर रहे हैं, तो प्रोवाइडर ब्लॉक को Codex के कस्टम प्रोवाइडर सेटअप गाइड से मिलाएँ। chatgpt_base_url को सामान्य मॉडल API सेटिंग की तरह इस्तेमाल न करें।

कॉन्फ़िगरेशन की समीक्षा या रिकवरी पूरी होने के बाद Claude Code का नियंत्रित कनेक्टिविटी परीक्षण कर सकते हैं। इसमें प्रोजेक्ट की सेटिंग्स और कस्टम बदलाव बाहर रखे जा सकते हैं। यह कमांड पहले से जाँचे गए प्रोजेक्ट की डायरेक्टरी से चलाएँ:

claude --safe-mode --setting-sources user --permission-mode default

CLI रेफ़रेंस में ये फ़्लैग दर्ज हैं। सेफ़ मोड निर्देश फ़ाइलें, प्लगइन और MCP सर्वर जैसे कस्टम बदलाव छोड़ देता है। प्रमाणीकरण और अनुमति नियंत्रण काम करते रहते हैं। यूज़र कॉन्फ़िगरेशन और प्रबंधित नीति पर भरोसा होना अब भी ज़रूरी है। default अनुमति मोड का लेबल Manual है।

अगर क्लाइंट कोई फ़्लैग अस्वीकार करे, तो आगे बढ़ने से पहले claude --help और आधिकारिक अपडेट निर्देश देखें।

लोड हुए सेटिंग स्रोत जाँचने के लिए /status इस्तेमाल करें। फिर छोटा प्रॉम्प्ट भेजें, जैसे Reply with OK. Do not use tools. टर्मिनल में जवाब आना चाहिए। प्रोवाइडर के रिकॉर्ड उपलब्ध हों, तो अनुरोध का समय मिलाकर उस अनुरोध के रूट की पुष्टि करें। यह परीक्षण मॉडल के सामान्य उपयोग में गिना जाता है।

मॉडल का अपना नाम बताना endpoint की पुष्टि नहीं करता। रूट स्पष्ट न हो, तो Claude Code के सक्रिय प्रोवाइडर की जाँच करें। कॉन्फ़िगरेशन अनपेक्षित रूप से बदले, तो रुक जाएँ। यह कनेक्टिविटी परीक्षण कंप्यूटर के सुरक्षित होने की पुष्टि नहीं करता।

डाउनलोड को एजेंट के रोज़मर्रा के काम से अलग रखें

ब्राउज़र के डाउनलोड स्थान से बाहर किसी जाँची हुई प्रोजेक्ट डायरेक्टरी का इस्तेमाल करें। डाउनलोड किए गए CSV को जाँचकर सिर्फ़ ज़रूरी इनपुट उस वर्कस्पेस में कॉपी करें। पूरा बिना जाँचा फ़ोल्डर ले जाने से उसकी निर्देश फ़ाइलें भी साथ पहुँचती हैं।

Chrome में Settings → Downloads खोलें और Ask where to save each file before downloading चालू करें। इससे फ़ाइल सेव करने से पहले निर्णय लेने का एक मौका मिलता है। यह पहले से सेव फ़ाइलों की जाँच का विकल्प नहीं है।

सैंडबॉक्स की पाबंदियाँ और मंज़ूरी नियंत्रण चालू रखें। Codex के सुरक्षा दस्तावेज़ कमांड सैंडबॉक्सिंग को MCP कनेक्शन और क्लाइंट प्रमाणीकरण ट्रैफ़िक से अलग बताते हैं। केवल पढ़ने की अनुमति वाला कमांड सैंडबॉक्स बिना जाँची कॉन्फ़िगरेशन को शुरू करना सुरक्षित नहीं बनाता।

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

अपना LLM वर्कफ़्लो बेहतर बनाना चाहते हैं?

एक API से मॉडल जोड़ें, कुंजियाँ प्रबंधित करें और AI खर्च नियंत्रित करें।

मुफ़्त शुरू करें