خانه » CVE-2025-68926

CVE-2025-68926

RustFS has a gRPC Hardcoded Token Authentication Bypass

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

چکیده

آسیب‌پذیری بحرانی در سیستم ذخیره‌سازی توزیع‌شده RustFS، ناشی از استفاده از یک توکن احراز هویت هاردکدشده با مقدار”rustfs rpc” در پروتکل gRPC است. این توکن در کد منبع عمومی مخزن GitHub پروژه قابل مشاهده بوده، در سمت کلاینت و سرور یکسان استفاده می‌شود و هیچ مکانیزمی برای تغییر یا چرخش (rotation) ندارد. در نتیجه، هر مهاجمی که به پورت gRPC (معمولاً 9000/TCP) دسترسی شبکه‌ای داشته باشد، می‌تواند بدون نیاز به هیچ‌گونه اعتبارنامه‌ای، تمام عملیات مدیریتی حساس را اجرا کند.

توضیحات

آسیب‌پذیری CVE-2025-68926 در سامانه RustFS ناشی از دو ضعف استفاده از اعتبارنامه‌های هاردکدشده مطابق با CWE-798 و پیاده‌سازی نادرست فرآیند احراز هویت مطابق با CWE-287 است.

RustFS یک سیستم ذخیره‌سازی آبجکت توزیع‌شده (Distributed Object Storage System) است که به زبان Rust توسعه داده شده و برای ارتباطات داخلی و مدیریتی خود از پروتکل gRPC استفاده می‌کند. در نسخه‌های آسیب‌پذیر، این سامانه برای احراز هویت درخواست‌های gRPC به‌جای استفاده از یک مکانیزم امن و قابل پیکربندی، از یک توکن ایستا و هاردکدشده با مقدار ثابت “rustfs rpc” بهره می‌برد. این مقدار به‌صورت رشته ثابت (String Literal) مستقیماً در کد منبع سمت سرور (فایل http.rs) و سمت کلاینت (فایل protos/lib.rs) تعریف شده است.

این توکن نه‌تنها در مخزن عمومی GitHub پروژه به‌صورت شفاف قابل مشاهده و جست‌وجو است، بلکه در تمام نصب‌ها و استقرارها یکسان باقی می‌ماند. علاوه بر این، هیچ مکانیزمی برای تغییر، چرخش توکن (Token Rotation) یا تنظیم آن از طریق متغیر محیطی، فایل پیکربندی یا پارامتر اجرایی در نظر گرفته نشده است. در نتیجه، افشای این توکن عملاً به معنای افشای دائمی مکانیزم احراز هویت کل سامانه است.

RustFS در سمت سرور، از یک gRPC Interceptor بسیار ساده برای کنترل دسترسی استفاده می‌کند. این Interceptor تمامی درخواست‌های ورودی را بررسی کرده و تنها شرط پذیرش درخواست این است که مقدار هدر authorization دقیقاً برابر با “rustfs rpc” باشد. هیچ‌گونه بررسی اضافی مانند اعتبارسنجی هویت نود، بررسی منبع درخواست، استفاده از TLS متقابل (mTLS) یا محدودسازی سطح دسترسی اعمال نمی‌شود. به همین دلیل، هر مهاجمی که از مقدار این توکن آگاه باشد، می‌تواند با ارسال آن در هدر درخواست، فرآیند احراز هویت را به‌طور کامل دور بزند (Authentication Bypass).

بهره‌برداری از این آسیب‌پذیری بسیار ساده و کاملاً قابل خودکارسازی است. پیش‌نیاز حمله، دسترسی شبکه‌ای به پورت gRPC سرویس است که به‌صورت پیش‌فرض روی 9000/TCP اجرا می‌شود و در بسیاری از استقرارهای توزیع‌شده، روی آدرس 0.0.0.0 (تمام اینترفیس‌ها) در دسترس قرار دارد. مهاجم می‌تواند با ابزارهایی مانند grpcurl یا با نوشتن اسکریپت‌هایی به زبان‌هایی مانند Python یا Go، تنها با تنظیم هدر authorization: rustfs rpc به سرویس متصل شود.

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

از منظر ارزیابی CVSS، پیامدهای این آسیب‌پذیری بسیار شدید و بحرانی است. در بُعد محرمانگی (Confidentiality)، امکان افشای کامل داده‌ها، اعتبارنامه‌ها، سیاست‌های IAM و پیکربندی داخلی سامانه وجود دارد. در بُعد یکپارچگی (Integrity)، مهاجم قادر است داده مخرب تزریق کند، متادیتا و سیاست‌ها را تغییر دهد و حتی بکدورهای پایدار در سامانه ایجاد کند. در بُعد در دسترس‌پذیری (Availability) نیز حذف کامل باکت‌ها و ولوم‌ها، ایجاد اختلال در فرآیند replication و حتی مختل کردن سرویس امکان‌پذیر است. برای این آسیب‌پذیری، کدهای اثبات مفهومی (PoC) به‌صورت عمومی منتشر شده‌اند که شامل اسکریپت‌های آماده برای تست احراز هویت، استخراج اطلاعات سرور و نمایش دسترسی به APIهای حساس هستند. این ضعف امنیتی تمامی نسخه‌های RustFS پیش از 1.0.0-alpha.78 (از جمله ایمیج‌های رسمی Docker) را تحت تأثیر قرار می‌دهد و در پیکربندی پیش‌فرض هیچ کنترل امنیتی مکملی مانند mTLS، محدودسازی IP (IP Whitelisting) یا محدودسازی نرخ درخواست‌ها (Rate Limiting) وجود ندارد.

در نهایت، این آسیب‌پذیری با انتشار نسخه 1.0.0-alpha.78 و اصلاح کامل مکانیزم احراز هویت gRPC پچ شده است.

CVSS

Score Severity Version Vector String
9.8 CRITICAL 3.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

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

Versions Product
affected at < 1.0.0-alpha.78 rustfs

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

Versions Product
1.0.0-alpha.78 rustfs

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

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

Approx. Usage in .ir Domain via Google

(Total Pages)

Search Query (Dork) Product
2 site:.ir “RustFS” RustFS

نتیجه گیری

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

  • به‌روزرسانی فوری: سامانه RustFS را در اسرع وقت به نسخه 0.0-alpha.78 یا بالاتر به‌روزرسانی کنید. در این نسخه، مکانیزم احراز هویت gRPC اصلاح شده و مشکل استفاده از توکن ثابت برطرف شده است.

در محیط‌های Docker و Kubernetes ایمیج‌های جدید را دریافت (Pull) کرده و استقرار مجدد (Redeploy) انجام دهید. این اقدام مؤثرترین و قطعی‌ترین راهکار برای رفع آسیب‌پذیری بوده و باید در اولویت نخست قرار گیرد. سایر اقدامات نقش مکمل داشته و صرفاً به کاهش ریسک کمک می‌کنند..

  • غیرفعال‌سازی موقت gRPC: تا زمان اعمال کامل پچ امنیتی ،دسترسی به پورت gRPC (به‌طور پیش‌فرض 9000/TCP) را مسدود کرده یا آن را صرفاً به شبکه‌های داخلی و معتبر محدود نمایید.
  • محدودسازی شبکه: دسترسی به پورت gRPC را از طریق فایروال فقط به نودهای کلاستر یا آدرس‌های IP مجاز محدود کنید. تحت هیچ شرایطی این پورت نباید مستقیماً در معرض اینترنت قرار گیرد.
  • پیاده‌سازی mTLS: پس از به‌روزرسانی، احراز هویت مبتنی بر TLS متقابل (Mutual TLS – mTLS) را برای ارتباطات gRPC فعال کنید تا تنها نودهای دارای گواهی معتبر قادر به برقراری ارتباط باشند و سطح امنیت به‌طور قابل‌توجهی افزایش یابد.
  • نظارت و ثبت لاگ: ثبت و مانیتورینگ لاگ‌ها و درخواست‌های مشکوک مرتبط با پورت 9000 را فعال کنید. استفاده از ابزارهایی مانند Falco، auditd یا سامانه‌های مدیریت رویداد و اطلاعات امنیتی (SIEM) برای شناسایی تلاش‌های بهره‌برداری توصیه می‌شود.
  • اسکن و تست: کلاسترهای RustFS را با ابزارهای اسکن آسیب‌پذیری مانند Trivy، Grype یا OpenVAS بررسی کرده و تمامی نسخه‌های آسیب‌پذیر را شناسایی و اصلاح نمایید.
  • ارزیابی راهکارهای جایگزین: در پروژه‌ها و محیط‌های عملیاتی حیاتی، توصیه می‌شود سیستم‌های ذخیره‌سازی امن‌تر با مکانیزم‌های احراز هویت پیشرفته، مانند MinIO با مدیریت کامل هویت و دسترسی (IAM) یا Ceph، بررسی و ارزیابی شوند.

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

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

TA0001 (Initial Access):
این آسیب‌پذیری با دور زدن کامل مکانیزم احراز هویت، مستقیماً دروازه ورود اولیه را برای مهاجم باز می‌کند. برخلاف بسیاری از حملات که نیازمند به دست آوردن اعتبار یا بهره‌برداری از یک آسیب‌پذیری دیگر هستند، مهاجم در اینجا تنها با داشتن دسترسی شبکه به پورت gRPC سرویس (معمولاً 9000/TCP) و آگاهی از توکن هاردکدشده عمومی “rustfs rpc”، می‌تواند بدون هیچ گونه اعتبارنامه معتبری، به سامانه نفوذ کند. این شرایط خاص، نیاز به هرگونه تلاش برای فیشینگ، کشف اعتبار یا سوءاستفاده از آسیب‌پذیری‌های دیگر را برای مرحله دسترسی اولیه مرتفع می‌سازد و حمله را بسیار ساده و کم هزینه می‌نماید.

TA0008 (Lateral Movement):
پس از دستیابی غیرمجاز از طریق این آسیب‌پذیری، مهاجم به مجموعه گسترده‌ای از متدهای مدیریتی (بیش از 50 متد) در سرویس NodeService دسترسی پیدا می‌کند. این دسترسی بالا می‌تواند به عنوان پایگاهی ایده‌آل برای حرکت جانبی در یک کلاستر توزیع‌شده RustFS مورد استفاده قرار گیرد. مهاجم قادر خواهد بود پیکربندی نودها را بخواند، وضعیت replication را بررسی کند، و حتی دستورات کنترل را به سایر نودهای عضو کلاستر ارسال نماید. شرط اصلی برای این تاکتیک، استقرار RustFS در یک کلاستر متشکل از چندین نود است که مهاجم از طریق نود اولیه به آن‌ها دسترسی شبکه دارد.

TA0007 (Discovery):
دسترسی مدیریتی کامل ناشی از این آسیب‌پذیری، به مهاجم امکان می‌دهد تا عملیات کشف گسترده‌ای را هم درون خود سامانه RustFS و هم در میزبان زیرساخت آن انجام دهد. مهاجم می‌تواند از متدهای API برای استخراج اطلاعات حساسی مانند مسیرهای ذخیره‌سازی کامل (مسیرهای فایل سیستم میزبان)، جزئیات پیکربندی داخلی، لیست باکت‌ها و اشیاء، و حتی تلاش برای خواندن فایل‌های سیستمی میزبان از طریق برخی عملیات‌های خاص استفاده کند. این مرحله کشف، پیش‌نیاز برنامه‌ریزی برای حملات بعدی با تأثیر بیشتر است و شرایط مورد نیاز آن، اجرای سرویس RustFS با دسترسی‌هایی است که به آن اجازه می‌دهد به منابع میزبان دسترسی داشته باشد.

TA0040 (Impact):
پیامد نهایی بهره‌برداری از این آسیب‌پذیری می‌تواند فاجعه‌بار باشد. با دسترسی غیرمحدود مدیریتی، مهاجم قدرت انجام مخرب‌ترین عملیات را دارد. این عملیات شامل حذف کامل تمامی داده‌های ذخیره‌شده در باکت‌ها و ولوم‌ها است که منجر به از دست رفتن دائمی اطلاعات می‌شود. مهاجم می‌تواند با تزریق داده‌های مخرب یا تغییر متادیتا، یکپارچگی کل سرویس را مخدوش کند. همچنین، با دستکاری پیکربندی یا اجرای دستورات توقف سرویس، می‌تواند باعث اختلال کامل در دسترس‌پذیری سرویس ذخیره‌سازی شده و کل عملیات وابسته به آن را متوقف نماید. خطر دیگر، افشای گسترده اطلاعات حساس است؛ از جمله اعتبارنامه‌های ذخیره‌شده در پیکربندی یا داده‌های محرمانه کسب‌وکاری که در سیستم نگهداری می‌شوند.

منابع

  1. https://www.cve.org/CVERecord?id=CVE-2025-68926
  2. https://www.cvedetails.com/cve/CVE-2025-68926/
  3. https://github.com/rustfs/rustfs/security/advisories/GHSA-h956-rh7x-ppgj
  4. https://vulmon.com/vulnerabilitydetails?qid=CVE-2025-68926
  5. https://vuldb.com/?id.339061
  6. https://github.com/Chocapikk/CVE-2025-68926
  7. https://nvd.nist.gov/vuln/detail/CVE-2025-68926
  8. https://cwe.mitre.org/data/definitions/798.html
  9. https://cwe.mitre.org/data/definitions/287.html

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

پیام بگذارید