هشدار برای برنامهنویسان روبی، مراقب آسیبپذیری جدید Rack باشید!

محققان سه آسیبپذیری جدید Rack را کشف کردهاند که زنگ خطر را برای برنامهنویسان فریمورکهای روبی به صدا درآورده است! Rack یک رابط سرور پراستفاده است که اکثر برنامههای وب Ruby (مانند روبی آن ریلز، Sinatra، Hanami و Roda) برای برقراری ارتباط با سرور از آن استفاده میکنند.
دو مورد از این آسیبپذیریها (که با شناسههای CVE-2025-25184 و CVE-2025-27111 معرفی شدهاند)، میتوانند دستکاری محتوای لاگها و دادههای ورودی را برای مهاجمان امکانپذیر کنند. سومین آسیبپذیری کشف شده (با شناسۀ CVE-2025-27610 ) از نوع Path Traversal است و میتواند به مهاجمان اجازه دهد تا به اطلاعات حساس، دسترسی غیرمجاز پیدا کنند.
هرآنچه باید در مورد آسیبپذیری CVE-2025-27610 بدانید
رابط سرور Rack بهعنوان یک روش استاندارد برای برقراری ارتباط بین سرورها و برنامههای وب روبی مورد استفاده قرار میگیرد و هستۀ اصلی بسیاری از برنامهها و اپلیکیشنهای تحت وب را تشکیل میدهد. این رابط سرور توسط طیف وسیعی از کسبوکارها و توسعهدهندگان استفاده میشود و بهصورت یک Ruby Gem (بستههای از کدهای روبی با قابلیت استفادۀ مجدد) دردسترس قرار دارد.
اکنون دو نفر از محققان OPSWAT (به نامهای Thai Do و Minh Pham) سه آسیبپذیری مهم را در رابطه با رابط Rack کشف کردهاند که مهمترینِ آنها، آسیبپذیری CVE-2025-27610 است. این نقص در میانافزار Rack::Static قرار دارد که برای ارائۀ فایلها و محتوای استاتیک در برنامههای وب روبی توسط رابط Rack مورد استفاده قرار میگیرد.
محققان OPSWAT بهمنظور نشان دادن پتانسیلهای این آسیبپذیری، ابتدا یک برنامۀ وب مبتنی بر روبی با استفاده از Rack 3.1.10 توسعه دادهاند. در ادامه این دو محقق نشان دادهاند در سناریوهایی که گزینۀ root: بهروشنی در برنامه تعریف نشده است، یک مهاجم بدون احراز هویت میتواند به فایلهای خارج از دایرکتوریِ مشخصشده برای فایلهای استاتیک دسترسی پیدا کند.
این فایلها ممکن است شامل فایلهای پیکربندی، اطلاعات ورود به سیستم و سایر دادههای محرمانه باشند. البته در این میان یک نکته وجود دارد: اینکه مهاجم برای دسترسی به این فایلها، باید بتواند مسیر آنها را شناسایی کنید. برای اینکه با هدف این مهاجمان، انواع آنها و افکاری که در سر دارند بیشتر آشنا شوید، پیشنهاد میکنیم مقالۀ هک چیست و هکر کیست را حتماً بخوانید.

آقای Bang Do، مدیر ارشد تضمین کیفیت در بخش مهندسی محصول OPSWAT، به Help Net Security گفته است: «در تئوری، برای بهرهبرداری از آسیبپذیری CVE-2025-27610 نیازی به تغییرات قابل توجه در پیلود به ازای هر برنامۀ وب وجود ندارد؛ چرا که این مورد، یک آسیبپذیری «عبور از مسیر» یا Path Traversal است. این آسیبپذیری Rack Ruby به مهاجمان اجازه میدهد تنها با دستکاری URL از سمت کلاینت، به فایلهای موجود بر روی وب سرور دسترسی غیرمجاز پیدا کنند».
او افزود: «تأثیر این آسیبپذیری به محتوای فایلهای قابل دسترسی بستگی دارد. بهعنوان مثال اگر این فایلها حاوی کلیدهای محرمانه برای ارتباط با سرورهای پایگاه داده یا سایر سرورهای حیاتی باشند، ممکن است مهاجمان بتوانند به حریم امن کاربران نفوذ عمیقتری داشته باشند و به منابع بیشتری دسترسی پیدا کنند». این موارد اهمیت مباحث مربوط به امنیت سایبری را بیشتر از قبل به ما یادآوری میکنند. برای درک بیشتر اهمیت این موضوع، مقالۀ امنیت سایبری چیست را از دست ندهید!
برای مقابله با آسیبپذیری CVE-2025-27610 باید چه کار کنیم؟
استفادۀ گسترده از Rack با بیش از یک میلیارد دانلود در سرتاسر جهان، نقش اساسی آن را در اکوسیستم توسعۀ برنامههای روبی نشان میدهد. به همین دلیل خیلی سریع برای بیاثر کردن آسیبپذیریهای جدید، راهحلهایی ارائه شده است.

هر سه آسیبپذیری ذکر شده اکنون برطرف شدهاند. ولی اگر از توسعهدهندگان برنامههای روبی هستید و میخواهید از آسیب آنها در امان باشید، باید نسخۀ Rack مورد استفاده در برنامههای خود را به یکی از نسخههای اصلاحشده ارتقا دهید. این نسخهها عبارتند از:
- نسخۀ 2.2.13 یا بالاتر
- نسخۀ 3.0.14 یا بالاتر
- نسخۀ 3.1.12 یا بالاتر
برای اطمینان بیشتر در مقابله با آسیبپذیری CVE-2025-27610، بهتر است تا استفاده از میانافزار Rack::Static را فعلاً متوقف و آن را از برنامههای خود حذف کنید. همچنین مطمئن شوید که گزینۀ root: برنامۀ شما بهصراحت به مسیری اشاره میکند که فقط شامل فایلهای عمومی است.
برای مقابله با آسیبپذیری CVE-2025-27111 نیز بهتر است تا میانافزار Rack::Sendfile را از برنامههای روبی خود حذف کنید.