
افحص مستودعًا بحثًا عن ملفات تكوين AI-IDE التي يمكن أن تؤدي إلى RCE عبر Claude Code hooks وCursor rules وMCP auto-registration. يكتشف CVE-2025-59536 وCVE-2026-21852 وCVE-2026-30615 وأنماط Pillar Rules File Backdoor.
امسح مستودعاً بحثاً عن ملفات تكوين مساعدي الترميز بالذكاء الاصطناعي (AI-IDE) التي قد تؤدي إلى تنفيذ أوامر عن بُعد (RCE)، أو سرقة بيانات الاعتماد، أو اختراق دائم لأجهزة المطورين عند فتح المستودع في Claude Code، أو Cursor، أو Windsurf، أو Continue، أو أي فرع من VS Code.
طوّر استجابةً لموجة الكشف عن ثغرات AI-IDE في أبريل 2026:
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 مع استدعاء command عشوائي عبر stdio..vscode/tasks.json تلقائياً عند فتح مساحة العمل.شغّله على كل مستودع طرف ثالث تستنسخه قبل فتحه في محرر مزود بالذكاء الاصطناعي.
لا حاجة للتثبيت — استخدم 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
مع حد الفشل (للتكامل المستمر):
$ 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 يشير إلى مضيف محلي / شبكة محلية → متوسطيُعلّم أي مهمة تحتوي على runOptions.runOn: "folderOpen". ترتفع الخطورة إذا استخدم الأمر استيفاء شل (curl | sh، wget | bash، eval، base64 -d، فاصلة عكسية ...، $(...)) أو أشار إلى رابط خارجي.
يفحص .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 يذهب إلى نقطة نهاية المهاجم. المضيفات غير السحابية (localhost، عناوين 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).هذه الأداة تحليل ثابت. التقرير النظيف يعني "الفحوصات الثمانية المرفقة في هذه النسخة لم تُشغّل"، لا يعني "هذا المستودع آمن للفتح في AI-IDE". تعامل مع كل مستودع لم تؤلفه أنت على أنه عدائي وطبق ثقة مساحة العمل ومراجعة الخطافات ومراجعة MCP يدوياً.
رخصة MIT — حقوق النشر (ج) 2026 Valtik Studios LLC.
| المعرف | مستوى الخطورة | ما يكتشفه |
|---|
| G1 | حرج | خطاف Claude Code ينفذ شل عند أحداث الجلسة / استخدام الأدوات |
| G2 | عالي / متوسط | أحرف ثنائية الاتجاه / عرض صفري / علامة، أو تجانس الحروف، أو أنماط تجاوز الدور في القواعد |
| 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 | عالي / معلوماتي | نصوص package.json مسماة على اسم وكلاء الذكاء الاصطناعي (أو وكلاء في خطافات التثبيت) |