شرح آسیبپذیری CVE-2026-9277
تابع quote() در بستهٔ shell-quote، ورودیهای توکن از نوع object را با مدل عملگرهای مورد قبول parse() تطبیق نمیداد. مقدار فیلد .op بهصورت نویسهبهنویسه escape میشد، اما الگوی /(.)/g در JavaScript نویسههای پایان خط، از جمله خط جدید، بازگشت سطر، U+2028 و U+2029 را پوشش نمیدهد. در نتیجه، پایان خط میتوانست بدون escape وارد خروجی شود؛ پوستههای POSIX خط جدید را جداکنندهٔ فرمان میدانند و متن بعد از آن ممکن است بهعنوان فرمان دوم اجرا شود. این مسیر هم هنگام ساخت مستقیم توکن از ورودی خارجی و هم زمانی قابل دسترسی است که envFn در parse(cmd, envFn) توکنهایی با فیلد .op قابلکنترل توسط مهاجم برگرداند. اصلاح، escape نویسهای را با اعتبارسنجی سختگیرانهٔ ساختار جایگزین میکند: عملگر باید در فهرست مجاز parser باشد، مقادیر pattern و comment اعتبارسنجی شوند و پایان خط نداشته باشند؛ سایر ساختارها نیز با TypeError رد میشوند.
شرایط بهرهبرداری و اثر امنیتی CVE-2026-9277
جدول زیر تفسیر فارسی بردار CVSS ثبتشده برای همین شناسه است. این اطلاعات، امتیازدهی منبع را توضیح میدهد و گزارش آزمایش عملی یا تأیید نفوذ به یک سازمان نیست.
| شاخص | مقدار مرجع | تفسیر |
|---|---|---|
| مسیر دسترسی مهاجم | AV:N | شبکه؛ دسترسی شبکهای به مؤلفهٔ آسیبپذیر لازم است. |
| پیچیدگی حمله | AC:L | کم در مدل امتیازدهی؛ این مقدار بهمعنی وجود اکسپلویت عمومی یا موفقیت قطعی نیست. |
| سطح دسترسی اولیه | PR:N | بدون امتیاز قبلی در مؤلفهٔ آسیبپذیر. |
| تعامل کاربر | UI:N | تعامل کاربر دیگری لازم نیست. |
| پیششرط حمله | AT:P | شرایط خاص استقرار یا اجرای هدف لازم است. |
| محرمانگی سیستم آسیبپذیر | VC:H | اثر زیاد |
| یکپارچگی سیستم آسیبپذیر | VI:H | اثر زیاد |
| دسترسپذیری سیستم آسیبپذیر | VA:H | اثر زیاد |
| محرمانگی سیستم بعدی | SC:N | بدون اثر ثبتشده |
| یکپارچگی سیستم بعدی | SI:N | بدون اثر ثبتشده |
| دسترسپذیری سیستم بعدی | SA:N | بدون اثر ثبتشده |
بردار کامل: 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
مرجع امتیاز: 7ffcee3d-2c14-4c3e-b844-86c6a321a158. راهنمای استاندارد CVSS در FIRST
نوع ضعف و نکتهٔ فنی
CWE-77 — تزریق فرمان
دادهٔ قابلکنترل میتواند در زمینهٔ یک دستور تفسیر شود. محدودکردن دسترسی حساب سرویس، کنترل جبرانی است و اصلاح جداسازی داده از دستور را جایگزین نمیکند.
CWE-78 — تزریق فرمان سیستمعامل
ورودی غیرقابلاعتماد ممکن است بر فرمان سیستمعامل اثر بگذارد. مسیر اجرای پردازشهای فرزند و کنترل دسترسی حساب سرویس، موضوع بررسی دفاعی است.
دامنهٔ محصولات و نسخههای درگیر
محصول مرجع: shell-quote؛ سازنده: Red Hat؛ پلتفرمهای ثبتشده: JavaScript.
- shell-quote ≥ 1.1.0 < 1.8.4
نشانههای ≥ و ≤ شامل نسخهٔ مرزی هستند؛ > و < آن نسخه را شامل نمیشوند. این فهرست، خلاصهٔ دادهٔ منبع است: شروط ترکیبی CPE، ویژگیهای فعال و بستههای دارای وصلهٔ backport باید در اطلاعیهٔ سازنده تطبیق داده شوند. پایان یک بازه را بدون تأیید سازنده، نسخهٔ وصلهشده فرض نکنید.
برنامهٔ رفع و اعتبارسنجی برای shell-quote
مراحل زیر پیشنهاد عملیاتی سلام دیجی برای ارزیابی دفاعی هستند؛ نسخهٔ اصلاحشده و دستور اجرایی نهایی را از اطلاعیهٔ رسمی همین CVE بگیرید.
- تعیین داراییهای درگیر: نسخه، شمارهٔ build، بستهٔ توزیع، نقش سرویس و مؤلفهٔ فعال را ثبت کنید. اگر محصول بخشی از وابستگی نرمافزاری است، نسخهٔ واقعاً مستقرشده را بررسی کنید، نه فقط فایل پروژه.
- بررسی مواجههٔ شبکهای: مسیر دسترسی به shell-quote را از اینترنت، شبکههای داخلی و واسطهای معکوس مشخص کنید. محدودسازی موقت دسترسی فقط یک کنترل جبرانی است و جای وصله را نمیگیرد.
- آزمون و اجرای اصلاح: از تنظیمات نسخهٔ پشتیبان بگیرید، مسیر بازگشت را مشخص کنید و وصلهٔ تأییدشدهٔ سازنده را ابتدا روی محیط کنترلشده آزمایش کنید. اگر راهاندازی مجدد لازم است، آن را در برنامهٔ تغییر بگنجانید.
- بررسی رخداد: لاگهای سرویس، احراز هویت، تغییر تنظیمات و هشدارهای میزبان را در بازهٔ مواجهه نگه دارید. توقف غیرعادی، تغییر فایل یا خروجی غیرمنتظره صرفاً سرنخ است؛ بدون همبستگی شواهد، آن را اثبات بهرهبرداری از CVE-2026-9277 ندانید.
- بستن پرونده با شواهد: نسخه و تنظیمات پس از اصلاح، نتیجهٔ بررسی غیرمخرب، زمان تغییر و مسئول اقدام را ثبت کنید. تست بهرهبرداری روی سرویس تولیدی لازم نیست؛ از روش اعتبارسنجی مورد تأیید سازنده روی دارایی مجاز استفاده کنید.
وضعیت شواهد و محدودیت گزارش
- ثبت بهرهبرداری واقعی در دادهٔ موجود تأیید نشده است. وضعیت نامشخص یا نبودن در KEV، نبود اکسپلویت یا امن بودن محصول را ثابت نمیکند.
- این گزارش ادعای مشاهدهٔ حمله، فهرست IOC اختصاصی یا ارائهٔ قانون تشخیص آزمایششده ندارد.
- اطلاعیهٔ جدید سازنده میتواند دامنهٔ نسخهها یا راهکار را تغییر دهد. تاریخ بهروزرسانی منبع را در انتهای صفحه بررسی کنید.
آموزش Splunk برای تحلیل لاگ و همبستگی رخدادها · جستوجوی آسیبپذیریها بر اساس سازنده و پلتفرم