CVE-2026-9277
shell-quote quote() لا يتحقق من أشكال رموز الكائنات، مما يسمح بحقن الأوامر عبر فواصل الأسطر في .op
- تم النشر
- 22/05/2026
- محدث
- 14/09/2026
- تخصيص CNA
- harborist
- الأدلة المرصودة
- 17/08/2026
CVSS الأساسي
nvd · CVSS 4.0
CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:Xمنخفض · الثلاثين يومًا القادمة
- المئوية
- 56.1%
- تاريخ الموديل
- 21/09/2026
EPSS هو تقدير إحصائي، وليس يقينًا أو مقياسًا للتأثير. ادمجها مع CVSS وحالة KEV والتعرض وبيئتك.
ملخص
# ثغرة في دالة `quote()` في shell-quote لم تكن دالة `quote()` في shell-quote تتحقق من مدخلات رموز الكائنات (object tokens) وفقًا لنموذج العوامل (operator model) المستخدم في `parse()`. كان حقل `.op` يتم تخطي الشرطة المائلة العكسية (backslash-escape) حرفًا بحرف باستخدام `/(.)/g`، والذي لا يطابق في JavaScript محددات نهاية الأسطر (\n، \r، U+2028، U+2029). لذلك، كان محدد نهاية السطر في `.op` يمر دون تخطي إلى المخرجات؛ وتتعامل قذائف POSIX مع السطر الجديد الحرفي كفاصل أوامر، لذا فإن أي محتوى بعده سيُنفَّذ كأمر ثانٍ. يمكن الوصول إلى مسار الكود الضعيف بطريقتين: (1) البناء المباشر لـ `{ op: '...\n...' }` من مدخلات خارجية، و(2) عبر `parse(cmd, envFn)` عندما تُرجع `envFn` رموز كائنات يكون `.op` فيها متأثرًا بالمهاجم. كلاهما سطح API موثّق. تم الإصلاح باستبدال التخطي لكل حرف بالتحقق الصارم من الشكل: يجب أن يطابق `.op` قائمة السماح بعوامل التحكم الخاصة بالمحلل؛ و`{ op: 'glob', pattern }` يتحقق من `pattern` ويمنع محددات نهاية الأسطر؛ و`{ comment }` يتحقق من `comment` ويمنع محددات نهاية الأسطر؛ وأي شكل كائن آخر يرمي `TypeError`.
المصادر
1استغلال إثبات المفهوم لـ CVE-2026-9277، ثغرة حقن أوامر في مكتبة shell-quote. يقوم باجتياز JSON تكراري مع طفرة اندماجية لتفعيل RCE، مع دعم التحقق خارج النطاق وتسجيل بدون ضوضاء.
الاستخدام المسؤول
استخدم معلومات الثغرات الأمنية فقط على الأنظمة التي تمتلكها أو المرخص لها باختبارها. يرتبط Kitploit ببيانات تعريف البحث العامة ولا يخزن أكواد الاستغلال أو الحمولات الضارة.