برمجية خبيثة في إضافة Claude Code: كيف تجد الباب الخلفي وتزيله

الإجابة المختصرة: في 29 أكتوبر 2026، قدّم متجر إضافات Cursor نسخًا معدّلة من إضافة Claude Code، وهي الإصدارات 2.1.312 و2.1.313، لأجهزة Mac (Apple Silicon) وWindows، وذلك لمدة نحو 11 ساعة. أضاف المهاجم مفتاح SSH يحمل الاسم svc-telemetry إلى ملف authorized_keys لديك، وأنشأ مهمة تبدأ من جديد بعد كل إعادة تشغيل. تحديث الإضافة لا يزيل أيًا من الأمرين. للتنظيف، تحقّق من مجلد الإضافة، وابحث عن المفاتيح غير المعروفة في ملفي المفاتيح، ثم أزل مهمة بدء التشغيل والسكربتات المخفية، وبعد ذلك غيّر بيانات الاعتماد الخاصة بك من جهاز آخر موثوق.

شاهد الفيديو (حوالي 10 دقائق):

كيف تحققت من ذلك. الحقائق في هذا الدليل مأخوذة من إشعار الأمان الرسمي الصادر عن Cursor (29 أكتوبر 2026، وتم تحديثه في 30 أكتوبر)، ومن تقارير الباحثين Phorion وOpenSourceMalware، وقد تحققت منها في 7 نوفمبر 2026. وعندما يختلف تقرير مبكر عن إشعار Cursor، أتبع إشعار Cursor. أنا لست تابعًا لشركة Cursor أو Anthropic. إذا كان هذا الجهاز جهاز عمل، فأخبر فريق الأمان لديك قبل أن تغيّر أي شيء.

ما الذي حدث، في 60 ثانية

  • المكان: متجر الإضافات الخاص بـ Cursor فقط. تقول Cursor إن سوق VS Code الرسمي وOpen VSX وحزمة Claude Code على npm لم تتأثر. ذكرت بعض التقارير الأولى أن Open VSX متأثر، ثم صُحّح ذلك لاحقًا.
  • الإصدارات: anthropic.claude-code بالإصدارين 2.1.312 و2.1.313، وقد بُنيا للمنصتين darwin-arm64 (Mac بمعالج Apple Silicon) وwin32-x64 (Windows).
  • التوقيت: 29 أكتوبر 2026، تقريبًا بين 09:27 و20:35 بتوقيت UTC.
  • العدد: تقول Cursor إن ما يصل إلى 5,000 مستخدم تلقّوا هذه الإصدارات.
  • من بناها: تقول Cursor إن هذه الإصدارات لم تطوّرها Anthropic.

أُضيف محمّل صغير (Loader) إلى أعلى كود الإضافة. كان يعمل لحظة تحميل Cursor للإضافة، لذلك لم تكن بحاجة إلى فتح أي محادثة. وكان يقوم بالتالي:

  1. يلحق مفتاح ed25519 يحمل الاسم svc-telemetry بالملف ~/.ssh/authorized_keys.
  2. يحاول تشغيل خدمة SSH على الجهاز.
  3. يحاول فتح نفق SSH عكسي (ssh -N -R) نحو خادم المهاجم.
  4. يُنشئ آلية استمرار تعيد المحاولة كل 60 ثانية تقريبًا، وتبقى بعد إعادة التشغيل.
  5. يرسل بيانات عن الجهاز: اسم المستخدم، واسم الحاسوب، ونظام التشغيل، وعنوان IP العام، وبريد Git الإلكتروني، ومجلد العمل، وأسماء متغيرات البيئة لديك.

الخبر الجيد: تشغيل SSH يحتاج صلاحيات المسؤول، وقد أدت أخطاء في البرمجية الخبيثة إلى فشل هذه الخطوة على معظم الأجهزة. تقول Cursor إنه على تلك الأجهزة لم يتمكن المهاجم من الدخول عبر النفق، وإن خادم المهاجم أصبح الآن خارج الخدمة.

الخبر السيئ: المفتاح ومهمة بدء التشغيل ورفع البيانات حدثت كلها. وإذا شُغّلت خدمة SSH لاحقًا، فسيعمل ذلك المفتاح من جديد. لذلك يجب أن تنظّف الجهاز في كل الأحوال.

الخطوة 1: تحقّق من إصدار إضافة Claude Code

في Cursor، افتح لوحة Extensions، وابحث عن Claude Code، واقرأ الإصدار أسفل الاسم. لكن هذا يُظهر ما هو مثبّت الآن فقط. إذا كانت الإضافة قد حُدّثت بالفعل، فقد يبقى المجلد القديم على القرص، لذلك تحقّق من المجلد أيضًا.

Mac (Terminal):

ls ~/.cursor/extensions | grep -i claude-code

Windows (PowerShell):

Get-ChildItem "$env:USERPROFILE\.cursor\extensions" | Where-Object Name -like "*claude-code*"

ابحث عن اسم مجلد يحتوي على 2.1.312 أو 2.1.313، مثل anthropic.claude-code-2.1.313-darwin-arm64. إذا لم ترَ سوى 2.1.314 أو إصدار أحدث، ولم يكن لديك الإصداران المذكوران من قبل، فمن المرجّح جدًا أنك بخير. وإذا رأيت أحدهما، أو لم تكن متأكدًا، فتابع. لم تكن إصدارات Linux ضمن القائمة المتأثرة، لكن الباحثين وجدوا في الكود إدخال cron من نوع @reboot، لذلك يستطيع مستخدمو Linux الذين شغّلوا Cursor في ذلك اليوم إجراء الفحوصات نفسها.

الخطوة 2: ابحث عن مفاتيح SSH غير المعروفة

ملف authorized_keys هو قائمة الضيوف لجهازك. أي مفتاح موجود فيه يستطيع الدخول باسمك بدون كلمة مرور.

Mac:

grep -n svc-telemetry ~/.ssh/authorized_keys

إذا طبع الأمر سطرًا، فمفتاح الباب الخلفي موجود. وهذا هو الفحص الرسمي المكوّن من سطر واحد الذي تنشره Cursor:

grep -qs svc-telemetry ~/.ssh/authorized_keys && echo "svc-telemetry key found" || echo "No key found; machine not impacted"

Windows (PowerShell)، مع فحص ملفي المفاتيح معًا:

$files = "$HOME\.ssh\authorized_keys", "C:\ProgramData\ssh\administrators_authorized_keys" | Where-Object { Test-Path $_ }
if ($files -and (Select-String svc-telemetry $files)) { "svc-telemetry key found" } else { "No key found; machine not impacted" }

لا تكتفِ بالبحث عن هذه الكلمة فقط. قد يغيّر المهاجم الذكي الاسم في المرة القادمة. اعرض كل مفتاح مع بصمته:

ssh-keygen -lf ~/.ssh/authorized_keys

ستحصل على سطر واحد لكل مفتاح، مثل:

256 SHA256:Xp3...  abd@mouhimen-mbp (ED25519)
256 SHA256:Lk9...  deploy@mouhimen.dev (ED25519)
256 SHA256:0Z6R+DF64Do2nwQic8a7kkfDLNNk4IiK+2U2Rci4htk svc-telemetry (ED25519)

اطرح سؤالًا واحدًا على كل سطر: هل أعرف من أين جاء هذا المفتاح؟ جهازي المحمول، نعم. مفتاح النشر الخاص بي، نعم. أي مفتاح لا تستطيع تفسيره، فعامله على أنه عدائي. بصمة المفتاح الضار في هذا الهجوم هي SHA256:0Z6R+DF64Do2nwQic8a7kkfDLNNk4IiK+2U2Rci4htk.

ثم تحقّق مما إذا كان SSH مفعّلًا:

# Mac
sudo systemsetup -getremotelogin
# Windows
Get-Service sshd

إذا ظهرت الحالة On أو Running ولم تفعّلها بنفسك، فتعامل مع الأمر بجدية. هذه هي الحالة الوحيدة التي قد يسمح فيها المفتاح لشخص ما بالدخول فعلًا.

الخطوة 3: أزل الباب الخلفي وأماكن إخفائه

أزل المفتاح

انسخ الملف احتياطيًا أولًا، ثم احذف السطر الضار فقط واحفظ. واترك مفاتيحك الحقيقية كما هي.

cp ~/.ssh/authorized_keys ~/.ssh/authorized_keys.bak
nano ~/.ssh/authorized_keys   # delete the svc-telemetry line, save

على Windows، عدّل الملفين معًا إذا كان المفتاح موجودًا في كليهما.

Mac: وكيل الإطلاق والسكربتات المخفية

آلية الاستمرار على Mac هي وكيل إطلاق (Launch Agent) في مجلد Library الخاص بالمستخدم، وقد تنكّر باسم يشبه أسماء أبل، إلى جانب سكربتين مخفيين:

ls ~/Library/LaunchAgents
launchctl bootout gui/$(id -u) ~/Library/LaunchAgents/com.apple.sysmond.plist
rm ~/Library/LaunchAgents/com.apple.sysmond.plist ~/.config/.smt ~/.config/.smtk

لاحظ الباحثون أيضًا ملفات مؤقتة باسم $TMPDIR/.stk_*، فاحذفها إن وُجدت.

Windows: المهمة المجدولة والبدائل

انظر إلى ما تشغّله المهمة قبل أن تزيلها:

Get-ScheduledTask -TaskName SysMon | Select-Object -ExpandProperty Actions
Unregister-ScheduledTask -TaskName SysMon -Confirm:$false

إذا تعذّر إنشاء المهمة، يلجأ البرنامج الخبيث إلى ملف في مجلد Startup. احذف هذه الملفات أيضًا إن وُجدت:

  • %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\sysmon.cmd
  • %USERPROFILE%\.config\smt.cmd
  • %USERPROFILE%\.config\smtk

أوقف أي نفق يعمل

# Mac
ps aux | grep -E "ssh -N -R|autossh"
# Windows
Get-CimInstance Win32_Process -Filter "Name='ssh.exe'" | Select-Object ProcessId, CommandLine

إذا كنت لا تستخدم SSH على هذا الجهاز أبدًا، فأعد إيقاف خدمة SSH.

أزل الإضافة وأعد تثبيتها

احذف مجلد الإضافة الضار، وأعد تشغيل Cursor، ثم ثبّت إصدار Claude Code الحالي.

أسهل طريقة هي سكربت التنظيف الذي تنشره Cursor بنفسها، والمرتبط من الإشعار: remediate-macos.sh (شغّله بحساب المستخدم العادي، وليس باستخدام sudo)، وremediate-windows.ps1 (شغّله في PowerShell كمسؤول). سيتوقف السكربت مع رسالة خطأ إذا بقي شيء دون حذف.

الخطوة 4: غيّر بيانات الاعتماد الخاصة بك

حتى في الحالات التي فشل فيها النفق، شغّلت البرمجية الخبيثة شيفرة باسمك، وتقول Cursor إنه يجب تغيير أي بيانات اعتماد يمكن لذلك الجهاز الوصول إليها. خطط كأن أي شيء موجود على القرص قد قُرئ:

  • رموز الوصول الشخصية في GitHub ومفاتيح SSH (~/.ssh/id_ed25519)
  • بيانات أدوات سطر الأوامر السحابية (مجلدات الإعدادات الخاصة بـ AWS وGoogle Cloud وAzure)
  • مفاتيح API وكلمات مرور قواعد البيانات الموجودة في ملفات .env، مثل APP_KEY وDB_PASSWORD في Laravel
  • رموز npm وComposer وغيرها من سجلات الحزم

افعل ذلك من جهاز موثوق، وليس من الجهاز الذي تنظفه. وفي GitHub، تحقّق أيضًا من Settings > SSH and GPG keys ومن Sessions لمعرفة أي شيء جديد.

من خبرتي في مشاريع Laravel وNext.js، الملف الذي ينساه الناس هو .env. لا يُرفع هذا الملف إلى Git أبدًا، لذلك يبدو آمنًا. لكن الباب الخلفي لا يهتم بـ Git، فهو يقرأ القرص.

3 أخطاء تتركك عرضة للخطر

1. “حدّثت الإضافة، إذن أنا نظيف.” التحديث يستبدل مجلد الإضافة فقط. أما المفتاح ووكيل الإطلاق والمهمة المجدولة والسكربتات المخفية فكلها تعيش خارج هذا المجلد، وستبقى حتى تزيلها بنفسك.

2. حذف الشيء الخطأ. على Windows توجد أداة حقيقية من Microsoft اسمها Sysmon (من Sysinternals) وتعمل كـخدمة. أما الملف الضار فهو مهمة مجدولة باسم SysMon. تحقّق مما تشغّله المهمة قبل إزالة أي شيء. وعلى Mac، توجد وكلاء أبل الحقيقيون في /System/Library و/Library، وليس في ~/Library. أما الاسم الذي يبدأ بـ com.apple داخل مجلد المستخدم فهو تنكّر.

3. فحص ملف مفاتيح واحد فقط على Windows. إذا كان حساب Windows الخاص بك مسؤولًا، فإن OpenSSH يتجاهل الملف %USERPROFILE%\.ssh\authorized_keys، ويقرأ بدلًا منه الملف C:\ProgramData\ssh\administrators_authorized_keys. قد تنظّف ملفك الخاص ولا تجد شيئًا، ويبقى المفتاح في الملف الآخر. لهذا يبحث فحص Cursor في الملفين معًا.

الإعداد الذي يمنع تكرار هذا لاحقًا

في إعدادات Cursor، ابحث عن extensions auto update وأوقفه، أو اجعله يُظهر إشعارًا فقط. ثم حدّث الإضافات المهمة بنفسك بعد يوم أو يومين من الإصدار، بعد أن تتاح لك فرصة لمتابعة الأخبار. هذا التأخير البسيط كان سيبعدك عن نافذة الساعات الـ11 كلها.

قائمة التحقق

  • فحصت ~/.cursor/extensions بحثًا عن 2.1.312 / 2.1.313
  • بحثت عن svc-telemetry (في ملفي المفاتيح على Windows)
  • عرضت كل مفتاح باستخدام ssh-keygen -lf وأزلت المفاتيح غير المعروفة
  • أزلت وكيل الإطلاق (Mac) أو مهمة SysMon وملف Startup (Windows)، مع السكربتات المخفية
  • أوقفت أي نفق ssh -N -R يعمل، وأوقفت SSH إن لم تكن تستخدمه
  • أعدت تثبيت الإضافة الحالية (أو شغّلت سكربت التنظيف الخاص بـ Cursor)
  • غيّرت رموز الوصول والمفاتيح وأسرار ملفات .env من جهاز موثوق
  • أوقفت التحديث التلقائي للإضافات

الأسئلة الشائعة

هل تأثرت إضافة Claude Code الرسمية الموجودة في سوق VS Code؟
لا. تقول Cursor إن متجرها وحده قدّم النسخ المعدّلة. سوق VS Code وOpen VSX وحزمة npm لم تتأثر.

هل نشرت Anthropic الإصدارات الضارة؟
تقول Cursor إن Anthropic لم تطوّر هذه الإصدارات. وقد قُدّمت عبر متجر Cursor ضمن صفحة Claude Code.

أنا الآن على الإصدار 2.1.314. هل أنا بأمان؟
فقط إذا لم يكن لديك الإصداران 2.1.312 أو 2.1.313 من قبل. إذا كانا موجودين لديك، فالمفتاح ومهمة بدء التشغيل ما زالا موجودين بعد التحديث. نفّذ الفحوصات الواردة أعلاه.

فشلت خطوة SSH على جهازي. هل أحتاج إلى تغيير بيانات الاعتماد؟
نعم. لقد شغّل المحمّل الشيفرة باسم مستخدمك، وأرسل بيانات عن الجهاز، لذلك توصي Cursor بتغيير بيانات الاعتماد التي يستطيع الجهاز الوصول إليها.

أنا أستخدم Linux. هل يجب أن أقلق؟
الإصدارات المتأثرة كانت لأجهزة Mac وWindows. إذا شغّلت Cursor على Linux في ذلك اليوم، فالفحوصات نفسها تستغرق دقيقتين، لذلك نفّذها على أي حال.

ماذا لو وجدت المفتاح، لكن SSH كان متوقفًا؟
تقول Cursor إن المهاجم لم يستطع الدخول على الأجهزة التي بقيت فيها خدمة SSH متوقفة. أزل كل شيء على أي حال، لأن المفتاح سيعمل في اليوم الذي تُشغَّل فيه خدمة SSH.

واصل التعلّم

المصادر

  • Cursor، “Claude Code extension security notice”، 29 أكتوبر 2026 (تم تحديثه في 30 أكتوبر): https://cursor.com/blog/claude-code-extension-security-notice
  • Phorion، تحليل تقني لإضافة Claude Code المعدّلة
  • OpenSourceMalware، تقرير وتصحيح حول المتاجر المتأثرة
  • Microsoft Learn، إدارة مفاتيح OpenSSH على Windows (administrators_authorized_keys)

هذا المقال ترجمة عربية للمقال الأصلي باللغة الإنجليزية للكاتب عبد المهيمن شموط على mouhimen.dev.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *


الإتصال بنا

عملاء المركز التقني الكرام نتشرف بتواصلكم معنا حيث يمكن طلب خدمة او استفسار أو طلب دعم ... نفخر بثقتكم.

البريد الإلكتروني:
info@tec-c.net

إدارة و برمجة و تطوير :

عبد المهيمن محمد هشام شموط