رجوع
2026/10/29
ملفات AGENTS.md وCLAUDE.md الخبيثة: كيف يمكن لمجلد التنزيلات أن يختطف وكلاء البرمجة بالذكاء الاصطناعي
ملف تعليمات مزروع في مجلد التنزيلات حاول دفع وكيل برمجة بالذكاء الاصطناعي إلى تثبيت برمجية npm خبيثة. ما الذي حدث وكيف تحمي نفسك.
أبرز النقاط
- طلب ملف
AGENTS.mdمزروع في مجلد~/Downloadsلدى أحد المستخدمين من وكيل برمجة بالذكاء الاصطناعي تثبيت حزمة npm معروفة بأنها خبيثة. وأُوقفت المحاولة قبل تشغيل أي شيفرة. - في الاختبارات المعملية، اتبع OpenAI Codex ملف تعليمات خبيثًا في أكثر من 90% من المحاولات، واتبعه Claude Code في نحو نصف المحاولات.
- هذه ليست ثغرة يمكن إصلاحها بتحديث. فالوكلاء يثقون بملفات التعليمات الموجودة في المجلد الذي يبدؤون العمل فيه، والمتصفحات قادرة على كتابة الملفات في مجلد التنزيلات.
- وسائل الدفاع الأساسية بسيطة: لا تشغّل وكيلًا أبدًا في مجلد التنزيلات، واقرأ ملفات التعليمات التي لم تكتبها بنفسك، وافحص إعدادات الوكيل بحثًا عن نقاط اتصال لم تضبطها، وأبقِ طلبات الموافقة وبيئات العزل مفعّلة.
ما الذي حدث
في 22 أكتوبر 2026، نشرت شركة الأمن Forever Security مقالًا بعنوان “Markdown Is the New Executable” من تأليف جال فايتسمان وعومر سامت. يصف المقال حادثة حقيقية وقعت على جهاز أحد عملاء الشركة. كان وكيل برمجة بالذكاء الاصطناعي يعمل في مجلد ~/Downloads الخاص بالمستخدم، وكان في هذا المجلد ملف AGENTS.md يطلب منه تثبيت function-color، وهي حزمة npm خبيثة. وقد أوقفت Forever الوكيل قبل تثبيت الحزمة وقبل تشغيل أي شيفرة خبيثة.
لا أحد يعرف كيف وصل الملف إلى مجلد التنزيلات. تقول Forever إنها لم تتمكن من تحديد ذلك، وتكرر التغطية الإخبارية في BleepingComputer وThe Hacker News هذه النقطة. ثم أعدّت Forever عروضًا معملية لتوضيح كيف يمكن لصفحة ويب أن تزرع ملفًا كهذا وماذا سيفعل الوكيل به.
الحزمة نفسها ليست جديدة. إذ تربط Checkmarx وCloudSEK الحزمة function-color بحملة MALFEX على npm. والحزمة مجرد غلاف رقيق يجلب الحزمة function-flag، التي يقوم سكربت التثبيت الخاص بها بتنزيل حمولة إضافية من خادم بعيد وتشغيلها. تستهدف الحملة نظام Windows، وتفيد Checkmarx بأن مشغّلها نشط منذ أغسطس 2023. وعندما راجعنا سجل npm في 29 أكتوبر 2026، كانت الحزم function-color وfunction-flag وcdn-img-fetch قد استُبدلت جميعها بالحزمة البديلة 0.0.1-security التي يضعها npm.
لماذا يستطيع ملف Markdown توجيه الوكيل
تستند حجة Forever إلى سلوكين عاديين يصبحان خطيرين عند اجتماعهما.
- الوكلاء يحمّلون ملفات التعليمات تلقائيًا. تقرأ وكلاء البرمجة ملفات تعليمات المشروع عند بدء التشغيل وتتعامل معها على أنها توجيهات من المستخدم. يقرأ Codex الملف
AGENTS.mdبدءًا من جذر المشروع نزولًا إلى المجلد الحالي، وإذا لم يكن هناك جذر للمشروع فإنه يقرأ المجلد الحالي فقط. أما Claude Code فيحمّلCLAUDE.mdمن المجلد الذي يبدأ فيه ومن كل مجلد أعلى منه، ويقرأAGENTS.mdبدلًا منه عند عدم وجودCLAUDE.md. - الويب قادر على الكتابة في مجلد التنزيلات. تذكر BleepingComputer أن Chrome وEdge وFirefox تحفظ الملفات افتراضيًا في مجلد التنزيلات دون أن تسأل عن مكان حفظها. ويمكن للصفحة اختيار اسم الملف ومحتواه. وبما أن ملف Markdown ليس برنامجًا، فإن فحوص نظام التشغيل الخاصة بالملفات التنفيذية المنزّلة لا تعدّه خطيرًا.
يعني اجتماع هذين الأمرين أن صفحة ويب يمكنها إسقاط ملف سيقرأه الوكيل لاحقًا على أنه تعليمات. ولا حاجة إلى “خداع” الوكيل بالمعنى المعتاد، فهو يفعل ما صُمّم لفعله. وتشير Forever أيضًا إلى أن بعض الوكلاء يتصفحون الويب بأنفسهم، وفي هذه الحالة قد لا يرى أي شخص عملية التنزيل على الإطلاق.
ينطبق المنطق نفسه على ما هو أبعد من مجلد التنزيلات. فكل مجلد يمكن أن يصل إليه محتوى غير موثوق مرشّح لذلك: مستودع مستنسخ للتو، أو أرشيف مفكوك، أو مجلد مشترك. ومع Claude Code، فإن مشروعًا مفكوكًا في مجلد فرعي داخل مجلد التنزيلات يلتقط أيضًا ملف CLAUDE.md الموجود في مجلد التنزيلات نفسه، لأن ملفات المجلدات الأعلى تُحمَّل كذلك.
ما الذي أثبته البحث
اختبرت Forever وكيلين. استخدمت معظم التجارب حمولة بديلة غير ضارة (فتح الآلة الحاسبة). أما الحزمة الخبيثة الحقيقية فقد شُغّلت مرة واحدة داخل جهاز افتراضي معزول.
OpenAI Codex
أعاد الباحثون استخدام ملف AGENTS.md الحقيقي من جهاز العميل. طلب الملف من Codex إضافة مدخل لخادم MCP إلى إعداداته العامة على مستوى الجهاز، ~/.codex/config.toml. وكان هذا المدخل يشغّل عند بدء التشغيل أمرًا يثبّت حزمة npm. ولأن الإعدادات عامة، يستمر التغيير في كل جلسات Codex اللاحقة على الجهاز، لا في الجلسة التي قرأت الملف فقط. وتفيد Forever بأن الهجوم احتاج إلى عدة حيل التفافية: أسلوب مستند طويل ومملّ، وجلسة فرعية تُشغَّل بخيارات تتجاوز بيئة العزل، وطريقة تشغيل تتفادى مهلة بدء التشغيل في Codex. ومع ذلك، شغّل Codex الحمولة في أكثر من 90% من المحاولات.
Claude Code
بالنسبة إلى Claude Code، كتب الباحثون ملف CLAUDE.md خاصًا بهم، صيغ على هيئة ملاحظات إعداد لبوابة API داخلية. طلب الملف من Claude كتابة إعداد ANTHROPIC_BASE_URL في ملف المشروع .claude/settings.json، بحيث تُوجَّه حركة مرور API إلى خادم يتحكم فيه الباحثون. ووفقًا لـForever، يؤدي ذلك إلى تسريب رمز OAuth الخاص بالجلسة. كما يتيح لخادم المهاجم انتحال صفة النموذج وإرسال استدعاءات أدوات، بما فيها أوامر shell مع تعطيل بيئة العزل. وقد أثبتت Forever سرقة الرمز (إعادة استخدامه للتصرف بصفة الضحية) وتنفيذ الشيفرة عند التشغيل التالي. كما عرضت مسارًا يطلق الهجوم داخل الجلسة نفسها عن طريق تشغيل وكيل فرعي.
كان هذا أقل موثوقية. إذ يطلب Claude Code الموافقة قبل الكتابة في ملفات الإعدادات، وكثيرًا ما رفض التغيير المريب. وتفيد Forever بالنجاح في نحو نصف المحاولات، وفي نحو محاولة واحدة من كل خمس لمسار الوكيل الفرعي داخل الجلسة نفسها.
ما الذي لم يُثبَت
- لم تحدد Forever كيف وصل الملف الحقيقي إلى مجلد التنزيلات لدى العميل. ومسار التنزيل من الويب احتمال جرى إثباته، لا سبب مؤكد.
- لم يُختبر سوى Codex وClaude Code. وتحتج Forever بأن الوكلاء الآخرين الذين يحمّلون ملفات التعليمات معرّضون بالطريقة نفسها، لكنها لم تختبرهم.
- لا تذكر المقالات إصدارات محددة للأدوات، ولا تنقل أي تصريحات من الشركات المطوّرة. وموقف Forever هو أنه “لا يوجد هنا ما يمكن أن تصلحه OpenAI أو Anthropic”، فالوكلاء يعملون كما صُمّموا.
لماذا يهم هذا الأمر
من السهل إغفال ملفات التعليمات لأنها تبدو كوثائق. لكنها في الواقع تعمل عمل الإعدادات، ومن خلال وكيل يملك صلاحية الوصول إلى الطرفية يمكن أن تعمل عمل الشيفرة. وثلاث نقاط تجعل الخطر واقعيًا:
- كثيرًا ما تُشغَّل الوكلاء في مجلد التنزيلات. يستخدم الناس الوكلاء لترتيب الملفات أو للعمل على شيء نزّلوه للتو. وقد أخبرت Forever موقع BleepingComputer أن مئات من عملائها يشغّلون وكلاء البرمجة من مجلد التنزيلات، مع أكثر من 1300 جلسة Claude Code بدأت هناك.
- الأثر يدوم بعد انتهاء الجلسة. فالإعدادات العامة المعدّلة أو خادم MCP الجديد أو نقطة اتصال API المعاد توجيهها تظل فاعلة بعد حذف الملف الأصلي.
- بيانات الاعتماد هي الغنيمة. فرمز جلسة الوكيل المسروق بمثابة تسجيل دخول صالح، ويمكن للمهاجم استخدامه دون تشغيل أي شيفرة على الجهاز.
وسائل دفاع عملية
1. اختر المكان الذي تبدأ فيه الوكلاء
- لا تشغّل وكيل برمجة أبدًا في
~/Downloads، أو في أي مجلد تكتب فيه المتصفحات أو تطبيقات البريد أو الدردشة. انقل العمل أو استنسخه أولًا إلى مجلد عمل مخصص. - تجنّب أيضًا تشغيل الوكلاء في مجلدك الرئيسي، وشغّلها في مجلد المشروع المحدد. وتشير BleepingComputer إلى أن OpenAI وAnthropic توصيان بالشيء نفسه.
- فكّر في ضبط متصفحك ليسأل عن مكان حفظ كل ملف منزَّل. يضيف ذلك نقرة واحدة، لكنه يمنع التنزيلات الصامتة.
2. ابحث عن ملفات تعليمات لم تكتبها
ابحث في الأماكن التي تصل إليها الملفات غير الموثوقة، إضافة إلى مجلدك الرئيسي. على Linux وmacOS:
find ~/Downloads ~/Desktop ~ -maxdepth 3 \( -name AGENTS.md -o -name AGENTS.override.md -o -name CLAUDE.md -o -name CLAUDE.local.md \) -print 2>/dev/null | sort -u
على Windows، في PowerShell:
Get-ChildItem $HOME\Downloads, $HOME\Desktop -Recurse -Depth 3 -Force -ErrorAction SilentlyContinue -Include AGENTS.md, AGENTS.override.md, CLAUDE.md, CLAUDE.local.md | Select-Object FullName, LastWriteTime
اقرأ كل ملف تعثر عليه قبل أن يقترب منه أي وكيل. وكن شديد الارتياب من التعليمات التي تطلب تثبيت حزم أو إضافة خوادم أو تغيير نقاط اتصال API أو إيقاف طلبات الموافقة. وافحص أيضًا ملفات التعليمات الشخصية ~/.codex/AGENTS.md و~/.claude/CLAUDE.md، لأنها تنطبق على كل جلسة.
ملف تعليمات المشروع الشرعي يصف كيفية بناء المشروع واختباره، ولا يوجد ما يدعوه إلى تغيير الإعدادات العامة لوكيلك أو نقطة اتصال API الخاصة به أو إعدادات الأمان. تعامل مع أي ملف يطلب مثل هذه التغييرات على أنه عدائي.
3. افحص إعدادات الوكيل بحثًا عن تغييرات لم تُجرِها
اتباعًا لنصيحة Forever، ابحث عن كتل خوادم MCP غير متوقعة، أو قيمة chatgpt_base_url معدّلة، أو ANTHROPIC_BASE_URL أو أي نقطة اتصال API أخرى لم تضبطها:
grep -nE '^\[mcp_servers|base_url' ~/.codex/config.toml
grep -nE 'BASE_URL|mcpServers' ~/.claude/settings.json .claude/settings.json .claude/settings.local.json .mcp.json 2>/dev/null
يمكن للفرق التي تستخدم Claude Code فرض الإعدادات مركزيًا عبر الإعدادات المُدارة (managed settings). ويمكنها أيضًا استخدام خطافات ConfigChange لتدقيق تغييرات الإعدادات أو حظرها أثناء الجلسة.
4. أبقِ وسائل الحماية مفعّلة
- أبقِ طلبات الموافقة وبيئة العزل مفعّلة. وتجنّب الخيارات التي تتجاوزها، مثل
--dangerously-bypass-approvals-and-sandboxفي Codex أو--dangerously-skip-permissionsفي Claude Code، خارج بيئة مؤقتة يمكن التخلص منها. - اقرأ طلبات الموافقة الخاصة بملفات الإعدادات والتهيئة بعناية. ففي اختبار Claude Code، كانت خطوة الموافقة هي ما أوقف الهجوم في نحو نصف المحاولات.
- اقرأ نافذة الثقة بمساحة العمل في Claude Code قبل قبولها لمجلد جديد.
- تعامل مع المستودعات والتنزيلات غير الموثوقة داخل جهاز افتراضي أو حاوية تطوير، لا على محطة عملك الرئيسية.
- في npm، احظر حزم MALFEX المعروفة، وفكّر في استخدام
ignore-scriptsلعمليات التثبيت التي لم تراجعها.
5. إذا عثرت على ملف مزروع
- لا تشغّل وكيلًا في ذلك المجلد. احتفظ بنسخة من الملف لأغراض التحقيق، ثم أزله من المجلد.
- افحص ملفات إعدادات الوكيل المذكورة أعلاه، واحذف أي شيء لم تضفه بنفسك.
- افترض أن رمز جلسة الوكيل ربما تسرّب. سجّل الخروج ثم سجّل الدخول مجددًا، وغيّر أي مفاتيح API كان بإمكان الوكيل الوصول إليها.
- ابحث في ملفات القفل ومجلدات
node_modulesعنfunction-colorوfunction-flag. وإذا كانت أي منهما مثبّتة، فاعتبر الجهاز مخترقًا واتبع إجراءات الاستجابة للحوادث لديك.
الصورة الأشمل
عنوان مقال Forever هو “Markdown Is the New Executable”، وهي طريقة مفيدة للتفكير في أي ملف يقرؤه الوكيل على أنه تعليمات. فملفات التعليمات تحدد ما سيفعله الوكيل الذي يملك صلاحية الوصول إلى الطرفية في خطوته التالية، ولذلك تستحق العناية نفسها التي تحظى بها السكربتات: اعرف مصدرها، وراجع التغييرات عليها، وأبقِها بعيدًا عن المجلدات التي يستطيع أي شخص على الإنترنت الكتابة فيها. والحلول هنا عادات في معظمها لا تحديثات برمجية، وتكلفة تبنّيها قليلة.
المراجع
- Forever Security، “Markdown Is the New Executable” (22 أكتوبر 2026)، المصدر الأساسي
- BleepingComputer، “AI coding agents hijacked using AGENTS.md file in Downloads folder” (25 أكتوبر 2026)
- The Hacker News، “Malicious File in Downloads Folder Tries to Trick AI Coding Agent Into Installing Malware” (26 أكتوبر 2026)
- Checkmarx، حملة البرمجيات الخبيثة MALFEX على npm (5 أكتوبر 2026)
- CloudSEK، حملة MALFEX الخبيثة على سلسلة التوريد عبر سكربتات postinstall في npm
- OpenAI، توثيق Codex الخاص بملف AGENTS.md
- Anthropic، توثيق الذاكرة (CLAUDE.md) في Claude Code وتوثيق الأمان في Claude Code
Global
Japan
Korea
China
Taiwan
Vietnam
Thailand
Indonesia
Portugal
Spain
France
Germany
Russia