VULNERABILITY BRIEFCVE-2026-9277

CVE-2026-9277؛ تزریق فرمان به‌علت اعتبارسنجی ناکافی در shell-quote

شدتبحرانیCVSS 9.2
محصول درگیرshell-quote
سازنده—
بهره‌برداری شناخته‌شدهدر آخرین بررسی KEV نبودبررسی: 2026-10-01
EPSS1,0٪منبع: FIRST
خلاصه مدیریتی

تابع quote() در بستهٔ shell-quote، ورودی‌های توکن از نوع object را با مدل عملگرهای مورد قبول parse() تطبیق نمی‌داد. مقدار فیلد .op به‌صورت نویسه‌به‌نویسه escape می‌شد، اما الگوی /(.)/g در JavaScript نویسه‌های پایان خط، از جمله خط جدید، بازگشت سطر، U+2028 و U+2029 را پوشش نمی‌دهد. در نتیجه، پایان خط…

پلتفرم: JavaScript
خلاصهٔ فارسی با کمک هوش مصنوعی؛ بر اساس منابع رسمی. جزئیات نسخه‌ها و راهکارها را با اطلاعیهٔ سازنده تطبیق دهید.

شرح آسیب‌پذیری 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 بگیرید.

  1. تعیین دارایی‌های درگیر: نسخه، شمارهٔ build، بستهٔ توزیع، نقش سرویس و مؤلفهٔ فعال را ثبت کنید. اگر محصول بخشی از وابستگی نرم‌افزاری است، نسخهٔ واقعاً مستقرشده را بررسی کنید، نه فقط فایل پروژه.
  2. بررسی مواجههٔ شبکه‌ای: مسیر دسترسی به shell-quote را از اینترنت، شبکه‌های داخلی و واسط‌های معکوس مشخص کنید. محدودسازی موقت دسترسی فقط یک کنترل جبرانی است و جای وصله را نمی‌گیرد.
  3. آزمون و اجرای اصلاح: از تنظیمات نسخهٔ پشتیبان بگیرید، مسیر بازگشت را مشخص کنید و وصلهٔ تأییدشدهٔ سازنده را ابتدا روی محیط کنترل‌شده آزمایش کنید. اگر راه‌اندازی مجدد لازم است، آن را در برنامهٔ تغییر بگنجانید.
  4. بررسی رخداد: لاگ‌های سرویس، احراز هویت، تغییر تنظیمات و هشدارهای میزبان را در بازهٔ مواجهه نگه دارید. توقف غیرعادی، تغییر فایل یا خروجی غیرمنتظره صرفاً سرنخ است؛ بدون هم‌بستگی شواهد، آن را اثبات بهره‌برداری از CVE-2026-9277 ندانید.
  5. بستن پرونده با شواهد: نسخه و تنظیمات پس از اصلاح، نتیجهٔ بررسی غیرمخرب، زمان تغییر و مسئول اقدام را ثبت کنید. تست بهره‌برداری روی سرویس تولیدی لازم نیست؛ از روش اعتبارسنجی مورد تأیید سازنده روی دارایی مجاز استفاده کنید.

وضعیت شواهد و محدودیت گزارش

  • وضعیت به‌روزشدهٔ CISA KEV و EPSS و تاریخ بررسی را در شاخص‌های ریسک بالای همین صفحه ببینید. ثبت در KEV مدرک نفوذ به دارایی شما نیست؛ نبودن در این فهرست نیز نبود اکسپلویت یا امن بودن محصول را ثابت نمی‌کند.
  • این گزارش ادعای مشاهدهٔ حمله، فهرست IOC اختصاصی یا ارائهٔ قانون تشخیص آزمایش‌شده ندارد.
  • اطلاعیهٔ جدید سازنده می‌تواند دامنهٔ نسخه‌ها یا راهکار را تغییر دهد. تاریخ به‌روزرسانی منبع را در انتهای صفحه بررسی کنید.

آموزش Splunk برای تحلیل لاگ و هم‌بستگی رخدادها · جست‌وجوی آسیب‌پذیری‌ها بر اساس سازنده و پلتفرم

متن اصلی شرح آسیب‌پذیری برای تطبیق فنی

متن مرجع انگلیسی؛ نام محصول، نسخه‌ها و پیش‌شرط‌ها را می‌توانید با ترجمه مقایسه کنید.

shell-quote's `quote()` function did not validate object-token inputs against the operator model used by `parse()`. The `.op` field was backslash-escaped character by character using `/(.)/g`, which in JavaScript does not match line terminators (\n, \r, U+2028, U+2029). A line terminator in `.op` therefore passed through unescaped into the output; POSIX shells treat a literal newline as a command separator, so any content after it would execute as a second command. The vulnerable code path is reachable in two ways: (1) direct construction of `{ op: '...\n...' }` from external input, and (2) via `parse(cmd, envFn)` when `envFn` returns object tokens whose `.op` is attacker-influenced. Both are documented API surface. Fixed by replacing the per-character escape with strict shape validation: `.op` must match the parser's control-operator allowlist; `{ op: 'glob', pattern }` validates `pattern` and forbids line terminators; `{ comment }` validates `comment` and forbids line terminators; any other object shape throws `TypeError`.
DETECTION RULES

قوانین تشخیص CVE-2026-9277

برای تهیهٔ APTGuard XTI و بررسی دسترسی به قوانین تشخیص به وب‌سایت APTGuard مراجعه کنید. پوشش قانون برای این CVE را پیش از تهیه از ارائه‌دهنده استعلام کنید.

مشاهدهٔ APTGuard XTI و اطلاعات تهیه

مطالعهٔ گزارش آزاد است؛ دریافت، ترجمه و انتشار سلام دیجی مستقل از APTGuard انجام می‌شود.

منابع و تاریخ اطلاعات

برای وضعیت وصله و نسخه‌های دقیق، اطلاعیهٔ سازنده را در اولویت قرار دهید. NVD

افشا: 2026-05-22به‌روزرسانی منبع: 2026-09-07به‌روزرسانی صفحه: 1405-06-16تاریخ EPSS: 2026-09-29

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
منبع CVSS: 7ffcee3d-2c14-4c3e-b844-86c6a321a158