Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-55511 — تنفيذ التعليمات البرمجية عن بُعد (RCE) في نظام التحكم في المهام Yamcs عبر حقن عبارات Java في معرّفات Yarch SQL ذات علامات الاقتباس المزدوجةتنفيذ التعليمات البرمجية عن بُعد (RCE) في نظام التحكم في المهام Yamcs عبر حقن عبارات Java في معرّفات Yarch SQL ذات علامات الاقتباس المزدوجة | Kitploit
أدوات/GitHubGitHub/junfuture1103/cve-2026-55511
تحليل الثغرات الأمنيةتحليل الكودالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليم
GitHubjunfuture1103/cve-2026-55511

CVE-2026-55511

تنفيذ التعليمات البرمجية عن بُعد (RCE) في نظام التحكم في المهام Yamcs عبر حقن عبارات Java في معرّفات Yarch SQL ذات علامات الاقتباس المزدوجةتنفيذ التعليمات البرمجية عن بُعد (RCE) في نظام التحكم في المهام Yamcs عبر حقن عبارات Java في معرّفات Yarch SQL ذات علامات الاقتباس المزدوجة

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة
عرض المستودعالموقع الإلكتروني
1منذ شهر واحدلم تتم المراجعة بعد

CVE-2026-55511: RCE مصادق عليه في Yamcs StreamSQL

إثبات مفهوم غير مسلّح وتوثيق فني لثغرة CVE-2026-55511، وهي ثغرة حقن كود Java مصادق عليها في مُصرّف تعبيرات التجميع في Yamcs StreamSQL.

الحقلالقيمة
المنتجYamcs (org.yamcs:yamcs-core)
النشرة الأمنيةGHSA-3g44-3m7x-cgg2
نقطة الضعفCWE-94: تحكم غير صحيح في توليد الكود
الخطورةحرجة، CVSS 3.1: 9.1
ناقل الهجومCVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:H/A:H
الصلاحية المطلوبةSystemPrivilege.ControlArchiving
الإصدارات المُصحَّحةYamcs 5.13.2 و5.12.8
تصحيح الفرع الرئيسيb65a3d78178ba99a58b753feda6ecc3b5a694f13

نظرة عامة

تقبل Yamcs أسماءً بين علامتي اقتباس مزدوجتين لكائنات StreamSQL، وفي الإصدارات المتأثرة تسمح بأي محرف تقريبًا داخل تلك الأسماء. تبني تعبيرات التجميع مثل sum(...) كود Java مصدريًا ديناميكيًا باستخدام أسماء الأعمدة، وتُصرّف هذا المصدر باستخدام Janino SimpleCompiler.

يطبّق الكود الضعيف تعقيمًا أدنى للأسماء فقط قبل وضع اسم العمود في معرّف Java مُولَّد. وبالتالي يمكن لمستخدم مصادق عليه يملك صلاحية ControlArchiving إنشاء اسم عمود مُقتبس ومُصمَّم خصيصًا، والوصول إلى مُصرّف التجميع عبر POST /api/archive/{instance}:executeSql، وتنفيذ كود Java متأثر بالمهاجم داخل JVM لخادم Yamcs.

يتجاوز هذا حدّ التفويض المقصود في Yamcs: إذ تسمح صلاحية ControlArchiving بإدارة الأرشيف والجداول والتدفقات، لكنها لا تمنح عن قصد تنفيذ Java عشوائيًا على الخادم.

الإصدارات المتأثرة

خط الإصدارالمتأثرةالمُصحَّحة
5.13.x5.13.1 والإصدارات الأقدم5.13.2
5.12.x5.12.7 والإصدارات الأقدم5.12.8

قم بالترقية إلى Yamcs 5.13.2 أو 5.12.8 أو أي إصدار مدعوم أحدث.

التفاصيل الفنية

مسار البيانات الضعيف هو:

root@kitploit:~
POST /api/archive/{instance}:executeSql
  -> TableApi.executeSql
  -> Yarch StreamSQL parser
  -> double-quoted object name
  -> SelectExpression aggregate binding
  -> SumExpression.aggregateFillCode_newData
  -> Expression.fillCode_InputDefVars
  -> CompilableAggregateExpression.getCompiledAggregate
  -> Janino SimpleCompiler.cook
  -> attacker-influenced Java executes in the Yamcs JVM

تتضافر ثلاثة شروط لإحداث المشكلة:

  1. يقبل النحو الضعيف S_DOUBLE_QUOTED_IDENTIFIER أي محرف باستثناء CR وLF و".
  2. يشتق Expression.fillCode_InputDefVars اسم متغير Java من اسم العمود، وتستبدل الدالة المساعدة sanitizeName فيه الرمزين / و- فقط.
  3. يُصرَّف صنف التجميع المُولَّد ويُحمَّل باستخدام Janino دون صندوق رمل تقييدي للتعبيرات.

يترك هذا محارف Java النحوية مثل الفواصل المنقوطة والمسافات والأقواس وعوامل الإسناد والنقاط متاحة في الطريقة المُولَّدة newData(Tuple). وبخلاف مسار التعبير المباشر، توفر طريقة التجميع سياق عبارات يمكن الوصول إليه يمكن من خلاله للعبارات المُحقونة أن تُصرَّف وتُنفَّذ.

الشروط المسبقة والأثر

يتطلب استغلال الثغرة حسابًا مصادقًا عليه يملك صلاحية SystemPrivilege.ControlArchiving. ويُرفض أي حساب لا يملك هذه الصلاحية عند فحص تفويض TableApi.executeSql.

الاستغلال الناجح ينفذ Java بصلاحيات عملية خدمة Yamcs. واعتمادًا على عزل النشر، قد يؤثر ذلك على سرية بيانات المهمة وسلامتها وتوافرها وعلى بيئة المضيف. وهي ليست ثغرة RCE غير مصادق عليها، ولا ترفع بحد ذاتها صلاحيات عملية Yamcs بما يتجاوز صلاحيات نظام التشغيل أو الحاوية الخاصة بها.

إثبات المفهوم

إن poc.py المرفق غير مسلّح عمدًا:

  • لا يتصل بخادم Yamcs حي؛
  • لا ينفذ أمر نظام تشغيل؛
  • يتحقق من سلسلة المصدر الضعيفة ذات الصلة في نسخة محلية من مصدر Yamcs؛
  • يولّد نموذج Java صغيرًا لنمط توليد كود التجميع؛ و
  • يضبط علامة خاصية JVM غير ضارة فقط.

المتطلبات

  • Python 3.9+
  • نسخة محلية من مصدر Yamcs
  • JDK اختياري (javac وjava) لاختبار العلامة غير الضار

التشغيل

root@kitploit:~
cd /path/to/yamcs
python3 /path/to/poc.py \
  --json /tmp/evidence.json \
  --log /tmp/crash_evidence.log \
  --expect-crash

المؤشرات المتوقعة:

root@kitploit:~
source_chain_confirmed=true
generated_source_injection_present=true
marker_executed=true

الأدلة

  • evidence/evidence.json: نتائج منظمة لسلسلة المصدر ونموذج Java
  • evidence/crash_evidence.log: سجل تحقق موجز

أُنتجت الأدلة المرفقة مقابل التزام مصدر Yamcs 98a05e95461207c143e4297ec4bb1b5a76e9cb19. وتؤكد سلسلة المصدر الضعيفة، وحقن المصدر المُولَّد، وتنفيذ العلامة غير الضار.

التصحيح الرسمي

التصحيح من المصدر الأعلى بعنوان Avoid RCE through double-quoted identifiers:

  • الفرع الرئيسي / 5.13.x: b65a3d78178ba99a58b753feda6ecc3b5a694f13، صدر في 5.13.2
  • النقل العكسي 5.12.x: 8c1070b12c0a6c003903325cb2a1013347e2dbde، صدر في 5.12.8

التغيير الجوهري يقيد المعرّفات بين علامتي اقتباس مزدوجتين من مجموعة محارف شبه غير مقيدة:

root@kitploit:~
< S_DOUBLE_QUOTED_IDENTIFIER: "\"" (~["\n","\r","\""])* "\"" >

إلى قائمة مسموح بها من الحروف والأرقام و$ و_ و# و.:

root@kitploit:~
< S_DOUBLE_QUOTED_IDENTIFIER: "\"" (<LETTER> | <DIGIT> | <SPECIAL_CHARS>)+ "\"" >

يرفض هذا المحارف الفاصلة بين العبارات والبناءة للتعبيرات المطلوبة للحقن المُبلَّغ عنه قبل وصول الاسم إلى توليد كود Java. ويحدّث التصحيح أيضًا ملفات المحلِّل المُولَّدة والوثائق واختبارًا ذا صلة.

قد يؤثر هذا التقييد على أسماء الكائنات المُقتبسة الحالية التي تحتوي مسافات أو علامات ترقيم غير مسموح بها. راجع مخططات StreamSQL والأتمتة قبل الترقية أو النقل العكسي.

التمييز عن CVE-2026-44632

CVE-2026-55511 هي نقطة دخول منفصلة عن CVE-2026-44632 / GHSA-524g-x36v-9wm6. تتعلق CVE-2026-44632 بـJavaExprAlgorithmExecutionFactory، ويُوصل إليها عبر وظيفة تجاوز خوارزميات قاعدة بيانات المهمة، وتتطلب صلاحية ChangeMissionDatabase.

هذه المشكلة موجودة في org.yamcs.yarch.streamsql، ويُوصل إليها عبر executeSql، وتتطلب صلاحية ControlArchiving. ولم يعدّل إصلاح مسار الخوارزمية السابق في 5.13.0 / 5.12.7 مُصرّف StreamSQL أو معالجته للمعرّفات المُقتبسة.

وثائق إضافية

  • VULNERABILITY_REPORT.md: تقرير موسّع عن الثغرة
  • PATCH_ANALYSIS.md: تحليل مفصّل لتصحيح المصدر الأعلى وملاحظات التوافق

المراجع

  • النشرة الأمنية الرسمية من Yamcs: GHSA-3g44-3m7x-cgg2
  • التزام إصلاح الفرع الرئيسي الرسمي
  • التزام إصلاح 5.12.x الرسمي

استخدم هذه المواد فقط في الأنظمة التي تملكها أو المخوّل صراحةً باختبارها.

تنزيل الأداة