خانه » CVE-2025-14847

CVE-2025-14847

Zlib compressed protocol header length confusion may allow memory read

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

چکیده

آسیب‌پذیری در MongoDB Server ناشی از مدیریت نادرست طول فیلدها در هدرهای پروتکل فشرده‌سازی‌شده با Zlib است. این ضعف امنیتی به مهاجمان بدون نیاز به احراز هویت اجازه می‌دهد تا از راه دور بخشی از حافظه هیپ مقداردهی‌نشده (Uninitialized Heap Memory) سرور را خوانده و اطلاعات حساس را افشا کنند.

توضیحات

آسیب‌پذیری CVE-2025-14847 ناشی از مدیریت نادرست ناسازگاری فیلدهای طول (Length Fields) در هدر پیام‌های فشرده‌سازی‌شده با الگوریتم Zlib مطابق باCWE-130 است. Zlib کتابخانه‌ای پرکاربرد برای فشرده‌سازی داده‌ها با هدف کاهش حجم ترافیک شبکه محسوب می‌شود. . این ضعف در لایه پروتکل ارتباطی MongoDB Server رخ می‌دهد؛ جایی که پیام‌های شبکه‌ای فشرده‌شده پیش از پردازش منطقی، فشرده‌زدایی (Decompression) می‌شوند.

در سناریوی آسیب‌پذیر، یک کلاینت بدون احراز هویت می‌تواند پیامی فشرده‌شده ارسال کند که در آن مقدار طول داده بدون فشرده‌سازی (Uncompressed Size) به‌صورت غیرواقعی و بسیار بزرگ‌تر از داده واقعی اعلام شده است. سرور MongoDB با اعتماد به این مقدار اعلام‌شده، یک بافر بزرگ در حافظه هیپ تخصیص می‌دهد. پس از انجام فرآیند فشرده‌زدایی توسط Zlib، داده واقعی تنها در ابتدای بافر کپی و ذخیره می‌شود، اما به دلیل وجود ضعف منطقی در اعتبارسنجی طول واقعی داده، سرور به‌اشتباه کل بافر تخصیص‌یافته، شامل بخش‌های مقداردهی‌نشده حافظه را به‌عنوان داده معتبر در نظر می‌گیرد.

در مرحله بعد، هنگام پردازش اسناد BSON (فرمت باینری مورد استفاده MongoDB برای ذخیره و تبادل داده)، موتور پردازش MongoDB تلاش می‌کند نام فیلدها را از محتوای این بافر استخراج کند. این فرآیند باعث می‌شود داده‌ها از بخش‌های مقداردهی‌نشده حافظه هیپ تا رسیدن به بایت NULL خوانده شوند. در نتیجه، بخش‌هایی از حافظه داخلی سرور افشا می‌شود که می‌تواند شامل اطلاعات حساس نظیر لاگ‌های داخلی MongoDB، وضعیت و پیکربندی موتور ذخیره‌سازی WiredTiger، داده‌های سیستمی موجود در مسیر ‎/proc‎ (از جمله اطلاعات حافظه و شبکه)، مسیرهای فایل در محیط‌های کانتینری Docker، شناسه‌های یکتای اتصال (Connection UUIDs) و حتی آدرس‌های IP کلاینت‌ها باشد.

این ضعف قابل خودکارسازی و بهره‌برداری است؛ مهاجم می‌تواند از راه دور، تنها با دسترسی شبکه‌ای به پورت پیش‌فرض MongoDB (27017) و بدون نیاز به احراز هویت یا تعامل کاربر، درخواست‌های دستکاری‌شده متعددی ارسال کرده و به‌صورت تدریجی بخش‌های مختلف حافظه هیپ سرور را استخراج کند. کد اثبات مفهومی (PoC) این آسیب‌پذیری به‌صورت عمومی منتشر شده است که نشان می‌دهد مهاجم چگونه می‌تواند با ارسال پیام‌های BSON دستکاری‌شده و مقادیر طول غیرواقعی در فرآیند فشرده‌زدایی با Zlib، سرور MongoDB را وادار به خواندن داده‌های خارج از محدوده معتبر کند. این فرآیند منجر به خواندن حافظه هیپ مقداردهی‌نشده و استخراج اطلاعات حساس از حافظه سرور می‌شود. وجود این کد اثبات مفهومی، امکان بهره‌برداری عملی و خودکار از آسیب‌پذیری را به‌طور قابل‌توجهی افزایش می‌دهد. MongoDB این ضعف را با اعمال اصلاحات امنیتی در نسخه‌های جدید و بهبود منطق مدیریت بافرها در دسامبر 2025 به‌طور کامل پچ کرده است.

CVSS

Score Severity Version Vector String
8.7 HIGH 4.0 CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N
7.5 HIGH 3.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N

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

Versions Product
affected from 8.2 before 8.2.3

affected from 8.0 before 8.0.17

affected from 7.0 before 7.0.28

affected from 6.0 before 6.0.27

affected from 5.0 before 5.0.32

affected from 4.4 before 4.4.30

affected at 4.2

affected at 4.0

affected at 3.6

MongoDB Server

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

Versions Product
4.4.30, 5.0.32, 6.0.27, 8.2.3, 8.0.17, 7.0.28 MongoDB Server

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

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

Approx. Usage in .ir Domain via Google

(Total Pages)

Search Query (Dork) Product
211,000 site:.ir “MongoDB” MongoDB

نتیجه گیری

این آسیب‌پذیری با شدت بالا، به دلیل امکان بهره‌برداری از راه دور و بدون نیاز به احراز هویت، منجر به افشای اطلاعات حساس از حافظه سرور می‌شود. با توجه به انتشار عمومی PoC و ارائه پچ رسمی از سوی MongoDB، اجرای اقدامات زیر برای جلوگیری از سوءاستفاده و کاهش سطح ریسک ضروری است:

  • به‌روزرسانی فوری: تمامی نمونه‌های آسیب‌پذیر MongoDB Server را در اسرع وقت به نسخه‌های 2.3، 8.0.17، 7.0.28، 6.0.27، 5.0.32 یا 4.4.30 به‌روزرسانی کنید. این اقدام مؤثرترین و قطعی‌ترین راهکار برای رفع آسیب‌پذیری است و باید در اولویت قرار گیرد. سایر اقدامات نقش مکمل را دارند و می‌توانند به کاهش ریسک این آسیب پذیری و مقابله با حملات مشابه کمک کنند.
  • غیرفعال کردن فشرده‌سازی Zlib (راهکار موقت): در صورت عدم امکان به‌روزرسانی فوری، توصیه می‌شود فشرده‌سازی Zlib را در پیکربندی سرور غیرفعال کنید. برای این منظور می‌توان گزینه‌های networkMessageCompressors یا compression.compressors را به مقادیری مانند snappy، zstd یا disabled تنظیم کرد. این اقدام سطح حمله مرتبط با پردازش پیام‌های فشرده‌شده را به‌طور محسوسی کاهش می‌دهد.
  • محدودسازی دسترسی شبکه: دسترسی به پورت MongoDB (به‌صورت پیش‌فرض 27017) باید صرفاً به شبکه‌های داخلی و آدرس‌های IP مورد اعتماد محدود شود. همچنین، استفاده از فایروال، شبکه‌های خصوصی مجازی (VPN) یا شبکه‌های خصوصی ابری (VPC) ضروری است تا از قرار گرفتن سرویس MongoDB در معرض دسترسی آزاد اینترنت و اتصال مستقیم کاربران ناشناس جلوگیری شود.
  • مانیتورینگ و تشخیص: از سیستم‌های تشخیص نفوذ (IDS) و راهکارهای تشخیص و پاسخ در سطح شبکه (NDR) برای شناسایی ترافیک غیرعادی حاوی هدرهای Zlib دستکاری‌شده استفاده کنید. همچنین لاگ‌های اتصالات MongoDB را به‌طور منظم بررسی نمایید.
  • اصل حداقل دسترسی و امنیت محیط های کانتینری: در محیط‌های کانتینری مانند Docker یا Kubernetes، سیاست اصل حداقل دسترسی را برای سرویس‌های MongoDB اعمال کنید و اطمینان حاصل نمایید که دسترسی‌های غیرضروری حذف شده و داده‌های حساس در حافظه یا لاگ‌ها باقی نمی‌مانند.

اجرای سریع به‌روزرسانی همراه با محدودسازی دسترسی شبکه، ریسک ناشی از این آسیب‌پذیری را به طور قابل توجهی کاهش داده و سطح امنیت کلی زیرساخت‌های مبتنی بر MongoDB را افزایش می‌دهد.

امکان استفاده در تاکتیک های Mitre Attack (در زمان اجرای حمله)

Initial Access (TA0001)
در یک سناریوی کلی، مهاجم می‌تواند با ارسال پیام‌های فشرده‌شده حاوی هدرهای zlib دست‌کاری‌شده به سرویس MongoDB در پورت پایگاه‌داده، بدون نیاز به احراز هویت و تعامل کاربر، ارتباط کلاینت به ظاهر عادی برقرار کرده و در چارچوب ترافیک معمول برنامه به سامانه نزدیک شود؛ این نوع استفاده از ضعف تنها زمانی امکان‌پذیر است که نمونه‌های MongoDB نسخه‌های آسیب‌پذیر را در معرض شبکه (به‌ویژه اینترنت یا سگمنت‌های کم‌اعتماد) قرار داده باشند، هیچ‌گونه احراز هویت اجباری روی ارتباطات فعال نباشد، تنظیمات شبکه مانند فایروال، لیست‌های کنترل دسترسی یا تونل‌های امن، سطح دسترسی به پورت پایگاه‌داده را محدود نکرده باشند و سیاست‌های سخت‌گیرانه در خصوص جداسازی سرویس‌های دیتابیس از ترافیک عمومی رعایت نشده باشد.

Discovery / Collection (TA0009 / TA0007)
به صورت عمومی، این آسیب‌پذیری که ناشی از مدیریت نادرست طول فیلدها در هدرهای فشرده‌شده پروتکل است، به مهاجم اجازه می‌دهد با ساخت درخواست‌های متوالی و مغایر با طول واقعی داده، بخش‌هایی از حافظه heap را بدون داشتن هیچ سطح دسترسی و صرفاً از راه شبکه بخواند و از این طریق، در خلال اجرای حمله به تدریج به اطلاعاتی نظیر قطعات داده، ساختارهای حافظه، توکن‌ها یا بخش‌هایی از داده‌های حساس موجود در پروسه دست یابد؛ تحقق چنین سناریویی مستلزم آن است که نسخه‌های آسیب‌پذیر MongoDB بدون وصله، در محیط‌های عملیاتی حساس در حال استفاده باشند، رمزنگاری لایه انتقال و مکانیزم‌های محافظت در برابر ناهنجاری پروتکل به‌خوبی پیاده‌سازی نشده باشند، محدودیت شدیدی بر نرخ درخواست‌ها یا الگوهای غیرعادی در گیت‌وی‌ها و WAF اعمال نشود و همچنین لاگ‌برداری سطح پروتکل و تحلیل رفتاری ترافیک برای تشخیص درخواست‌های با طول‌های غیرمنطقی یا الگوهای آزمون حافظه فعال نباشد.

Credential Access (TA0006)
در یک رویکرد کلی، مهاجم می‌تواند از قابلیت خواندن حافظه اولیه استفاده کرده و با تکرار درخواست‌های ساخته‌شده، به دنبال قطعات حافظه‌ای بگردد که احتمالاً حاوی داده‌های شبه‌اعتباری نظیر توکن‌های نشست، رشته‌های متنی ارتباطی، بخش‌هایی از تنظیمات در حافظه، یا سایر پارامترهایی باشند که در مراحل بعدی حمله به‌عنوان سرنخ برای دستیابی به مکانیزم‌های احراز هویت یا راه‌اندازی حملات پیچیده‌تر مورد سوءاستفاده قرار گیرد؛ امکان تحقق چنین هدفی زمانی واقعی‌تر می‌شود که فرآیند MongoDB در حال پردازش درخواست‌های حساس باشد و داده‌های مهم به‌طور مکرر در حافظه در دسترس باقی بمانند، استفاده از رمزنگاری انتها‌به‌انتها برای مقادیر حساس در درون برنامه به‌درستی انجام نشده باشد، زمان نگه‌داری داده‌های سری در حافظه طولانی باشد و هیچ راهکار مانیتورینگ پیشرفته‌ای جهت شناسایی دسترسی‌های غیرعادی یا نشت داده در سطح برنامه و پایگاه‌داده پیاده نشده باشد.

Exfiltration (TA0010)
به شکل انتزاعی، مهاجم قادر است پس از یافتن الگوهای مفید در داده‌های نشت‌یافته از heap، از همین کانال ارتباطی پایگاه‌داده برای ادامه استخراج تدریجی حجم بیشتری از اطلاعات حساس استفاده کند و با گسترش حمله، داده‌های به‌دست‌آمده را در قالب پاسخ‌های ظاهراً عادی به بیرون منتقل نماید، به‌طوری که روند خروج اطلاعات در قالب ترافیک مشروع خواندن از پایگاه‌داده یا تبادل پیام‌های فشرده‌شده پنهان باشد؛ چنین بهره‌برداری مستلزم آن است که کنترل‌های خروجی شبکه (egress filtering) محدودکننده نباشند، نظارت متمرکز بر ترافیک دیتابیس و تحلیل الگوی حجم و نوع پاسخ‌ها صورت نگیرد، مکانیزم‌های تشخیص نشت داده (DLP) برای ترافیک برنامه‌ای فعال نباشند و تیم عملیات امنیتی، هشدارهای مبتنی بر انحراف در رفتار عادی پایگاه‌داده یا افزایش غیرمعمول حجم پاسخ‌های شامل داده‌های حساس را به صورت هوشمندانه پایش نکند.

Impact (TA0040)
در صورت استفاده عملیاتی از این ضعف و نشت پیوسته داده از حافظه فرآیند MongoDB بدون نیاز به احراز هویت، پیامدها از منظر سازمان می‌تواند شامل افشای خاموش و تدریجی اطلاعات حیاتی ذخیره یا پردازش‌شده در پایگاه‌داده، از جمله داده‌های شخصی، رکوردهای تجاری، بخش‌هایی از کلیدها یا توکن‌های امنیتی و هرگونه اطلاعات حساس دیگری باشد که در لحظه در حافظه حضور دارد؛ این وضعیت، بدون آنکه لزوماً یک اختلال مستقیم در دسترس‌پذیری یا دستکاری آگاهانه یکپارچگی داده‌ها ایجاد کند، محرمانگی را در سطحی گسترده و دشوار برای ردیابی تهدید می‌کند و می‌تواند زمینه‌ساز حملات ثانویه مانند جعل هویت، سوءاستفاده از توکن‌ها، تحلیل مهندسی معکوس داده‌های نشت‌یافته و در نهایت، آسیب اعتباری و حقوقی شدید برای سازمان شود، به‌ویژه اگر سامانه‌های پایگاه‌داده هدف در مرکز معماری داده و سرویس‌های حیاتی سازمان قرار گرفته باشند و برای مدت طولانی بدون وصله و بدون کنترل‌های نظارتی کافی در معرض شبکه باقی مانده باشند.

منابع

  1. https://www.cve.org/CVERecord?id=CVE-2025-14847
  2. https://www.cvedetails.com/cve/CVE-2025-14847/
  3. https://jira.mongodb.org/browse/SERVER-115508
  4. https://vulmon.com/vulnerabilitydetails?qid=CVE-2025-14847
  5. https://vuldb.com/?id.337608
  6. https://github.com/joe-desimone/mongobleed
  7. https://github.com/ProbiusOfficial/CVE-2025-14847
  8. https://nvd.nist.gov/vuln/detail/CVE-2025-14847
  9. https://cwe.mitre.org/data/definitions/130.html

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

پیام بگذارید