
اختراق GitHub عبر إضافة VS Code (مايو 2026): دليل الطوارئ الـ 60 دقيقة الذي يجب على كل مطوّر تنفيذه الليلة
في 20 مايو 2026، أكّد GitHub أن ما يقارب 3,800 مستودع من مستودعاته الداخلية قد سُرِّب عبر إضافة VS Code خبيثة مثبّتة على جهاز عمل أحد موظفيه. إن كنت تستخدم GitHub PAT أو توكن npm داخل VS Code خلال الـ 14 يومًا الماضية، فإن الـ 60 دقيقة القادمة بالغة الأهمية. هذا هو الدليل: ما الذي حدث فعليًا، هل أنت في دائرة التأثير، وما الذي يجب تدوير بياناته الحساسة أولًا.
النقاط الرئيسية
- ما الذي حدث: لم تُخترق بنية GitHub.com الإنتاجية — بل ثبّت أحد موظفيه إضافة VS Code مسمومة (من المرجح جدًا Nx Console v18.95.0) سرّبت رموز PAT وسحبت نحو 3,800 مستودع داخلي.
- بيانات العملاء: لم تتأثر. البيانات المخترَقة هي الكود المصدري الداخلي لـ GitHub، وليس كود العملاء أو حساباتهم.
- من هم في دائرة الخطر: كل مطوّر ثبّت إضافة VS Code في الفترة الممتدة تقريبًا بين 18 مايو الساعة 12:36 UTC و12:47 UTC (نافذة الـ 11 دقيقة)، أو أي مطوّر يستخدم رموز GitHub PAT طويلة الأمد من داخل VS Code.
- ما يجب فعله الآن: دوّر رموز GitHub PAT أولًا، ثم توكنات npm ثانيًا، وبعدها مفاتيح AWS والسحابة — الدليل الكامل في قسم "ما يجب على المطوّرين فعله" أدناه.
ملخص سريع: 6 إجراءات خلال الساعة القادمة
أسرع طريقة للحدّ من الأضرار الناجمة عن قصة اختراق GitHub عبر إضافة vscode هي تدوير بيانات الاعتماد التي يمكن للإضافة الخبيثة الوصول إليها، ومراجعة ما هو مثبّت على جهازك، والتحقق من سجل مراجعة منظمتك على GitHub للفترة الممتدة بين 18 و20 مايو UTC. ستة إجراءات مرتّبة حسب الأولوية.
- ألغِ كل رمز GitHub Personal Access Token تم إنشاؤه أو استخدامه في VS Code خلال الـ 30 يومًا الماضية.
- دوّر توكنات npm عبر
npm token revokeوأعد إصدارها مع 2FA والنشر الموثوق. - افحص جهازك بحثًا عن مؤشرات الاختراق الواردة في GHSA-c9j4-9m59-847w (مسارات الملفات، العمليات؛ الأوامر أدناه).
- راجع
code --list-extensions --show-versionsوأزل كل إضافة لا يمكنك تبرير وجودها. - ثبّت إصدارات الإضافات في
devcontainer.jsonوطبّق قائمة إضافات مسموح بها على مستوى المنظمة. - تحقق من سجل مراجعة منظمتك على GitHub بحثًا عن عمليات push غير مألوفة بين 18 و20 مايو UTC.
إن لم يكن لديك سوى وقت لإجراءين، ابدأ بـ #1 و#3. الباقي يمكن الانتظار.
هل اختُرق GitHub فعلًا؟ توضيح العنوان الإخباري
لا، لم تُخترق البنية التحتية الإنتاجية لـ GitHub.com في 20 مايو 2026. جهاز عمل موظف واحد في GitHub تعرّض للاختراق بعد أن ثبّت الموظف إضافة VS Code خبيثة (من المرجح جدًا Nx Console v18.95.0). نجح المهاجم، الذي أطلق على نفسه اسم TeamPCP (ويتم تتبّعه بمعرّف UNC6780)، في سرقة ما يقارب 3,800 مستودع من المستودعات الداخلية لكود GitHub المصدري. كود العملاء وحساباتهم وخدمات GitHub الإنتاجية لم تتأثر.
فيما يلي صورة أوضح لما حدث وما لم يحدث.
| ما الذي حدث | ما الذي لم يحدث |
|---|---|
| تعرّض جهاز موظف للاختراق عبر إضافة VS Code مسمومة | اختراق بنية GitHub.com الإنتاجية |
| سرقة نحو 3,800 مستودع كود مصدري داخلي | الوصول إلى مستودعات أو حسابات العملاء |
| سرقة بيانات اعتماد موظف GitHub على تلك النقطة الطرفية | سرقة رموز PAT أو توكنات npm أو تفويضات OAuth للعملاء من أنظمة GitHub |
| مطالبة TeamPCP بفدية (وفق Tom's Hardware) | دفع GitHub للفدية (لا دليل على الدفع) |
لماذا يهمّ هذا التمييز؟ لأن الدرس المستفاد ليس "اختراق github." الدرس الحقيقي هو أن أجهزة المطوّرين باتت النقطة الأضعف في كل مؤسسة تقنية. كل سرّ تمتلكه فرقتك (رموز GitHub PAT، توكنات npm، مفاتيح AWS، جلسات Vault، مفاتيح مزودي الذكاء الاصطناعي) موجود على جهاز محمول يفتقر إلى أي تغطية EDR تقريبًا. إضافة واحدة مسمومة تعمل في بيئة التطوير تملك صلاحية الوصول إلى كل ذلك.
المتحدث الرسمي باسم GitHub، المقتبس في Bleeping Computer، أكّد رواية الاختراق من جهاز الموظف وأن "لا بيانات عملاء" تضرّرت. وأضافت Help Net Security معلومات نسب الهجوم إلى TeamPCP. أما السلسلة التقنية لحضانة الإضافة فموثّقة في التنبيه GHSA-c9j4-9m59-847w.
GitHub.com لم يُخترق. موظف في GitHub تعرّض للاختراق. ضع هذا الإطار في ذهنك وأنت تتابع القراءة.
ما الذي حدث فعليًا: الجدول الزمني لاختراق مايو 2026
انكشفت قصة اختراق github 2026 على أربع مراحل في غضون 48 ساعة تقريبًا. نُشرت الإضافة المسمومة في 18 مايو الساعة 12:36 UTC، وأُزيلت بعد 11 دقيقة، واكتشف GitHub الأمر في اليوم التالي، وتم الإفصاح العلني في 20 مايو. الجدول الزمني المختصر مع المصادر:
| الوقت (UTC) | الحدث | المصدر |
|---|---|---|
| 18 مايو، 12:36 | نشر Nx Console v18.95.0 على OpenVSX / Visual Studio Marketplace (من المرجح جدًا) | StepSecurity / GHSA-c9j4-9m59-847w |
| 18 مايو، 12:47 | إزالة الإصدار الخبيث — نافذة الـ 11 دقيقة | StepSecurity |
| 19 مايو | اكتشاف GitHub للاختراق على جهاز الموظف؛ احتواء الحادث | متحدث GitHub عبر Bleeping Computer |
| 20 مايو | الإفصاح العلني؛ إعلان TeamPCP / UNC6780 نسب الهجوم إليهم | Help Net Security, Hackread |
نافذة الـ 11 دقيقة هي التفصيل الأغرب. تشير إلى أن المهاجم دوّر الإضافات لتفادي الكشف في المتجر، وهو النمط ذاته الذي وثّقته Koi Security في دودة GlassWorm على OpenVSX في أكتوبر 2025. TeamPCP / UNC6780 سبق أن نسبا إليهما اختراقات 2026 ضد Trivy وKICS وLiteLLM وTanStack وMistralAI. المجموعة ذاتها، والأسلوب ذاته، والأهداف مختلفة.
الشهر الماضي كانت متغيّرات البيئة في Vercel، واليوم مستودعات GitHub. النمط الذي راقبناه يتطوّر على مدى 9 أشهر ويتوسّع نطاقه باستمرار. راجع تحليلنا لـ استجابة اختراق Vercel للحادثة الشقيقة.
الإضافة المرجّحة: Nx Console v18.95.0 (ولماذا لا يؤكّد GitHub)
لم يُسمِّ GitHub رسميًا الإضافة المتورّطة في اختراق جهاز الموظف. الأدلة الجنائية تشير بقوة إلى Nx Console v18.95.0، لكن ذلك يبقى من المرجح جدًا، غير مؤكد. سنحدّث هذا المنشور إن أعلن GitHub عن إضافة مختلفة. عامل ما تبقّى من هذا القسم على أنه أفضل نسب متاح، لا حقيقة معلنة.
أربع قطع من الأدلة الظرفية تربط Nx Console بإفصاح GitHub:
- تطابق التوقيت: نافذة تنبيه GHSA-c9j4-9m59-847w (18 مايو، 12:36-12:47 UTC) تقع داخل نافذة اختراق جهاز موظف GitHub وفق إفصاح GitHub ذاته.
- تداخل مؤشرات الاختراق الجنائية: تحليل حمولة Nx Console الذي نشرته StepSecurity (مسارات الملفات، عمليات كـ
__DAEMONIZED، نقاط الشبكة) يتطابق مع القطع الأثرية المرصودة على النقطة الطرفية المخترَقة وفق تقرير Wiz. - نمط نسب TeamPCP: نشطت TeamPCP / UNC6780 في مجال سلسلة توريد VS Code (Trivy وKICS وLiteLLM وTanStack وMistralAI في 2026) بتركيبة حمولة متّسقة.
- نافذة الإزالة في 11 دقيقة: سمة مميزة لهجمات سلسلة التوريد حين يتحكم المهاجم في لحظة النشر لكن المتجر يكشفه بسرعة.
حتى لو لم تكن قد ثبّتت Nx Console، فأنت لست بأمان تام. نمط الهجوم الأوسع (عمليات __DAEMONIZED، إساءة استخدام IMDS، سرقة ~/.claude/settings.json) ينطبق على أي إضافة مسمومة. الفرز في القسم التالي ينطبق بصرف النظر عن الإضافة المشتبه بها.

هل أنت في دائرة التأثير؟ الفرز في 5 دقائق
ثلاثة اختبارات سريعة. (1) هل ثبّتت أو حدّثت تلقائيًا إضافة VS Code بين 18 مايو الساعة 12:36 و12:47 UTC؟ (2) هل توجد أي ملفات من مؤشرات اختراق GHSA-c9j4-9m59-847w على جهازك الآن؟ (3) هل استخدمت GitHub PAT داخل VS Code في الـ 14 يومًا الماضية؟ أجرِ الثلاثة في أقل من خمس دقائق.
الاختبار الأول — مراجعة الإضافات
# سرد جميع الإضافات المثبّتة مع الإصدارات
code --list-extensions --show-versions
# التحقق تحديدًا من Nx Console v18.95.0
code --list-extensions --show-versions | grep -i "nrwl.angular-console\|nx-console"كل ما تحدّث تلقائيًا بين 17 و18 مايو يستحق إعادة نظر. إن رأيت Nx Console بالإصدار 18.95.0 تحديدًا، فأنت مطابق محتمل. الإصدار المُصلح هو 18.100.0. إما أن تزيل الإضافة فورًا أو تنتقل مباشرة إلى الدليل أدناه.
الاختبار الثاني — فحص مؤشرات الاختراق
# التحقق من بقايا عملية حصاد بيانات الاعتماد الخفية (GHSA-c9j4-9m59-847w)
ps aux | grep -i "__DAEMONIZED" | grep -v grep
ls -la ~/.local/share/kitty/ 2>/dev/null
find ~ -name "*.daemonized*" 2>/dev/null
# مؤشر إساءة استخدام IMDS (سرقة بيانات اعتماد AWS)
# تحقق من سجل الأوامر بحثًا عن curl غير متوقع إلى 169.254.169.254
grep -E "169\.254\.254\.254|metadata\.google\.internal" ~/.zsh_history ~/.bash_history 2>/dev/nullالجهاز النظيف لا يُرجع شيئًا لعملية grep الخاصة بـ __DAEMONIZED، ولا ملفات .daemonized، ولا أي وصول إلى IMDS في سجل الأوامر. إن ظهر أي من ذلك، افترض أن الجهاز مخترق وعامل كل بيانات الاعتماد التي لامسها خلال الـ 30 يومًا الماضية على أنها محروقة.
الاختبار الثالث — كشف تعرّض PAT
إن كنت قد استخدمت GitHub PAT (كلاسيكيًا أو دقيق الصلاحيات) داخل أي طرفية VS Code، أو git مدمج، أو أي إضافة تستدعي GitHub API خلال الـ 14 يومًا الماضية، افترض أنه مخترق وانتقل إلى دليل التدوير أدناه. هذا هو الافتراض المحافظ الصحيح — لا يمكنك مراجعة "هل كان الرمز في الذاكرة حين كانت الإضافة نشطة." دوّره.
إن كنت تستخدم Claude Code، فإن قائمة مؤشرات الاختراق تشمل تحديدًا ~/.claude/settings.json. راجع دليل Claude Code Hooks لمعرفة ما يُخزَّن في ذلك الملف وأي المفاتيح يجب تدويرها أولًا.
الحكم. إن أطلق أي من هذه الاختبارات الثلاثة نتيجة إيجابية، توقّف عن قراءة السرد. انتقل مباشرة إلى الدليل في القسم التالي. الـ 55 دقيقة القادمة أهم من التحليل البعدي.
ما يجب على المطوّرين فعله: دليل الطوارئ الـ 60 دقيقة
دوّر بيانات الاعتماد حسب الأولوية. المستوى 0 (الـ 30 دقيقة القادمة): رموز GitHub PAT وتوكنات npm. المستوى 1 (اليوم): مفاتيح AWS والسحابة و1Password / Vault وأسرار GitHub Actions. المستوى 2 (هذا الأسبوع): SaaS من جهات خارجية وتفويضات OAuth ومفاتيح SSH. المستوى 3 (عند الفراغ): المفاتيح للقراءة فقط والمفاتيح العامة. كل مستوى يقابل تقليصًا محددًا لنطاق الضرر.

الآن فورًا: إن كنت مؤكدًا تعرّضك للاختراق
إن كانت نتيجة الفرز إيجابية، افعل هذه الأشياء الثلاثة بالترتيب قبل أي شيء آخر.
- أوقف العملية الخفية وأزل الإضافة المشتبه بها:
# إيقاف الحمولة الخبيثة (GHSA-c9j4-9m59-847w)
pkill -f __DAEMONIZED
pkill -f "nx-console.*18.95.0"
# إزالة الإضافة المشتبه بها فورًا
code --uninstall-extension nrwl.angular-console- افصل كابل الشبكة من جهازك إن كان لديك أي دليل على تسريب نشط. يبدو أمرًا متطرفًا. هو كذلك. افعله على أي حال. يمكنك التحقيق لاحقًا بدون اتصال.
- تواصل مع فريق الأمن أو انشر في
#securityعلى Slack قبل تنفيذ أي شيء آخر. إن كنت تعمل منفردًا، انتقل مباشرة إلى المستوى 0 أدناه.
المستوى 0 (الـ 30 دقيقة القادمة): GitHub + npm
إلغاء رموز GitHub PAT عبر gh CLI وواجهة الإعدادات:
# التحقق من هويتك الحالية
gh auth status
# سرد تثبيتات التطبيقات التي يمكن للرمز الوصول إليها (يساعد في حصر نطاق الضرر)
gh api -H "Accept: application/vnd.github+json" /user/installations
# واجهة gh CLI لا تلغي الرموز الكلاسيكية مباشرة — استخدم واجهة الويب:
# https://github.com/settings/tokens
# اضغط "Revoke" على كل رمز. لا تحتفظ بـ "الرمز المحتمل سلامته".
# أعد الإصدار برموز PAT دقيقة الصلاحيات + صلاحية ≤90 يومًا:
# https://github.com/settings/personal-access-tokens/new
# اجعل كل رمز لمستودع واحد فقط، وليس للحساب كاملًا.
# للرموز والتثبيتات على مستوى المنظمة:
gh api /orgs/{ORG}/installationsتدوير توكنات npm:
# سرد وإلغاء جميع توكنات npm
npm token list
npm token revoke <token-id-1>
npm token revoke <token-id-2>
# تفعيل 2FA إلزاميًا على المصادقة والكتابة
npm profile enable-2fa auth-and-writes
# للـ CI: الترحيل إلى النشر الموثوق عبر OIDC — لا مزيد من التوكنات طويلة الأمد
# التوثيق: https://docs.npmjs.com/trusted-publishersإن كنت تشرف على حزم منشورة، فتوكن npm هو أخطر بيانات اعتماد تمتلكها. دوّره قبل AWS.
المستوى 1 (اليوم): السحابة + Vault + أسرار CI
مفاتيح AWS تأتي بعد ذلك. تُظهر مؤشرات الاختراق إساءة استخدام IMDS، لذا أي مستخدم IAM لامس النقطة الطرفية المخترَقة يُعدّ مشتبهًا به:
# سرد مفاتيح الوصول لمستخدم IAM الحالي
aws iam list-access-keys --user-name $(aws sts get-caller-identity --query 'Arn' --output text | cut -d/ -f2)
# تعطيل المفتاح القديم (لا تحذفه بعد — دع أعباء العمل تفشل بصوت عالٍ أولًا)
aws iam update-access-key --access-key-id AKIA... --status Inactive --user-name <user>
# إنشاء مفتاح جديد
aws iam create-access-key --user-name <user>
# بعد النشر والتحقق، احذف المفتاح القديم
aws iam delete-access-key --access-key-id AKIA... --user-name <user>
# إن كان أي EC2 يستخدم IMDSv1، أجبر على IMDSv2 فورًا
aws ec2 modify-instance-metadata-options --instance-id i-... --http-tokens required1Password CLI: سجّل الخروج من جميع الأجهزة (op signout --all)، وجدّد رموز الجلسة، وراجع سجل الوصول الأخير للخزنة عبر سجل مراجعة 1Password على الويب لأي نشاط من النقطة الطرفية المخترَقة.
HashiCorp Vault: ألغِ رمز مستخدمك (vault token revoke -self) واطلب من المشرف إصدار رمز جديد بفترة TTL أقصر.
أسرار GitHub Actions: إن كان أي بيانات اعتماد تم تدويرها موجودة أيضًا في Actions، حدّثها. استخدم gh secret set GITHUB_PAT --body <new-pat> لكل مستودع، أو واجهة المستوى التنظيمي للأسرار المشتركة.
مفاتيح Anthropic وOpenAI API: تذكر أن قائمة مؤشرات اختراق GHSA-c9j4-9m59-847w تُدرج ~/.claude/settings.json تحديدًا كهدف للسرقة. ألغِ وأعد إصدار مفتاح Anthropic API من لوحة التحكم وأي مفتاح OpenAI سبق أن خزّنته في ذلك الملف.
المستوى 2 (هذا الأسبوع): SSH + OAuth + خزائن كلمات المرور
مفاتيح SSH أبطأ تحركًا لكنها لا تزال في النطاق. كانت للإضافة صلاحية قراءة نظام الملفات على ~/.ssh/:
# مراجعة مفاتيح SSH الموجودة (متى أُنشئت؟)
for key in ~/.ssh/id_*; do
if [ -f "$key" ]; then
echo "Key: $key"
stat -c '%y' "$key" 2>/dev/null || stat -f '%Sm' "$key"
fi
done
# إنشاء مفتاح Ed25519 جديد
ssh-keygen -t ed25519 -C "rotated-$(date +%Y%m%d)" -f ~/.ssh/id_ed25519_new
# رفع المفتاح العام إلى GitHub
gh ssh-key add ~/.ssh/id_ed25519_new.pub --title "rotated-$(date +%Y%m%d)"
# حذف المفتاح القديم من GitHub عبر واجهة الويب، ثم التحقق من عمل SSH
ssh -T [email protected]مدير كلمات مرور المتصفح وخزنة نظام التشغيل: دوّر أي كلمة مرور ربما رأتها الإضافة عبر الحافظة. التعرّض الواقعي هو كلمات المرور التي نسختها إلى الحافظة أثناء نشاط الإضافة.
المستوى 3 (عند الفراغ): المراجعة والتحقق
راجع سجل مراجعة منظمتك على GitHub لنافذة الاختراق. هذا يتطلب صلاحيات مشرف المنظمة:
# سحب أحداث push للفترة 18-20 مايو
gh api -X GET /orgs/{ORG}/audit-log \
--paginate \
-f phrase='action:repo.push created:2026-05-18..2026-05-20' | jq '.[] | {actor, created_at, repo}'
# فحص الالتزامات المشبوهة (مؤلفون غير متوقعون، فوارق كبيرة)
gh api -X GET /repos/{ORG}/{REPO}/commits \
-f since=2026-05-18T00:00:00Z \
-f until=2026-05-20T23:59:59Z | jq '.[] | {sha, author: .commit.author, message: .commit.message}'
# تحديث تفويضات OAuth
gh auth refresh -s admin:org -s admin:public_keyإن أظهر سجل المراجعة عمليات push في نافذة الاختراق لم تقم بها، صعّد الأمر إلى فريق الأمن واحتفظ بالسجل بصيغة JSON. لا تحاول "التراجع" عن أي شيء في المستودع. احفظ الأدلة أولًا.
غطّينا منطق التدوير التدريجي ذاته في اختراق متغيّرات البيئة في Vercel في أبريل: الشكل ذاته، الطبقة مختلفة.
إطار مراجعة الإضافات من 5 أسئلة (استخدمه دائمًا)
قبل تثبيت أي إضافة VS Code أو الوثوق بها، اختبرها عبر خمسة اختبارات: عمر نطاق الناشر، سرعة إصدار الإصدارات، أحداث تفعيل package.json، نطاق الصلاحيات مقابل السلوك المتوقع، ومراجعة مستودع الكود المفتوح. Nx Console v18.95.0 كانت ستفشل الاختبار #2: قفزة مفاجئة في الإصدار بعد إيقاع إصدارات ثابت هو العلامة الكلاسيكية لهجوم سلسلة التوريد.
- عمر نطاق الناشر. هل نطاق الناشر أقدم من عام؟ الناشرون الجدد على نطاقات مسجّلة حديثًا يحملون خطرًا أكبر. تحقق عبر صفحة الناشر في Visual Studio Marketplace أو
whoisعلى نطاق البريد الإلكتروني للناشر. - سرعة الإصدارات. هل سجل الإصدارات يُظهر إيقاعًا طبيعيًا (إصدار كل 1-4 أسابيع) أم ارتفاعًا مفاجئًا (ثلاثة إصدارات في 24 ساعة)؟ السرعة المفاجئة إشارة تحذير. Nx Console v18.95.0 كانت شذوذًا في السرعة.
- أحداث تفعيل
package.json. افتح ملف.vsix(إنه ضغط zip) واقرأactivationEvents. الإضافات التي تُفعَّل على*(دائمًا نشطة) لها أكبر سطح هجوم. فضّل الإضافات التي تُفعَّل على لغة أو اسم ملف محدد. - الصلاحيات المطلوبة مقابل السلوك المتوقع. هل إضافة "ثيم" تطلب الوصول إلى الشبكة؟ هل إضافة "مقتطفات" تحتاج صلاحية كتابة نظام الملفات؟ التناقضات علامات حمراء. تحقق مقابل وثائق أمان وقت تشغيل الإضافات من Microsoft.
- مراجعة مستودع الكود المفتوح. هل المصدر على GitHub؟ اقرأ آخر خمسة التزامات بحثًا عن تغييرات مشبوهة: خطّافات ما بعد التثبيت، كتل مشفّرة بـ base64، استدعاءات شبكة لنطاقات غير مألوفة.
إضافة تُفعَّل على * وتطلب الوصول إلى الشبكة هي فعليًا صدفة طرفية عن بُعد مع إرفاق VS Code بها.
ينطبق إطار المراجعة ذاته على خوادم MCP، وهي سطح هجوم سلسلة التوريد الجديد من فئة الإضافات. راجع تحليلنا لـ أفضل خوادم MCP 2026 لمعرفة أيها نثق به ولماذا.
لماذا يتكرّر هذا: موجة سلسلة التوريد 2025-2026
اختراق GitHub في 20 مايو هو عقدة واحدة في قوس ممتد على 9 أشهر: دودة npm Shai-Hulud (سبتمبر 2025)، دودة GlassWorm على OpenVSX (أكتوبر-نوفمبر 2025)، Shai-Hulud 2.0 (نوفمبر 2025، أكثر من 25,000 مستودع مخترق)، Mini Shai-Hulud (مطلع 2026)، Nx Console (18 مايو 2026)، واختراق نقطة GitHub الطرفية (20 مايو 2026). أجهزة المطوّرين باتت النقطة الأضعف الجديدة.
- سبتمبر 2025، دودة Shai-Hulud على npm. برمجيات خبيثة ذاتية الانتشار في حزم npm شائعة. أصدرت CISA تنبيهًا حول الاختراق الواسع النطاق.
- أكتوبر-نوفمبر 2025، GlassWorm. أول دودة ذاتية الانتشار تستهدف إضافات VS Code على OpenVSX. إفصاح Koi Security.
- نوفمبر 2025، Shai-Hulud 2.0. أكثر من 25,000 مستودع تعرّض للسرقة. مدوّنة Microsoft Security نشرت إرشادات الاحتواء.
- مطلع 2026، Mini Shai-Hulud. متغيّر TeamPCP. هجمات أصغر نطاقًا ضد Trivy وKICS وLiteLLM وTanStack وMistralAI.
- 18 مايو 2026، Nx Console v18.95.0. الناقل الأرجح لاختراق نقطة GitHub الطرفية.
- 20 مايو 2026، إفصاح GitHub. نحو 3,800 مستودع داخلي مسرَّب. وفق سلسلة Wiz الجنائية حول Shai-Hulud، نمط إساءة استخدام IMDS هو تطوّر مباشر.
النمط واضح: أجهزة المطوّرين تحمل كل سرّ في المنظمة (رموز GitHub PAT، مفاتيح AWS، رموز Vault، مفاتيح مزودي الذكاء الاصطناعي) وفي الوقت ذاته تكاد تخلو من أي تغطية EDR. حتى ينقلب هذا الخلل، ستستمر هذه الموجة.
الذكاء الاصطناعي الدفاعي إحدى أدوات الإجابة. غطّينا هذا الجانب في تحليلنا لـ كيف يمنع الذكاء الاصطناعي اختراقات البيانات في وقت سابق من هذا العام.
استجابة GitHub الأشمل: النشر الموثوق، FIDO 2FA، توكنات لـ 90 يومًا
كان GitHub يُدرج أربعة ضوابط لسلسلة التوريد قبل 20 مايو: 2FA إلزامي لناشري npm، حدّ أقصى 90 يومًا لرموز الكتابة الدقيقة، إيقاف TOTP لصالح FIDO ومفاتيح المرور، والنشر الموثوق عبر OIDC لـ GitHub Actions وGitLab CI. يُعجّل اختراق مايو بترحيل قائم أصلًا؛ لا يُقدّم سياسة جديدة.
| الضابط | الحالة | ما يجب عليك فعله |
|---|---|---|
| 2FA إلزامي لـ npm | فعّال | فعّله الآن: npm profile enable-2fa auth-and-writes |
| حدّ 90 يومًا لرموز الكتابة الدقيقة | جارٍ التطبيق (الرموز الموجودة تُجبر على الانتهاء) | الترحيل إلى رموز PAT دقيقة الصلاحيات بـ TTL ≤90 يومًا |
| إيقاف TOTP، FIDO / مفاتيح المرور | تطبيق تدريجي 2026 | سجّل مفتاح مرور على كل حساب GitHub اليوم |
| النشر الموثوق عبر OIDC | فعّال لـ GitHub Actions + GitLab CI | رحّل CI من رموز npm طويلة الأمد إلى OIDC |
خطة GitHub لسلسلة توريد npm أكثر أمانًا سابقة لهذا الحادث بأشهر. كلما أسرعت في التوافق معها، صغر نطاق الضرر في المرة القادمة.
التصليب الأمني: كيف تنجو من الحادثة القادمة
ستة إجراءات استشرافية: ثبّت إصدارات الإضافات في devcontainer.json، وطبّق قائمة إضافات مسموح بها على مستوى المنظمة، وشغّل EDR مع رؤية لعمليات الإضافات، وافحص الأسرار في كل push، وحدّد صلاحيات PAT لمستودع واحد، وتبنَّ النشر الموثوق عبر OIDC بدلًا من التوكنات طويلة الأمد. لا شيء من هذه الإجراءات كان سيمنع كل حادثة بمفرده — مجتمعةً تُقلّص نطاق الضرر من "كل شيء على الجهاز" إلى "مستودع واحد."
{
"name": "secure-dev",
"extensions": [
"[email protected]",
"[email protected]",
"[email protected]"
],
"settings": {
"extensions.autoUpdate": false,
"extensions.autoCheckUpdates": false
},
"containerEnv": {
"VSCODE_GALLERY_SERVICE_URL": "https://your-internal-allow-list.example.com"
}
}باختصار:
- ثبّت كل إصدار إضافة في
devcontainer.jsonللقضاء على التحديث التلقائي. - قائمة مسموح بها على مستوى المنظمة عبر توجيه
VSCODE_GALLERY_SERVICE_URLإلى مرآة داخلية. - EDR مع رؤية عمليات IDE: Crowdstrike أو SentinelOne أو Microsoft Defender for Endpoint مع VS Code في النطاق.
- فحص الأسرار في كل push: قبل الالتزام وعند الرفع، وعلى الجانب الخادمي.
- حدّد كل PAT لمستودع واحد: لا صلاحيات
*أبدًا. - النشر الموثوق عبر OIDC: لا توكنات npm أو سجل طويلة الأمد في CI.
ثغرة copy_file_range على Linux من الأسبوع الماضي قصة شقيقة: طبقة مختلفة، الدرس ذاته. حدود الثقة التي نسيتها هي التي تعضّك.
إن كنت تفكّر في استخدام وكلاء البرمجة بالذكاء الاصطناعي بعد ذلك، طبّق إطار المراجعة ذاته. لهم ملف ثقة مطابق للإضافات. يستعرض تحليلنا لـ أفضل وكلاء البرمجة بالذكاء الاصطناعي 2026 أيها يستحق تلك الثقة.
الأسئلة الشائعة
هل اختُرق GitHub فعلًا؟
لا، ليس بالمعنى الذي توحي به معظم العناوين الإخبارية. لم تُخترق البنية الإنتاجية لـ GitHub.com. ثبّت أحد موظفي GitHub إضافة VS Code خبيثة على جهاز عمله، سرّبت ما يقارب 3,800 مستودع من المستودعات الداخلية لكود GitHub المصدري. كود العملاء وحساباتهم وخدمات GitHub الإنتاجية لم تتأثر.
ما هي إضافة VS Code المتورّطة فعليًا؟
لم يؤكّد GitHub رسميًا اسم الإضافة. الأدلة الجنائية من StepSecurity وWiz وGHSA-c9j4-9m59-847w تُشير بقوة إلى Nx Console v18.95.0، المنشورة في 18 مايو الساعة 12:36 UTC والمُزالة بعد 11 دقيقة. نتعامل مع ذلك على أنه "من المرجح جدًا، غير مؤكد" حتى يُسمّيها GitHub.
هل Nx Console آمنة للاستخدام الآن؟
الإصدار المُصلح هو 18.100.0. إن كان الإصدار القديم v18.95.0 مثبّتًا، أزله فورًا، ونفّذ فحص مؤشرات الاختراق في قسم الفرز، وأعد التثبيت فقط من ناشر Nrwl الرسمي بالإصدار 18.100.0 أو أحدث. تحقق من نطاق الناشر قبل إعادة التثبيت وثبّت الإصدار في devcontainer.json.
هل تأثّرت بيانات العملاء في اختراق GitHub؟
لا. وفق البيان الرسمي لـ GitHub عبر Bleeping Computer، لم يُصَل إلى الكود المصدري للعملاء أو حساباتهم أو رموز OAuth أو بياناتهم الإنتاجية المستضافة على GitHub. البيانات المخترَقة هي الكود المصدري الداخلي لـ GitHub من نقطة الموظف الطرفية. تعامل مع هذا على أنه حادثة جهاز موظف، لا اختراق منصة.
كيف أعلم إن كان GitHub PAT الخاص بي قد سُرق؟
لا يمكنك معرفة ذلك بيقين. الافتراض المحافظ: إن كنت استخدمت أي GitHub PAT داخل VS Code في الـ 14 يومًا الماضية، تعامل معه على أنه مخترق ودوّره. تحقق من سجل مراجعة GitHub عبر gh api /orgs/{ORG}/audit-log بحثًا عن أحداث push غير مألوفة بين 18 و20 مايو UTC، ثم ألغِ الرمز وأعد إصداره.
ما هما TeamPCP وUNC6780؟
TeamPCP مجموعة جهة تهديد؛ UNC6780 هو معرّف التتبّع الذي يُعيّنه بائعو الاستجابة للحوادث. أعلنا علنًا نسب اختراق GitHub إليهما. المجموعة ذاتها ادّعت اختراقات 2026 ضد Trivy وKICS وLiteLLM وTanStack وMistralAI — نمط استهداف متّسق لـ VS Code وسلسلة توريد npm.
هل إضافات VS Code معزولة في بيئة صندوق رمل؟
لا، ليس بشكل فعلي. إضافات VS Code تعمل في عملية Node.js الخاصة ببيئة التطوير مع صلاحيات كاملة على نظام الملفات والشبكة للمستخدم. تستطيع قراءة كل ملف في الدليل الرئيسي، بما في ذلك مفاتيح SSH، و~/.aws/credentials، و~/.claude/settings.json، وذاكرة العمليات عبر /proc/*/mem على Linux. توثّق Microsoft نموذج الأمان في وقت التشغيل وحدوده في وثائق الإضافات الرسمية.
هل أثّر هذا على GitHub Codespaces أو عمّال CI؟
لا دليل حتى الآن. الاختراق كان على جهاز عمل موظف، لا على بنية GitHub الإنتاجية. Codespaces وعمّال GitHub Actions والبنية التحتية لـ CI الموجّهة للعملاء لم يُبلَّغ عن تأثّرها. سنحدّث هذا المنشور إن غيّرت مؤشرات اختراق جديدة هذه الصورة.
الخلاصة
ثلاثة أشياء تحملها معك:
- GitHub.com لم يُخترق. جهاز VS Code لأحد الموظفين تعرّض للاختراق. الدرس ينطبق على كل مطوّر.
- دوّر الآن، إطار المراجعة للأبد. دليل الـ 60 دقيقة هو الرقعة؛ إطار الـ 5 أسئلة هو جهاز المناعة.
- هذا ليس حادثة معزولة. إنه العقدة رقم 6 في موجة سلسلة توريد ممتدة على 9 أشهر ولا تتراجع.
آخر تحديث: 20 مايو 2026. سنراجع هذا المنشور في 27 مايو 2026 بمؤشرات اختراق جديدة وتنبيهات البائعين وأي تأكيد من GitHub حول الإضافة المتورّطة.
إن احتاج فريقك مساعدة في مراجعة سطح إضافات VS Code، أو نظافة رموز PAT والتوكنات، أو بناء سياسة قائمة مسموح بها على مستوى المنظمة، احصل على استشارة مجانية. كنّا منهمكين في أمن نقاط المطوّرين منذ اختراق Vercel في أبريل، والدليل أعلاه هو ما ننفّذه مع العملاء في اليوم الأول.