
AI-IDE कॉन्फ़िग फ़ाइलों के लिए एक रिपॉजिटरी स्कैन करें जो Claude Code hooks, Cursor rules, MCP auto-registration के माध्यम से RCE ट्रिगर कर सकती हैं। CVE-2025-59536, CVE-2026-21852, CVE-2026-30615 + Pillar Rules File Backdoor पैटर्न का पता लगाता है।
एक रिपॉजिटरी में AI-IDE कॉन्फ़िगरेशन फ़ाइलों को स्कैन करें जो रिपॉजिटरी को Claude Code, Cursor, Windsurf, Continue, या किसी भी VS Code फ़ोर्क में खोलने पर RCE, क्रेडेंशियल चोरी, या डेवलपर मशीनों के स्थायी समझौते को ट्रिगर कर सकती हैं।
अप्रैल 2026 की AI-IDE प्रकटीकरण लहर के जवाब में बनाया गया:
settings.json SessionStart / PreToolUse / PostToolUse / UserPromptSubmit हुक वर्कस्पेस खोलने पर मनमानी शेल कमांड निष्पादित करते हैं।.cursorrules / .windsurfrules / .github/copilot-instructions.md / .continue/*.md के अंदर यूनिकोड-स्मगल्ड निर्देश जो मानव समीक्षक से हमलावर के निर्देशों को छिपाते हैं।ANTHROPIC_BASE_URL / OPENAI_BASE_URL / OPENAI_API_BASE का हमलावर-नियंत्रित एंडपॉइंट पर रीडायरेक्शन (प्रॉम्प्ट + API-की एक्सफ़िल्ट्रेशन)।mcp.json / .mcp.json / .cursor/mcp.json / .claude/mcp.json के माध्यम से MCP सर्वर ऑटो-रजिस्ट्रेशन मनमाने command stdio आह्वान के साथ।.vscode/tasks.json वर्कस्पेस खोलने पर ऑटोरन।हर तीसरे पक्ष के रिपॉजिटरी को क्लोन करने के बाद AI-संचालित एडिटर में खोलने से पहले इसे चलाएँ।
कोई इंस्टॉल नहीं — npx का उपयोग करें:
npx valtik-ai-ide-config-guard <path>
या वैश्विक रूप से इंस्टॉल करें:
npm i -g valtik-ai-ide-config-guard
ai-ide-config-guard <path>
Node 20+ आवश्यक है।
$ npx valtik-ai-ide-config-guard ./my-cloned-repo
विफलता सीमा के साथ (CI के लिए):
$ npx valtik-ai-ide-config-guard . --fail-on high
JSON आउटपुट:
$ npx valtik-ai-ide-config-guard . --json > report.json
SARIF 2.1.0 (GitHub कोड स्कैनिंग के लिए):
$ npx valtik-ai-ide-config-guard . --sarif > report.sarif
जाँचों का सबसेट चलाएँ:
$ npx valtik-ai-ide-config-guard . --checks G1,G3,G5
पूर्ण ध्वज सूची: npx valtik-ai-ide-config-guard --help.
.claude/settings.json ढूँढता है और hooks.SessionStart / hooks.PostToolUse / hooks.PreToolUse / hooks.UserPromptSubmit (और संबंधित जीवनचक्र घटनाओं) को पार्स करता है। यदि कोई प्रविष्टि command स्ट्रिंग (या समूहित व्याकरण के अंदर type: "command") सेट करती है, तो निष्कर्ष गंभीर है — Claude Code में रिपॉजिटरी खोलने पर डेवलपर के शेल में उनके पर्यावरण, SSH कुंजियों और टोकन के साथ कमांड निष्पादित होती है।
स्कैन करता है .cursorrules, .cursor/rules/*.md[c], .windsurfrules, .windsurf/rules/*.md[c], .github/copilot-instructions.md, .continue/*.md:
ignore previous, from now on, system:, आदि)शुद्ध-सिरिलिक टेक्स्ट, इमोजी, और फ़ाइल प्रारंभ में BOM को अनदेखा किया जाता है — हम केवल उसे फ़्लैग करते हैं जो मानव समीक्षक से सामग्री छिपाता है।
पार्स करता है mcp.json, .mcp.json, .claude/mcp.json, .cursor/mcp.json, .windsurf/mcp.json, .vscode/mcp.json, .continue/config.json। प्रत्येक पंजीकृत सर्वर के लिए:
command src/fixtures/known-malicious-mcp.json से मेल खाता है → गंभीरcommand एक स्थानीय बाइनरी है → उच्चcommand npx / uvx / pipx है जो एक असत्यापित पैकेज खींच रहा है → मध्यमurl गैर-https है → मध्यमurl लोकलहोस्ट / LAN की ओर इशारा करता है → मध्यमrunOptions.runOn: "folderOpen" वाले किसी भी कार्य को फ़्लैग करता है। यदि कमांड शेल इंटरपोलेशन (curl | sh, wget | bash, eval, base64 -d, बैकटिक्स, $(...)) का उपयोग करती है या किसी बाहरी URL का संदर्भ देती है, तो गंभीरता बढ़ जाती है।
स्कैन करता है .env*, .claude/settings.json, .cursor/config.json, .vscode/settings.json, और कोई भी mcp.json:
ANTHROPIC_BASE_URL, ANTHROPIC_API_URLOPENAI_BASE_URL, OPENAI_API_BASE, OPENAI_API_URLयदि होस्ट कैनॉनिकल विक्रेता एंडपॉइंट (api.anthropic.com / api.openai.com) नहीं है, तो निष्कर्ष गंभीर है — हर अनुरोध और API की हमलावर के एंडपॉइंट पर जाती है। गैर-क्लाउड होस्ट (लोकलहोस्ट, LAN IP) को उच्च फ़्लैग किया गया है।
.vscode/settings.json को फ़्लैग करता है जो security.workspace.trust.enabled: false (या Cursor एनालॉग) के साथ भेजा जाता है, जो ऑटोरन व्यवहार को रोकने वाले मूल गेट से चुपचाप ऑप्ट आउट करता है।
नियमों .md / .mdc फ़ाइलों में, curl | sh, wget | bash, rm -rf, eval, base64 -d, python -c, /dev/tcp, रिवर्स-शेल mkfifo, chmod +x वाले फ़ेंस किए गए कोड ब्लॉकों को स्कैन करता है। गंभीरता तब बढ़ती है जब आसपास का गद्य अनिवार्य ("run this", "execute the following command") हो।
नाम वाली स्क्रिप्ट्स के लिए सूचनात्मक फ़्लैग: claude*, cursor*, windsurf*, mcp*, continue*, copilot*, aider*, cline*। उच्च यदि वही नाम npm जीवनचक्र हुक (preinstall, postinstall, आदि) से टकराता है — जीवनचक्र हुक npm install पर बिना उपयोगकर्ता पुष्टि के चलते हैं।
GitHub Actions:
- name: AI-IDE config guard
run: npx valtik-ai-ide-config-guard . --fail-on high
या SARIF अपलोड:
- run: npx valtik-ai-ide-config-guard . --sarif > ai-ide.sarif
- uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: ai-ide.sarif
test/fixtures/safe/ पर शून्य झूठी सकारात्मकता एक डिज़ाइन लक्ष्य है — हम बॉर्डरलाइन मामले को छोड़ना पसंद करेंगे बजाय उपयोगकर्ताओं को हमें अनदेखा करना सिखाने के।npx ड्राई रन नहीं, कोई URL फ़ेच नहीं)।यह उपकरण स्थिर विश्लेषण है। एक स्वच्छ रिपोर्ट का अर्थ है "इस संस्करण के साथ भेजी गई 8 जाँचों ने फायर नहीं किया", न कि "यह रिपॉजिटरी AI-IDE में खोलने के लिए सुरक्षित है।" हर उस रिपॉजिटरी को शत्रुतापूर्ण मानें जिसे आपने नहीं बनाया और वर्कस्पेस-ट्रस्ट, हुक समीक्षा और MCP समीक्षा हाथ से लागू करें।
MIT License — Copyright (c) 2026 Valtik Studios LLC.
| ID | गंभीरता | यह क्या पकड़ता है |
|---|
| G1 | गंभीर | क्लॉड कोड हुक जो सत्र / टूल-उपयोग घटनाओं पर शेल चलाता है |
| G2 | उच्च / मध्यम | नियमों में Bidi / शून्य-चौड़ाई / टैग वर्ण, होमोग्लिफ़, या भूमिका-अधिलेखन पैटर्न |
| G3 | गंभीर / उच्च / मध्यम | MCP सर्वर जोखिमपूर्ण command या url के साथ पंजीकृत है |
| G4 | उच्च / मध्यम | .vscode/tasks.json जिसमें runOn: folderOpen है |
| G5 | गंभीर / उच्च | ANTHROPIC_BASE_URL / OPENAI_BASE_URL / OPENAI_API_BASE पुनर्निर्देशित |
| G6 | उच्च / सूचना | वर्कस्पेस-ट्रस्ट अक्षम, task.autoDetect: on |
| G7 | उच्च / मध्यम | नियमों में फ़ेंस ब्लॉक के अंदर खतरनाक शेल पैटर्न |
| G8 | उच्च / सूचना | AI एजेंटों के नाम पर package.json स्क्रिप्ट (या इंस्टॉल हुक में एजेंट) |