
CVE-2026-18953: لم يكن لخادم Transform MCP Server من AWS أي حد للكتابة
- OrcaجديدOrcaCyber: MiniMax M3.1 Flash Abliterated / Uncensored2026-10-29100 tok/s
- OrcaجديدOrcaCyber: GLM 5.3 Flash Abliterated / Uncensored2026-10-27$0.80 / $1.60 لكل مليون رمز · 102 tok/s
- OrcaجديدOrcaCyber: Qwen3.8 Flash Next Abliterated / Uncensored2026-10-26$0.80 / $1.60 لكل مليون رمز · 283 tok/s
- OrcaجديدOrcaCyber: MiMo V2.6 Flash Abliterated / Uncensored2026-10-26$0.80 / $1.60 لكل مليون رمز · 93 tok/s
- MoonshotجديدMoonshotAI: Kimi K3.1 Pro2026-10-2446الذكاء
- OrcaجديدOrcaCyber: DeepSeek V4.1 Flash Abliterated / Uncensored2026-10-23$0.80 / $1.60 لكل مليون رمز · 106 tok/s
- minimaxجديدMiniMax: M3.1 Flash2026-10-1929الذكاء
- OrcaجديدOrca: OrcaCyber Ultra 1.02026-10-17$5.00 / $10.00 لكل مليون رمز · 70 tok/s
- deepseekجديدDeepSeek: DeepSeek V4.1 Flash 10172026-10-1733الذكاء
- DeepSeekجديدDeepSeek: DeepSeek V4.1 Flash2026-10-1740الذكاء
- OrcaOrca: OrcaCyber Zero 1.52026-10-10$3.00 / $7.50 لكل مليون رمز · 95 tok/s
- openaiOpenAI: GPT-6.1 Sol2026-09-2955الذكاء
- anthropicAnthropic: Claude Sonnet 5.52026-09-2854الذكاء
- typesafeTypeSafe: Jev 1.132026-09-24$0.04 / $0.00 لكل مليون رمز · 168 tok/s
- OpenAIOpenAI: GPT-6 Luna2026-09-2228الذكاء
- OpenAIOpenAI: GPT-6 Sol2026-09-2248الذكاء
- AnthropicAnthropic: Claude Opus 5.52026-09-2258الذكاء
- xiaomiXiaomi: MiMo-V2.6-Flash2026-09-2127الذكاء
- xiaomiXiaomi: MiMo-V2.6-Pro2026-09-2130الذكاء
- xAIGrok 4.72026-09-2134الذكاء
نشرت Amazon النشرة الأمنية 2026-075-AWS في 5 أغسطس 2026 بشأن CVE-2026-18953، وهو اجتياز للمسار في get_resource، أداة awslabs.aws-transform-mcp-server، خادم Model Context Protocol مفتوح المصدر الذي يعمل على جهاز المطوّر نفسه حتى يتمكن مساعد ذكاء اصطناعي من إدارة مهام AWS Transform واسترداد مخرجاتها. لم تقيّد الإصدارات من 0.1.0 إلى 0.1.4 أسماء المسارات بالقدر الكافي، وكان يمكن للمعامل savePath كتابة ملفات خارج دليل العمل المقصود — ويقول التنبيه في مستودع GitHub لدى Amazon إن ذلك "قد يؤدي إلى تنفيذ تعليمات برمجية محليًا". منحت Amazon له تقييم 8.6، مرتفع. الإصلاح هو الإصدار 0.1.5، ولا يوجد حل بديل من جهة الخادم أو بالتهيئة فقط، لأن مسار التعليمات البرمجية المصاب موجود في التهيئة الافتراضية. لم يسجل أي مصدر عام قيام أحد باستغلاله. يقع السجل الكامل، مع درجات الخطورة والثقة الخاصة به، في Orca AI Incident Archive إلى جانب حوادث MCP ووقت تشغيل الوكيل المسجلة في الشهر نفسه.
خادم MCP يكتب حيث يعمل المطوّر
تُعدّ خوادم Model Context Protocol الطبقة التي تمنح المساعد أدوات قابلة للاستدعاء، وهذا الخادم محلي عن قصد. وتصفه نشرة Amazon بأنه "خادم MCP مفتوح المصدر يعمل محليًا على جهاز المطوّر ويتيح للمساعدات المدعومة بالذكاء الاصطناعي التفاعل مع AWS Transform لتشغيل مهام تحويل الشيفرة واسترداد مخرجاتها". ويذكر وصف حزمته على Python Package Index أنه يكشف دورة حياة Transform عبر 19 أداة، تدير مساحات عمل التحويل والمهام والموصلات والمهام التي تتطلب مشاركة بشرية في الحلقة والمخرجات والدردشة، ويغطي تحديث الأنظمة المركزية، والترحيل من VMware، وتحديث .NET، وتحويلات الشيفرة المخصصة.
هذا الموضع هو ما يجعل الثغرة ذات أهمية. فالخادم الموجود على البنية التحتية الخاصة بالمورّد نفسه، والذي يتعامل مع اسم ملف بشكل خاطئ، يفسد تخزين المورّد. أما هذا الخادم فقد كان يعمل بصفة المطوّر، داخل الدليل الرئيسي للمطوّر، إلى جانب إعدادات shell ومفاتيح SSH الخاصة به، والأثر الذي تصفه Amazon ليس تنزيلًا تالفًا بل "تنفيذ تعليمات برمجية محليًا". وكل درجة مرتبطة بـ CVE تتفق على نقطة واحدة: متجه الهجوم محلي، وليس شبكيًا.
الأداة المذكورة في التنبيه هي الأداة التي تُنزّل مُخرَج المهمة إلى القرص. get_resource تأخذ savePath الذي يحدد المكان الذي يجب أن يستقر فيه الملف. الخطأ هو أن شيئًا لم يمنع ذلك المسار من الإشارة إلى مكان آخر.
إلى أي مدى هو سيئ، وبحسب حساب مَن؟
هناك ثلاث درجات مرتبطة بهذه الثغرة CVE وهي غير متطابقة. Amazon، التي أسندت CVE بوصفها جهة الترقيم، تمنحها 8.6 عالية على CVSS v3.1 وفق المتجه CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:C/C:H/I:H/A:H — محلي، تعقيد منخفض، لا تتطلب امتيازات، تتطلب تفاعل المستخدم، تغيّر النطاق، تأثير عالٍ على السرية والسلامة والتوافر. أما إدخال NIST في قاعدة بيانات الثغرات الوطنية فيحمل درجته الأساسية الخاصة به على v3.1 وهي 8.8 وفق متجه مختلف، CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H: تتطلب امتيازات منخفضة، ولا تتطلب تفاعل المستخدم. وكلتاهما تقعان في النطاق العالي. الخلاف يتعلق بالشروط المسبقة — هل يحتاج الفاعل بالفعل إلى موطئ قدم، وهل يجب إقناع شخص بشري — وليس بمدى سوء النتيجة.
درجة Amazon على مقياس CVSS v4.0 لنفس الثغرة CVE هي 6.3، متوسطة، على CVSS:4.0/AV:L/AC:L/AT:N/PR:N/UI:P/VC:N/VI:N/VA:N/SC:H/SI:H/SA:H. اقرأ مقاييس التأثير: لا شيء على النظام المعرّض للثغرة نفسه، وكل شيء مرتفع على النظام اللاحق. هذا هو شكل اختراق مسار يخرج عن حدود الأداة نفسها — فالضرر يقع على كل ما تستطيع الأداة الوصول إليه، لذا يستقر في عمود النظام الفرعي، ويسجّل النظام المعرّض للثغرة صفرًا.

يسجّل إثراء CISA لـ CVE، المؤرّخ في 6 أغسطس 2026، قرار SSVC مفاده الاستغلال: لا شيء، القابلية للأتمتة: لا، التأثير التقني: كلي. وقد جرى آخر تعديل على سجل NVD في 23 أكتوبر 2026، ولا يزال يحمل الرقمين 8.6 و8.8 جنبًا إلى جنب. ولا تعتبر أي من الوثيقتين أن الأخرى خاطئة.
ما الذي فعله الكود المصاب بالثغرة، وما الذي غيّره الإصدار 0.1.5
وصف أمازون لهذه الآلية يتألف من جملة واحدة وهو حذر: الأداة "لم تقيّد أسماء المسارات على نحو كافٍ"، ما قد يسمح "لفاعل يعتمد على السياق" بأن "يكتب ملفات عشوائية خارج دليل العمل المقصود عبر معامل savePath." لا يحدد التنبيه من هو الفاعل، ولا يقول ما الذي يحفّز الكتابة، ولا يصف كيف يبدو الاستغلال الناجح. ويقول فقط إن النتيجة "قد تؤدي إلى تنفيذ تعليمات برمجية محليًا."
ليس أكثر الروايات العامة تفصيلًا عن هذه الآلية روايةَ أمازون، بل هي مستودع صغير لإثبات المفهوم، ronamosa/CVE-2026-18953، نُشر على GitHub في 8 أغسطس 2026 بموجب ترخيص Apache-2.0 — إيداعان اثنان، ولا نجوم ولا تفرعات (forks) في وقت كتابة هذه السطور — يضمّ نسخًا حرفية من الملف المصاب والمرقّع file_validation.py، ويشغّل كليهما عبر المدخلات نفسها.
قراءته للإصدار 0.1.4 هي هذه: validate_write_path() حلّت savePath باستخدام realpath وexpanduser، ورفضت قائمة رفض قصيرة من المواقع (~/.aws، ~/.ssh، ~/.gnupg، ~/.docker، ~/.aws-transform-mcp، /etc/shadow، /etc/passwd)، وأزالت مكوّنات الدليل من اسم الملف المقدم. لم تحصر المسار المحلول في أي دليل أساس أو دليل عمل. كانت قائمة حظر لأسماء ملفات حساسة — .bashrc، .zshrc، authorized_keys، id_rsa — مطبّقة على عمليات القراءة ولكن ليس على عمليات الكتابة.
يوضح المستودع ثلاث عمليات كتابة يسمح بها هذا: مسار مطلق لا يحتاج إلى أي اجتياز على الإطلاق، واختراق نسبي عبر ../../، واسم ملف نقطي كان مسار القراءة سيرفضه. وتقع الثلاث جميعًا داخل دليل مؤقت ينشئه البرنامج النصي، ويُظهر مخرج العينة الخاص به dropped_by_absolute_path.sh، وdropped_by_traversal.sh و.bashrc تحت دليل منزلي وهمي؛ ولا يُمس الدليل المنزلي الحقيقي أبدًا. يضيف الإصدار 0.1.5 الحد المفقود: دليل أساس مأخوذ من $AWS_TRANSFORM_MCP_WRITE_DIR أو دليل العمل عند بدء تشغيل الخادم، والذي يجب أن تقع تحته كل عملية كتابة بعد حلّ مسارها، إضافةً إلى قائمة حظر أسماء الملفات المطبقة على مسار الكتابة النهائي بعد حلّه. ويُطلق المدقق المُصلَح رسالة "Write path must be within the working directory" في مواجهة الثلاث جميعًا.

لا ترد أي من هذه التفاصيل في التنبيه الأمني، ولا يدّعي المستودع أنها جاءت منه. تعامل مع قائمة الحظر، وفحص اسم الملف للقراءة فقط، وإصلاح الدليل الأساسي على أنها إعادة بناء من الشيفرة المصدرية، لا كاستنتاج رسمي ثانٍ. وما يضيفه المستودع إلى ما هو أبعد من التنبيه هو بيان من يمكنه تزويد المسار: لأن مهمة الخادم هي سحب محتوى الوظائف والمهام إلى سياق مساعد، فإن الطرف الذي يختار savePath لا يلزم أن يكون الشخص الموجود عند لوحة المفاتيح. يمكن لمساعد يُقاد بمحتوى غير موثوق جلبه عبر الأداة نفسها أن يتخذ القرار. هذه حجة المستودع المستمدة من الشيفرة وتصميم الأداة، وليست ادعاءً تقدمه Amazon؛ إن «الفاعل المعتمد على السياق» غير المحدد لدى Amazon متوافق معها ويتوقف عند ذلك.
سبعة أسابيع بين الترقيع والنشرة
لم يأتِ الإصلاح مع الإعلان. يُؤرّخ سجل إصدارات Python Package Index — وهو بيانات وصفية من الجهة الأصلية في السجل الذي تُوزَّع الحزمة من خلاله — الإصدار 0.1.4 في 20 مايو 2026 والإصدار 0.1.5 في 17 يونيو 2026، أي سبعة أسابيع قبل نشر النشرة 2026-075 في 5 أغسطس. لا يوجد ملف 0.1.0 على السجل إطلاقًا؛ وأقدم عنصر منشور ضمن النطاق المتأثر هو 0.1.1، الذي رُفع في 9 مايو 2026. لذلك، لم يكن بإمكان أي مطوّر يثبّت من السجل إلا أن يتلقى نسخة مصابة بين 9 مايو و17 يونيو، وكان أي شخص يتابع الإصدارات قد انتقل بالفعل إلى شيفرة مُرقّعة بحلول منتصف يونيو.

لا تذكر Amazon متى علمت بالمشكلة، ولا متى وصل التقرير، ولا لماذا صدر الإصدار الذي أغلقها. الشخص الوحيد المذكور بالاسم في السجل هو Drew Raines، وقد وُجّهت إليه عبارة شكر في كل من النشرة وإشعار GitHub الاستشاري «لتعاونه في هذه المشكلة من خلال عملية الإفصاح المنسّق عن المشكلات». نُشر GHSA-66mr-jr63-2jgw في مستودع awslabs/mcp التابع لـ Amazon في 5 أغسطس 2026، وهو اليوم نفسه الذي نُشرت فيه النشرة؛ وقد حُجز سجل CVE عند الساعة 13:44 UTC ونُشر عند الساعة 19:33 UTC في ذلك اليوم.
إذن، تاريخ الإصلاح محدد، أما سببه فليس كذلك. وجود نسخة مصحّحة على السجل قبل النشرة الاستشارية بسبعة أسابيع يتوافق مع إصلاح هادئ تلاه إفصاح منسّق — لكن ذلك استنتاج مستخلص من طابعين زمنيين، ولا تذكره أي من الوثيقتين.
ما يثبته السجل، وما لا يثبته
يصنّف الأرشيف هذا المدخل بدرجة A — موثّق توثيقًا جيدًا، والمصادر الأولية متفقة — ولا يضع عليه علامة "متنازع عليه". ويسجّله بوصفه سجلًا بحثيًا، وتحديدًا اكتشاف ثغرة لا حادثة نشر، مع عدم تسجيل أي ضرر واقعي. والتقييم يتعلق بجودة التوثيق، وهو يصمد بحسب الأدلة التي جرى مراجعتها: فالنشرة، واستشارة GitHub، وسجل CVE هي ثلاثة مستندات منشورة من Amazon تتفق على المنتج، والإصدارات، والإصلاح، والاعتراف بالفضل.
• مُثبت. نشرت Amazon النشرة 2026-075-AWS في 5 أغسطس 2026، وتتناول CVE-2026-18953، وهو تجاوز مسار من نوع CWE-22 في get_resource التابعة لـsavePath التعامل معها في awslabs.aws-transform-mcp-server 0.1.0 حتى 0.1.4، وأُصلح في 0.1.5، ولا يوجد حل بديل من جانب الخادم أو يعتمد على الإعدادات فقط لأن المسار المعرّض للخطر موجود في الإعداد الافتراضي.
• مؤكد. الدرجات وتباينها: 8.6 عالية من Amazon بوصفها سلطة ترقيم CVE، و8.8 عالية من NIST بوصفها الدرجة الأساسية في NVD، و6.3 متوسطة على CVSS v4.0، وقرار CISA المؤرخ 6 أغسطس وفق SSVC بأنه لم يُلاحظ أي استغلال ولا مسار قابل للأتمتة.
• تم التأكيد. تواريخ الإصدار على Python Package Index، والإشادة بـ Drew Raines للإفصاح المنسق.
• مستنتج من الشيفرة المصدرية، بواسطة طرف ثالث. إن قائمة المنع، وقائمة حظر أسماء الملفات للقراءة فقط، والدليل الأساسي الغائب، وإصلاح _ALLOWED_WRITE_BASE كلها تأتي من مستودع إثبات المفهوم ronamosa، الذي يمكن لأي شخص مقارنة نسخه المضمّنة من نسختي أداة التحقق.
• مستنتَج من الطوابع الزمنية والتصميم. أن الإصدار 0.1.5 كان إصدارًا أمنيًا متعمدًا، وأن مساعدًا يُوجَّه بمحتوى غير موثوق قد يوفّر المسار العدائي. ولا تذكر أمازون أيًّا منهما.
• لم يثبت. أي استغلال في الواقع الفعلي. يعود تاريخ عبارة CISA «الاستغلال: لا شيء» إلى 6 أغسطس، أي قبل يومين من ظهور إثبات المفهوم العلني، لذا فهي تتحدث عن تلك اللحظة وليس عن أي شيء بعدها. لم يُنشر أي عدد للمستخدمين المتأثرين أو إشعار للعملاء أو بيانات قياس عن بُعد.
• غير مؤكد.تقارير مستقلة. لا يبدو أن أي وسيلة إعلامية رئيسية قد غطت هذا الـCVE. السجل العام هو وثائق أمازون الثلاث، وإثراءات NIST وCISA لها، وصفحات التتبع التي تعيد سرد السجل، ومستودع واحد صغير لإثبات المفهوم موصوف أعلاه.
ما الذي تغيّر، وما الذي ينبغي التحقق منه
حلّ أمازون هو رفع رقم الإصدار ولا شيء غير ذلك: الترقية إلى 0.1.5 أو أحدث، و«التأكد من ترقيع أي كود متفرّع أو مشتق ليدمج الإصلاحات الجديدة». البند الثاني هو الذي يسري. الخادم مفتوح المصدر، والنسخة المتفرّعة التي أدرجت مُدقِّق 0.1.4 ترث العيب دون أن ترث التنبيه؛ وتطلب النشرة من مشغّلي الكود المشتق نقل التغيير إليه، أي أن إصدار المنبع لا يصل إلى نسخة يحتفظ بها شخص آخر.
يقترح مستودع إثبات المفهوم شيئًا يرفضه التنبيه الأمني. ويقول إن على المشغّلين الذين لا يستطيعون الترقية فورًا تشغيل الخادم مع ضبط دليل عمله على دليل فارغ مخصص، ومعاملة أي ملف يستطيع الكتابة إليه على أنه مخترَق. وموقف أمازون أكثر صرامة: فلا يوجد على الإطلاق أي حل التفافي من جانب الخادم أو يقتصر على التكوين. وحتى وفقًا لما يذكره المستودع نفسه، فإن ذلك الاقتراح ضعيف أيضًا، لأن الشيفرة المعرّضة للخطر لم تقيّد الكتابة بدليل العمل أصلًا. وحيثما يختلف الاثنان، تسود تعليمة المورّد التي لا تنص إلا على الترقية.
الشيء المفيد في هذا السجل ليس درجته. بل بنيته: خادم MCP محلي، وتنزيل مُخرَج بوجهة يحدّدها المستدعي، ولا حدّ فاصل بين الاثنين. والفحص المهم ليس تاريخ النشرة بل الإصدار المثبّت — 0.1.5 أو أحدث، والتغيير نفسه منقول إلى أي تفرّع نسخ المدقّق.
