نافذة التسع ساعات
في 8 أبريل 2026، نشر Marimo — وهو notebook مفتوح المصدر شائع لـ Python يستخدمه علماء البيانات ومهندسو ML — نشرة أمنية لـ CVE-2026-39987: ثغرة تنفيذ تعليمات برمجية عن بُعد دون مصادقة في endpoint WebSocket الطرفي للـ notebook.
في أقل من نصف يوم، كان المهاجمون داخل النظام بالفعل.
سجل فريق Threat Research في Sysdig، الذي يدير honeypots مزروعة بنسخ Marimo مكشوفة، أول محاولة استغلال في البرية بعد 9 ساعات و41 دقيقة من نشر النشرة الأمنية. خلال حوالي ثلاث دقائق من الـ shell الأولي، كان المهاجم قد جمع بيانات الاعتماد من البيئة المخترقة.
لم يكن هناك إثبات مفهوم عام. لم يكن هناك وحدة Metasploit. كانت هناك فقط النشرة الأمنية — وكان ذلك على ما يبدو كافيًا.
كيف تعمل الثغرة
تكمن الثغرة في ميزة الطرفية في Marimo، والتي تتيح لمستخدمي الـ notebook فتح shell داخل بيئة Python قيد التشغيل. تحت الغطاء، يكشف Marimo هذا عبر endpoint WebSocket في `/terminal/ws`.
الثغرة بسيطة بشكل محرج: كل endpoint WebSocket حساس آخر في Marimo يستدعي `validate_auth()` قبل قبول الاتصالات. تخطى endpoint `/terminal/ws` ذلك. كان يتحقق فقط من وضع التشغيل والمنصة، ثم يسلم لأي عميل متصل shell PTY (طرفية وهمية) كاملاً يعمل بصلاحيات أيًا كان المستخدم الذي بدأ Marimo.
عمليًا، كان هذا يعني:
- يمكن اختراق أي نسخة Marimo يمكن الوصول إليها على الشبكة (شائعة في بيئات التطوير، ومحطات العمل السحابية، ومنصات Jupyter المشتركة، وhomelabs المكشوفة) دون مصادقة مسبقة.
- حصل المهاجم على shell تفاعلي، وليس مجرد primitive لأمر واحد — مثالي للاستطلاع اليدوي والحركة الجانبية وتسريب البيانات.
- لأن الـ notebooks تحتفظ عادةً بمفاتيح API وبيانات اعتماد سحابية وسلاسل اتصال قواعد البيانات وبيانات التدريب، فإن shell في هذا السياق غالبًا ما يكون اختراقًا فوريًا للبيئة بأكملها.
تحمل CVE-2026-39987 درجة CVSS 9.3 وتؤثر على جميع إصدارات Marimo حتى 0.20.4 شاملاً. تم إصلاحها في 0.23.0.
تسلسل الهجوم
رسمت بيانات Sysdig صورة سريرية لما يبدو عليه استغلال zero-day حديث ومدفوع بنشرة أمنية في 2026:
- T+0h — ينشر Marimo نشرة GitHub Security Advisory مسميًا الـ endpoint الضعيف.
- T+~9h 41m — يتصل المهاجم بـ endpoint `/terminal/ws` غير المصادق على honeypot مكشوف ويحصل على shell.
- T+9h 44m (~3 دقائق بعد الـ shell) — يقرأ المهاجم `.env` و`.aws/credentials` و`.bash_history` وملفات مماثلة. اكتمل جمع بيانات الاعتماد.
- T+9h 44m إلى +11h 15m — يعيد المهاجم الاتصال أربع مرات على مدار حوالي 90 دقيقة، كل جلسة قصيرة ومتعمدة، تتسق مع مشغل بشري يعمل من خلال قائمة أهداف.
لم يقم المهاجم بالتحرك بشكل عدواني أو نشر فدية في هذه الملاحظة المحددة. ما يهم هو السرعة والأسلوب: قرأ إنسان النشرة الأمنية، وكتب الاستغلال، وفحص الأهداف، وكان داخل بيئة مخترقة قبل أن يقوم معظم المدافعين حتى بإيداع CVE في أداة التتبع الخاصة بهم.
إعلان
لماذا تُعدّ أدوات المطورين البطن الرخوة
Marimo ليست حالة معزولة. تتناسب مع نمط 2026:
- تعمل أدوات المطورين بسياق ذي امتيازات. تحتفظ بكود المصدر، وبيانات الاعتماد، والرموز السحابية، وأسرار خط الإنتاج، وعينات بيانات العملاء.
- غالبًا ما تكون مكشوفة على الإنترنت. غالبًا ما ترتبط مساحات العمل السحابية والـ notebooks المستضافة وCI runners وIDEs التعاونية بـ 0.0.0.0 بدلاً من localhost، ونادرًا ما يقوم المدافعون بجردها بنفس صرامة أنظمة الإنتاج.
- المصادقة فكرة لاحقة. الأدوات المصممة “للاستخدام المحلي” تصبح بصمت قابلة للوصول عن بُعد في عمليات النشر السحابية، وترث نماذج مصادقة تفترض شبكة موثوقة.
- وتيرة التصحيح بطيئة. يقوم علماء البيانات ومهندسو ML بترقية الـ notebooks بتواتر أقل بكثير من تصحيح فرق الأمن للبنية التحتية للإنتاج.
تعزز بيانات الصناعة الإلحاح. ارتفعت أعداد استغلال zero-day من 63 في 2022 إلى ~90 في 2025، ويتم تسليح حوالي 28٪ من الثغرات المستغلة في غضون 24 ساعة من الإفصاح. يضغط تطوير الاستغلال بمساعدة الذكاء الاصطناعي النافذة أكثر — تعمل أدوات fuzzing الموجهة بـ LLM على تسريع كل من اكتشاف الاستغلال والتسليح بشكل واضح.
CVE-2026-39987 هي دراسة حالة لذلك الضغط. تسع ساعات. لا PoC. RCE كامل قبل المصادقة.
ما الذي يجب فعله — الآن
إذا كنت تستخدم Marimo:
- قم بالترقية إلى الإصدار 0.23.0 أو أحدث فورًا. هذا غير قابل للتفاوض إذا كانت نسختك يمكن الوصول إليها عبر الشبكة.
- دقق في علامات الاختراق: اتصالات غير عادية بـ `/terminal/ws`، shells غير متوقعة تم إنشاؤها بواسطة عملية Marimo، مفاتيح SSH جديدة، ملفات بيانات اعتماد تم الوصول إليها، حركة مرور صادرة إلى عناوين IP غير معروفة.
- اربط Marimo بـ localhost (`–host 127.0.0.1`) حيثما أمكن؛ استخدم تحويل منفذ SSH للوصول عن بُعد بدلاً من كشف منفذ الـ notebook.
- قم بتدوير بيانات الاعتماد التي كانت متاحة من أي نسخة مكشوفة قبل 0.23.0 — مفاتيح سحابية، بيانات اعتماد قواعد بيانات، رموز git.
إذا كنت تدير فريق علوم بيانات أو ML:
- قم بجرد أصول الـ notebook الخاصة بك. Marimo، Jupyter، JupyterLab، Jupyter-AI، أنفاق VS Code، أدوات Deepnote ذاتية الاستضافة — اعرف ما هو منشور، وأين، ومن يملكه.
- عامل خوادم الـ notebook كأنظمة إنتاج. SLAs للتصحيح. مصادقة. تسجيل. تجزئة الشبكة. النموذج الذهني “إنها مجرد أداة dev” هو الطريق الذي يحصل به المهاجمون على shells مجانية.
- اشترك في النشرات الأمنية للأدوات التي يستخدمها فريقك فعلاً. ليس فقط Windows وLinux CVEs — فالذيل الطويل لأدوات تطوير Python/R/Julia/Rust مهم الآن.
الدرس الأكبر
ليست العبرة من CVE-2026-39987 أن Marimo غير آمن بشكل فريد — استجاب المسؤولون بمسؤولية، وشحنوا إصلاحًا، ووثقوا الثغرة بشفافية. العبرة هي أن الإفصاح العام نفسه هو الآن طلقة بداية. يقرأ المهاجمون النشرات الأمنية بشغف لا يقل عن المدافعين، وغالبًا ما يكتبون استغلالات أسرع من نشر برامج التصحيح للإصلاحات.
لأي مؤسسة تشغل أدوات تطوير مفتوحة المصدر على نطاق واسع، يجب أن يكون افتراض العمل لـ 2026 بسيطًا: تُقاس النافذة بين “نشر CVE” و”استغلال نشط” بالساعات، وليس بالأسابيع. تحتاج وتيرة التصحيح والتعرض للشبكة ونظافة بيانات الاعتماد إلى تصميم حول هذا الواقع — وليس حول مفهوم حنين لما كانت عليه جداول zero-day.
الأسئلة الشائعة
هل أنا متأثر إذا كنت أشغل Marimo فقط على localhost؟
الخطر أقل بكثير إذا كان Marimo مرتبطًا بـ 127.0.0.1 وغير مكشوف لأي شبكة. قم بالترقية إلى 0.23.0 على أي حال، لأن افتراضات “محلي فقط” يمكن أن تنكسر بصمت عندما يقوم شخص ما بتشغيل الـ notebook داخل حاوية، أو محطة عمل سحابية، أو بيئة dev مع نفق.
ماذا يجب أن أفحص إذا كنت أعتقد أن نسخة Marimo قد تم اختراقها؟
ابحث عن اتصالات بـ `/terminal/ws`، عمليات غير متوقعة تم إنشاؤها بواسطة الأصل Marimo، قراءات لـ `.env` و`.aws/credentials` و`.bash_history`، مفاتيح SSH جديدة، وحركة مرور صادرة إلى عناوين IP غير مألوفة. قم بتدوير كل بيانات اعتماد كانت متاحة للمضيف.
لماذا أصبحت أدوات المطورين أهدافًا متكررة لـ zero-day في 2026؟
تجمع بين الوصول ذي الامتيازات (كود المصدر، الرموز السحابية، البيانات) مع افتراضيات مصادقة ضعيفة وتصحيح بطيء. كثير منها مصمم للاستخدام المحلي ولكنه يصبح بصمت قابلاً للوصول عن بُعد في عمليات النشر السحابية، مما يجعلها هدفًا سهلاً للاستغلال المدفوع بالنشرات الأمنية.
المصادر والقراءات الإضافية
- Marimo OSS Python Notebook RCE: From Disclosure to Exploitation in Under 10 Hours — Sysdig
- Marimo RCE Flaw CVE-2026-39987 Exploited Within 10 Hours of Disclosure — The Hacker News
- Critical flaw in Marimo Python notebook exploited within 10 hours of disclosure — InfoWorld
- Critical Marimo Flaw Exploited Hours After Public Disclosure — SecurityWeek
- CVE-2026-39987 — Tenable
- Zero-Day Exploits Surge, 30% of Flaws Attacked Before Disclosure — Infosecurity Magazine






