خانه » CVE-2025-1691

CVE-2025-1691

MongoDB Shell may be susceptible to Control Character Injection via autocomplete

توسط Vulnerbyte Alerts
212 بازدید
هشدار سایبری CVE-2025-1691

چکیده

آسیب‌پذیری تزریق کاراکترهای کنترلی (Control Character Injection) در قابلیت تکمیل خودکار (Autocomplete) شل mongosh شناسایی شده است. مهاجمی که کنترل کامل یا جزئی یک کلاستر MongoDB را در اختیار داشته باشد، می‌تواند ورودی‌های تکمیل خودکار مخرب را در محیط شل تزریق کند. در صورتی که کاربر هنگام کار با شل، کلید Tab را برای Autocomplete می‌فشارد، متن مخربِ مبهم‌سازی‌شده به‌صورت نامحسوس در خط فرمان تزریق شده و توسط ترمینال اجرا می‌شود.

توضیحات

آسیب‌پذیری CVE-2025-1691 از نوع خنثی‌سازی نامناسب المنت های خاص در خروجی مورد استفاده یک کامپوننت بعدی (Injection) مطابق با CWE-74 است. این ضعف در مکانیزم تکمیل خودکار (Autocomplete) شل mongosh رخ می‌دهد؛ جایی‌که کلاینت برای ارائه پیشنهادهای تکمیل خودکار، اطلاعات مربوط به نام کالکشن‌ها، فیلدها و سایر موجودیت‌ها را مستقیماً از سرور دریافت می‌کند.

در نسخه‌های آسیب‌پذیر، داده‌های دریافتی از سرور بدون هیچ‌گونه فیلتر یا خنثی‌سازی مناسب برای کاراکترهای کنترلی ANSI و سایر کاراکترهای غیرقابل چاپ پردازش شده و به‌صورت مستقیم به ترمینال کاربر ارسال می‌شوند. این موضوع باعث می‌شود که ترمینال، این کاراکترها را به‌عنوان دستورهای کنترلی اجرا کند.

مهاجمی که کنترل کامل یا جزئی یک کلاستر MongoDB را در اختیار داشته باشد، می‌تواند نام کالکشن‌ها یا فیلدهایی ایجاد کند که حاوی کاراکترهای کنترلی مخرب هستند. زمانی که کاربر قربانی با mongosh به چنین کلاستری متصل شود و در هنگام تایپ، کلید Tab را برای فراخوانی Autocomplete فشار دهد، پیشنهاد دریافتی شامل این کاراکترها فعال شده و ترمینال آن‌ها را اجرا می‌کند. اجرای این کاراکترهای کنترلی می‌تواند پیامدهای مختلفی از جمله پاک کردن یا بازنویسی صفحه ترمینال، ایجاد خروجی جعلی یا نمایش پیام‌های جعلی (مانند پیام‌های سیستم یا لاگین)، ثبت پنهانی کلیدهای فشرده‌شده کاربر (Key Logging) در برخی ترمینال‌های آسیب‌پذیر، اجرای دستورات خودکار در پس‌زمینه در محیط‌هایی که از توالی‌های ANSI گسترده پشتیبانی می‌کنند و گمراه کردن کاربر یا تغییر محتوای نمایش‌داده‌شده جهت فریب و مهندسی اجتماعی را به همراه داشته باشد.

بهره‌برداری از این ضعف نیازمند شرایط خاصی است. مهاجم باید کنترل کلاستر (کامل یا جزئی) را داشته باشد و قربانی باید با mongosh به همان کلاستر متصل شده و از Autocomplete استفاده کند؛ به همین دلیل تأثیر واقعی این آسیب‌پذیری بیشتر در محیط‌های چندکاربره، کلاسترهای غیرقابل اعتماد، محیط‌های آزمایشی اشتراکی یا کلاسترهای در معرض ریسک، دیده می‌شود.

این آسیب‌پذیری تمام نسخه‌های mongosh پیش از 2.3.9 را تحت تأثیر قرار می‌دهد و در نسخه 2.3.9 با اعمال فیلتر مناسب برای کاراکترهای کنترلی و تقویت مسیر پردازش Autocomplete به‌طور کامل پچ شده است.

CVSS

Score Severity Version Vector String
7.6 HIGH 3.1 CVSS:3.1/AV:N/AC:H/PR:H/UI:R/S:C/C:H/I:H/A:H

لیست محصولات آسیب پذیر

Versions Product
affected from 0 before 2.3.9 mongosh

لیست محصولات بروز شده

Versions Product
2.3.9 mongosh

استفاده محصول در ایران

در این جدول، تعداد صفحات ایندکس‌شده در گوگل با دامنه .ir که mongosh را ذکر کرده اند، ثبت شده است. این داده صرفاً برای برآورد تقریبی حضور محصولات در وب ایران استفاده شده و نمایانگر میزان نصب دقیق و استفاده واقعی نیست.

Approx. Usage in .ir Domain via Google

(Total Pages)

Search Query (Dork) Product
616 site:.ir “mongosh” mongosh

نتیجه گیری

این آسیب‌پذیری با شدت بالا، این امکان را فراهم می‌کند که مهاجمی که کنترل کامل یا جزئی یک کلاستر MongoDB را در اختیار دارد، بتواند ورودی‌های تکمیل خودکار مخرب را در شل کاربر تزریق کند. با توجه به انتشار پچ رسمی اقدامات زیر برای کاهش ریسک و جلوگیری از حملات مشابه توصیه می‌شود:

  • به‌روزرسانی فوری: تمام کلاینت‌های mongosh را به نسخه 2.3.9 یا بالاتر به روزرسانی کنید. این اقدام، مؤثرترین و قطعی‌ترین راهکار برای رفع آسیب‌پذیری است و باید در اولویت قرار گیرد. سایر اقدامات نقش مکمل را دارند و می‌توانند به کاهش ریسک این آسیب پذیری و مقابله با حملات مشابه کمک کنند.
  • اتصال فقط به کلاسترهای معتبر (Trusted Clusters): یک سیاست سازمانی مشخص تدوین کنید که براساس آن کاربران تنها به کلاسترهای مطمئن و تأییدشده متصل شوند. اتصال به کلاسترهای ناشناخته یا تحت کنترل شخص ثالث، ریسک بهره‌برداری را افزایش می‌دهد.
  • غیرفعال‌سازی تکمیل خودکار (Autocomplete) در محیط‌های پرریسک: در محیط‌هایی که احتمال اتصال به کلاسترهای غیرقابل‌اعتماد وجود دارد، قابلیت Autocomplete را غیرفعال کنید. این کار را می‌توان با تنظیم متغیر محیطی MONGOSH_NO_AUTOCOMPLETE=1 یا اجرای mongosh با گزینه–no-autocomplete انجام داد.
  • استفاده از ترمینال‌های ایمن (Safe Terminals): از ترمینال‌هایی استفاده کنید که کاراکترهای کنترلی (Control Characters) را به‌صورت پیش‌فرض فیلتر یا خنثی می‌کنند. برای مثال برخی پیکربندی‌های iTerm2 محیط‌های tmux با گزینه امنیتی پاک‌سازی یا خنثی سازی. این موضوع ریسک اجرای توالی‌های مخرب ANSI را کاهش می‌دهد.
  • آموزش کاربران: به توسعه‌دهندگان و ادمین‌ها آموزش دهید که در محیط‌های اشتراکی، آزمایشی یا کلاسترهای غیرقابل‌اعتماد، از فشردن کلید Tab برای Autocomplete خودداری کنند. عدم استفاده از Autocomplete در چنین محیط‌هایی عملاً مسیر سوءاستفاده را مسدود می‌کند.
  • مانیتورینگ و جلوگیری از نام‌گذاری مشکوک: در کلاسترهای حساس، ایجاد نام‌های حاوی کاراکترهای غیرقابل چاپ یا کنترلی را با استفاده از Validation Schema محدود یا ممنوع کنید. این کار از وارد شدن داده‌های مخرب به مسیر Autocomplete جلوگیری می‌کند.

به‌روزرسانی سریع، محدودسازی اتصال به کلاسترهای معتبر و مدیریت صحیح Autocomplete، ریسک ناشی از این آسیب‌پذیری را به حداقل می‌رساند و امنیت استفاده از mongosh را در برابر حملات تزریق کاراکترهای کنترلی تضمین می‌کند.

امکان استفاده در تاکتیک های Mitre Attack

Initial Access (TA0001)

ورود اولیه زمانی رخ می‌دهد که کاربر به یک کلاستر MongoDB متصل می‌شود که قبلاً توسط مهاجم کنترل شده یا بخشی از داده‌های آن دستکاری شده است. مهاجم نیاز به حمله شبکه‌ای مستقل ندارد؛ تنها کافی است قربانی به یک سرور آلوده وصل شود. نام‌گذاری مخرب روی کالکشن‌ها یا فیلدها مسیر ورود Payload را در لایه Autocomplete فعال می‌کند و همین نقطه ورودی حمله است.

Execution (TA0002)

اجرای حمله زمانی انجام می‌شود که کاربر کلید Tab را فشار می‌دهد و Autocomplete داده‌های آلوده را در ترمینال رندر می‌کند. کاراکترهای ANSI تزریق‌شده به‌عنوان دستور کنترلی اجرا می‌شوند و منجر به عملکردهای ناخواسته مانند بازنویسی صفحه، اجرای توالی‌های مخفی، ایجاد خروجی جعلی یا حتی اجرای پس‌زمینه‌ای دستوراتی در برخی ترمینال‌های سازگار می‌شود.

Impact (TA0040)

تأثیر نهایی حمله شامل گمراه‌سازی کاربر، جعل خروجی، اجرای مخفیانه توالی‌های کنترلی، دستکاری صفحه ترمینال، حملات مهندسی اجتماعی، ثبت کلیدهای فشرده‌شده و ایجاد محیطی است که کاربر دیتا یا کامند اشتباه وارد کند. این حمله integrity و availability هر دو را می‌زند و در صورت وجود ترمینال‌های پشتیبان استانداردهای ANSI، امکان اجرای رفتار شبه‌فرمانی نیز وجود دارد Patch رسمی تنها راه حذف کامل بردار حمله است.

منابع

  1. https://www.cve.org/CVERecord?id=CVE-2025-1691
  2. https://www.cvedetails.com/cve/CVE-2025-1691/
  3. https://jira.mongodb.org/browse/MONGOSH-2024
  4. https://vulmon.com/vulnerabilitydetails?qid=CVE-2025-1691
  5. https://vuldb.com/?id.297839
  6. https://nvd.nist.gov/vuln/detail/cve-2025-1691
  7. https://cwe.mitre.org/data/definitions/74.html

همچنین ممکن است دوست داشته باشید

پیام بگذارید