- شناسه CVE-2025-68926 :CVE
- CWE-798, CWE-287 :CWE
- yes :Advisory
- منتشر شده: دسامبر 30, 2025
- به روز شده: ژانویه 5, 2026
- امتیاز: 9.8
- نوع حمله: Authorization Bypass
- اثر گذاری: Unauthorized Privileged Access
- حوزه: پایگاههای داده
- برند: rustfs
- محصول: rustfs
- وضعیتPublished :CVE
- Yes :POC
- وضعیت آسیب پذیری: patch شده
چکیده
آسیبپذیری بحرانی در سیستم ذخیرهسازی توزیعشده 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):
پیامد نهایی بهرهبرداری از این آسیبپذیری میتواند فاجعهبار باشد. با دسترسی غیرمحدود مدیریتی، مهاجم قدرت انجام مخربترین عملیات را دارد. این عملیات شامل حذف کامل تمامی دادههای ذخیرهشده در باکتها و ولومها است که منجر به از دست رفتن دائمی اطلاعات میشود. مهاجم میتواند با تزریق دادههای مخرب یا تغییر متادیتا، یکپارچگی کل سرویس را مخدوش کند. همچنین، با دستکاری پیکربندی یا اجرای دستورات توقف سرویس، میتواند باعث اختلال کامل در دسترسپذیری سرویس ذخیرهسازی شده و کل عملیات وابسته به آن را متوقف نماید. خطر دیگر، افشای گسترده اطلاعات حساس است؛ از جمله اعتبارنامههای ذخیرهشده در پیکربندی یا دادههای محرمانه کسبوکاری که در سیستم نگهداری میشوند.
منابع
- https://www.cve.org/CVERecord?id=CVE-2025-68926
- https://www.cvedetails.com/cve/CVE-2025-68926/
- https://github.com/rustfs/rustfs/security/advisories/GHSA-h956-rh7x-ppgj
- https://vulmon.com/vulnerabilitydetails?qid=CVE-2025-68926
- https://vuldb.com/?id.339061
- https://github.com/Chocapikk/CVE-2025-68926
- https://nvd.nist.gov/vuln/detail/CVE-2025-68926
- https://cwe.mitre.org/data/definitions/798.html
- https://cwe.mitre.org/data/definitions/287.html
گزارش اثبات آسیب پذیری CVE-2025-68926
اطلاعات آسیبپذیری
عنوان: استفاده از توکن احراز هویت ثابت و هاردکدشده در پروتکل gRPC سامانه RustFS امکان دور زدن کامل مکانیزم احراز هویت را فراهم میکند.
شناسه: CVE-2025-68926
وضعیت مشاوره: Advisory / Patch Available
نمره CVSS تقریبی: CVSS v3.1: 9.8 (Critical)
محصول / نسخههای آسیبپذیر: RustFS (سیستم ذخیرهسازی آبجکت توزیعشده)
- در نسخههای زیر (پیش از اعمال وصله امنیتی):
- کلیه نسخههای RustFS پیش از نسخه 0.0-alpha.78
- این آسیبپذیری مستقل از نوع استقرار و شامل کلیه باینریها، ایمجهای داکر و بستههای نصبشده در نسخههای یادشده میباشد.
- آسیبپذیری در هسته طراحی احراز هویت gRPC وجود دارد و در هر محیط عملیاتی که سرویس gRPC در دسترس باشد، قابل بهرهبرداری است.
محیطهای درگیر
- کلاسترهای RustFS که برای ذخیرهسازی داده در محیطهای ابری، دیتاسنترهای سازمانی یا زیرساختهای هیبریدی مستقر شدهاند.
- محیطهای توسعه و آزمایش که از نسخههای آسیبپذیر RustFS برای شبیهسازی یا تست عملکرد استفاده میکنند.
- استقرارهای مبتنی بر کانتینر (مانند Kubernetes یا Docker Swarm) که از ایمجهای رسمی یا سفارشیشده RustFS پیش از نسخه اصلاحشده بهره میبرند.
- معماریهای چندمشتری (Multi-tenant) که در آنها یک نمونه RustFS بین چندین تیم یا مشتری به اشتراک گذاشته شده است.
- سیستمهایی که پورت سرویس gRPC (به طور پیشفرض ۹۰۰۰/TCP) به صورت عمومی روی اینترنت یا در شبکههای داخلی گسترده در معرض دید قرار دارد.
کامپوننتهای آسیبپذیر
- مکانیزم احراز هویت پروتکل gRPC در RustFS.
- Interceptor سمت سرور gRPCکه مسئول اعتبارسنجی هدر authorization در درخواستهای ورودی است.
- کتابخانههای کلاینت داخلی RustFS که توکن هاردکدشده را برای احراز هویت درخواستهای خروجی استفاده میکنند.
- کد منبع در فایلهای rs (سمت سرور) و protos/lib.rs (سمت کلاینت) که حاوی رشته ثابت توکن هستند.
ریشه مشکل (Root Cause Analysis)
ریشه این آسیبپذیری بحرانی در یک نقص طراحی اساسی در لایه امنیتی و مدیریت اعتبارنامه (Security Design & Credential Management Flaw) سیستم RustFS نهفته است. به جای پیادهسازی یک مکانیزم احراز هویت پویا، امن و قابل پیکربندی (مانند استفاده از توکنهای JWT با اعتبار زمانی محدود، گواهیهای کلید عمومی/خصوصی یا یکپارچهسازی با سرویسهای مدیریت هویت خارجی)، توسعهدهندگان از یک رشته ثابت و هاردکدشده استفاده کردهاند. این طراحی مستقیماً با اصول امنیت نرمافزار، به ویژه اصل حفاظت از اعتبارنامهها و اصل دفاع در عمق، در تضاد است. از آنجا که این مقدار ثابت نه تنها در کد منبع عمومی قرار دارد، بلکه در هر نمونه از نرمافزار در هر نقطه از جهان یکسان است، عملاً هیچ گونه محرمانگی یا عامل “چیزی که میدانید” را برای فرآیند احراز هویت ارائه نمیدهد. این امر منجر به ایجاد یک درب پشتی (Universal Backdoor) در سطح پروتکل مدیریتی سیستم شده است.
بخش آسیبپذیر
رفتار نا امن سیستم:
پذیرش و اعتبارسنجی موفقیتآمیز هر درخواست gRPC که در هدر authorization خود مقدار ثابت و از پیش شناخته شده rustfs rpc را حمل کند، بدون انجام هیچ گونه بررسی اضافی بر روی منبع درخواست، هویت واقعی فرستنده یا محدودیتهای دسترسی. این رفتار، مکانیزم احراز هویت را به یک عمل تشریفاتی و بیاثر تبدیل میکند.
نحوه سوءاستفاده مهاجم:
مهاجم با شناسایی یک نمونه در دسترس از RustFS (از طریق اسکن شبکه یا اطلاعات عمومی) اقدامات زیر را انجام میدهد:
- مهاجم با استفاده از ابزارهای رایج مانند grpcurl، curl (در صورت پشتیبانی سرور از gRPC-Web) یا کتابخانههای برنامهنویسی، یک اتصال gRPC به پورت پیشفرض (۹۰۰۰) یا پورت کاستومشده سرویس برقرار میکند.
- در متادیتای درخواست gRPC، مهاجم مقدار rustfs rpc را در هدر authorization قرار میدهد.
- Interceptor سمت سرور، وجود این مقدار را بررسی و آن را به عنوان مدرک معتبر احراز هویت میپذیرد و مسیر درخواست را به سرویس اصلی باز میگرداند.
- اکنون مهاجم به عنوان یک کاربر “معتبر” شناخته میشود و میتواند از کلیه متدهای مدیریتی تعریفشده در NodeService استفاده کند. این متدها شامل عملیات حذف دادهها، تغییر پیکربندی کلاستر، استخراج اطلاعات حساس و دستکاری فرآیندهای داخلی سیستم است.
نقش این آسیبپذیری در زنجیره حمله
این آسیبپذیری میتواند به عنوان یک بردار حمله اولیه بسیار قدرتمند (Initial Access – TA0001) در چارچوب MITRE ATT&CK عمل کند، چرا که مهاجم را مستقیماً و بدون نیاز به هیچ گونه نفوذ قبلی، به قلب سیستم مدیریتی یک زیرساخت حیاتی ذخیرهسازی میرساند. پس از کسب دسترسی، این آسیبپذیری به سرعت میتواند برای تحقق تاکتیکهای “اجرا” (TA0002) با اجرای دستورات مدیریتی، “افزایش امتیاز” (TA0004) با دستیابی به کنترل سطح مدیریت، “دسترسی به اعتبارنامه” (TA0006) با استخراج اطلاعات محرمانه پیکربندی و در نهایت “تأثیر” (TA0040) با تخریب یا اخلال در دادهها و سرویس مورد استفاده قرار گیرد. سادگی بهرهبرداری، آن را به گزینهای ایدهآل برای حملات خودکار و کمپینهای مخرب گسترده تبدیل میکند.
پیشنیازهای بهرهبرداری (Prerequisites)
- وجود یک نمونه از RustFS در نسخههای آسیبپذیر (پیش از 0.0-alpha.78 ) که سرویس gRPC آن فعال باشد.
- دسترسی شبکهای مهاجم به پورت سرویس gRPC این نمونه. این دسترسی میتواند مستقیم (اگر سرویس روی اینترنت در دسترس باشد) یا غیرمستقیم (از طریق یک سیستم آلوده دیگر در شبکه داخلی) باشد.
- آگاهی مهاجم از مقدار توکن هاردکدشده که به دلیل افشای عمومی در کد منبع، به راحتی قابل کسب است.
- عدم وجود کنترلهای امنیتی لایه شبکه (مانند فایروالهای دقیق، لیست سفید آدرس IP یا شبکههای مجازی خصوصی امن) که بتواند ارتباط مستقیم مهاجم با پورت gRPC را مسدود کند.
رفتار مورد انتظار در حالت امن (Expected Secure Behavior)
در یک طراحی امن و مقاوم، مکانیزم احراز هویت برای یک سرویس مدیریتی حیاتی مانند RustFS باید دارای ویژگیهای زیر باشد:
- عدم استفاده از رمزهای هاردکدشده: اعتبارنامهها یا توکنهای احراز هویت هرگز نباید به صورت ثابت در کد منبع گنجانده شوند. آنها باید در زمان اجرا، از طریق متغیرهای محیطی امن، سرویسهای مدیریت رمز (مانند HashiCorp Vault، AWS Secrets Manager) یا فایلهای پیکربندی خارجی با دسترسی محدود بارگذاری شوند.
- منحصر به فرد بودن و چرخش: هر استقرار باید از اعتبارنامههای منحصر به فرد خود استفاده کند و مکانیزمهای چرخش دورهای (Rotation) و انقضا برای این اعتبارنامهها وجود داشته باشد تا در صورت افشا، آسیب محدود شده و قابل جبران باشد.
- احراز هویت قوی: پیادهسازی احراز هویت باید مبتنی بر استانداردهای قوی مانند TLS متقابل (mTLS) باشد، جایی که هر کلاینت و سرور با گواهی دیجیتال معتبر و امضا شده هویتسنجی میشوند. در صورتی که از توکن استفاده میشود، باید از توکنهای امضا شده با اعتبار زمانی محدود (مانند JWT) بهره گرفته شود.
- اعتبارسنجی چند عاملی برای عملیات حساس: برای انجام عملیات مخربپذیر مانند حذف دادهها یا تغییر پیکربندی اصلی، میتوان لایههای اضافی تایید (مانند نیاز به احراز هویت دوم از طریق کانال دیگر) را در نظر گرفت.
- لاگبرداری و ثبت جامع: کلیه درخواستهای احراز هویت (موفق و ناموفق) همراه با متادیتای کامل (منبع IP، زمان، عملیات درخواستی) باید به دقت ثبت و برای تحلیل امنیتی و تشخیص نفوذ در دسترس باشند.
راهکارها و کاهش ریسک (Mitigation / Patch Guidance)
اقدامات فوری برای کاهش ریسک
- بهروزرسانی فوری و بدون وقفه کلیه نمونههای RustFS به آخرین نسخه پایدار که این آسیبپذیری در آن رفع شده است (نسخه 0.0-alpha.78 یا بالاتر). این اقدام باید بالاترین اولویت عملیاتی را داشته و به محض انتشار وصله انجام شود.
- پس از بهروزرسانی، کلیه سرویسهای RustFS باید مجدداً راهاندازی شوند تا تغییرات مربوط به مکانیزم احراز هویت جدید به طور کامل اعمال گردد.
- در محیطهای کانتینری، اطمینان حاصل شود که ایمجهای استفادهشده از ریجیستریهای معتبر به نسخه اصلاحشده بهروزرسانی شدهاند و استقرارهای قدیمی (Deployments) با استفاده از ایمجهای جدید بازسازی (Redeploy) شدهاند.
- در صورت عدم امکان فوری بهروزرسانی در چارچوب زمانی بحرانی، باید بلافاصله با استفاده از فایروال میزبان یا سختافزار شبکه، کلیه دسترسیهای ورودی به پورت gRPC RustFS (معمولاً ۹۰۰۰/TCP) از هر آدرس IP به غیر از آدرسهای کاملاً مورد اعتماد و ضروری برای عملیات مدیریتی مسدود شود.
اقدامات کوتاهمدت / میانمدت برای کاهش ریسک
- بازنگری جامع پیکربندی شبکه و امنیتی کلیه کلاسترهای RustFS. اطمینان حاصل شود که سرویس gRPC تحت هیچ شرایطی در معرض اینترنت عمومی قرار ندارد و دسترسی به آن محدود به شبکههای مدیریتی امن و segment شده است.
- پیادهسازی و فعالسازی احراز هویت مبتنی بر TLS متقابل (mTLS) برای کانال ارتباطی gRPC، حتی پس از اعمال وصله. این کار یک لایه امنیتی مستحکم اضافه میکند که ارتباطات را هم رمزگذاری میکند و هم طرفین را احراز هویت مینماید.
- تقویت سیستمهای لاگبرداری و مانیتورینگ. تمامی درخواستهای ورودی به سرویس gRPC، به همراه نتیجه احراز هویت و متادیتای کامل، باید در یک سامانه متمرکز و امن (مانند SIEM) ثبت و برای ایجاد هشدار بر روی الگوهای مشکوک (مانند درخواستهای متعدد از یک منبع ناشناس) پیکربندی شوند.
- انجام یک بازرسی امنیتی (Security Audit) بر روی کلاستر برای شناسایی هرگونه تغییر غیرمجاز در پیکربندی، سیاستهای دسترسی یا دادهها که ممکن است در اثر یک بهرهبرداری موفق پیش از وصلهگذاری رخ داده باشد.
اقدامات بلندمدت برای کاهش ریسک
- ادغام RustFS (و به طور کلی تمام سرویسهای مدیریتی حیاتی) با یک چارچوب مدیریت هویت و دسترسی متمرکز سازمانی (IAM). این امر مدیریت چرخه حیات اعتبارنامه، تفویض اختیار دقیق و گزارشگیری یکپارچه را ممکن میسازد.
- گنجاندن تحلیل کد ایستا (SAST) و تحلیل وابستگیهای نرمافزاری (SCA) در خط لوله توسعه و استقرار نرمافزار. این ابزارها میتوانند الگوهای کدنویسی خطرناک مانند استفاده از اعتبارنامههای هاردکدشده (CWE-798) را در مراحل اولیه توسعه شناسایی و گزارش کنند.
- تدوین و اجرای سیاستهای امنیتی اجباری برای توسعه درونسازمانی که به صرورت استفاده از هر گونه رمز عبور، کلید API یا توکن ثابت در کد منبع را ممنوع کرده و استفاده از سرویسهای مدیریت رمز امن را الزامی میکند.
- ایجاد و تمرین دورهای برنامه پاسخ به حوادث امنیتی خاص RustFS، تا تیمهای عملیات امنیت (SOC) و فناوری اطلاعات در صورت شناسایی یک حمله فعال، بتوانند به سرعت و به طور مؤثر واکنش نشان داده، آسیب را مهار و سیستم را بازیابی نمایند.
تشخیص و مانیتورینگ (Detection & Monitoring)
نشانههای تلاش برای سوءاستفاده
نشانههای زیر میتوانند بیانگر تلاش برای بهرهبرداری از آسیبپذیری موردنظر باشند و لازم است بهصورت مستمر پایش شوند:
- وجود اتصالات شبکهای ورودی به پورت gRPC RustFS (مثلاً ۹۰۰۰) از آدرسهای IP خارج از محدوده تعریفشده برای مدیریت، به ویژه اگر این اتصالات از اینترنت عمومی یا از segmentهای شبکه غیرمرتبط سازمانی نشأت گرفته باشند.
- مشاهده درخواستهای gRPC که در لاگهای سرویس با هدر authorization: rustfs rpc ثبت شدهاند. پس از patch، چنین درخواستهایی باید کاملاً رد شوند؛ بنابراین ثبت آنها نشانه یک حمله فعال است.
- افزایش ناگهانی و غیرعادی در حجم درخواستهای gRPC، به ویژه درخواستهای مربوط به متدهای مخربپذیر مانند حذف (DeleteBucket، DeleteObject)، تغییر پیکربندی (UpdateClusterConfig) یا استخراج اطلاعات (GetNodeSecrets).
- ظهور خطاهای احراز هویت جدید یا تغییر در الگوی خطاهای ثبت شده در لاگهای RustFS، که ممکن است نشاندهنده اسکن خودکار یا تلاشهای متعدد نافرجام برای اتصال باشد.
- تغییرات غیرمجاز و توضیحناپذیر در پیکربندی کلاستر، سیاستهای دسترسی یا خود دادههای ذخیرهشده، که میتواند نتیجه یک نفوذ موفق باشد.
منابع پیشنهادی برای مانیتورینگ و پایش
بهمنظور تشخیص بهموقع و مؤثر تلاشهای سوءاستفاده، پایش منابع زیر توصیه میشود:
- لاگهای دسترسی (Access Logs) سرویس gRPC RustFS: این لاگها باید برای هر درخواست، آدرس IP مبدا، متد فراخوانی شده، نتیجه احراز هویت و زمان را ثبت کنند. تجمیع این لاگها در یک سامانه SIEM برای تحلیل رفتاری ضروری است.
- لاگهای شبکه (Netflow/PCAP) در لبه (Edge) و داخل segmentهای شبکه: نظارت بر ترافیک ورودی به پورت سرویس gRPC میتواند اتصالات غیرمجاز را حتی قبل از رسیدن به خود سرویس شناسایی کند.
- هشدارهای سیستم تشخیص نفوذ شبکه (NIDS) یا سیستم پیشگیری از نفوذ (NIPS): قوانینی میتوانند برای تشخیص و مسدودسازی خودکار ترافیک حاوی رشته rustfs rpc در هدرهای پروتکل gRPC (در صورت امکان بررسی محتوای رمزگذاری نشده) نوشته شوند.
- مانیتورینگ تغییرات پیکربندی و داده: استفاده از ابزارهایی که میتوانند تغییرات در فایلهای پیکربندی RustFS، فایلهای متادیتا یا حتی حجم دادههای ذخیرهشده را تشخیص و هشدار دهند.
- پایش سلامت کلاستر و معیارهای عملکردی (Metrics): کاهش ناگهانی در معیارهای مرتبط با حجم داده سالم، افزایش تعداد خطاها یا تغییر در وضعیت نودهای کلاستر میتواند یک شاخص غیرمستقیم از یک حمله مخرب باشد.
واکنش به حادثه (Incident Response)
اقدامات اضطراری که در صورت مشاهده نشانههای نفوذ یا سوءاستفاده موفق باید اتخاذ شود:
- ایزوله سازی فوری: بلافاصله نمونههای آلوده یا تحت حمله RustFS را از شبکههای تولیدی و سایر سیستمهای حیاتی جدا کنید. این کار میتواند با غیرفعال کردن کارت شبکه، اعمال قوانین فایروال تهاجمی یا خاموش کردن سرویسها انجام شود تا از گسترش آسیب جلوگیری گردد.
- تثبیت و جمعآوری شواهد: از کلیه لاگهای سرویس gRPC، لاگهای سیستم عامل میزبان، پیکربندی فعلی کلاستر و اسنپشاتهایی از وضعیت دادهها (در صورت امکان) به صورت امن و با حفظ زنجیره امانت (Chain of Custody) نسخه پشتیبان تهیه کنید. این شواهد برای تحلیل ریشهای و اقدامات قانونی احتمالی حیاتی هستند.
- تحلیل عمقی و ارزیابی خسارت: با استفاده از شواهد جمعآوری شده، دامنه نفوذ را مشخص کنید. تعیین کنید که آیا مهاجم تنها به لایه مدیریتی دسترسی یافته یا دادههای ذخیرهشده نیز دستکاری شدهاند. لیست کامل اعمال انجام شده توسط مهاجم را مستندسازی نمایید.
- پاکسازی، بازیابی و patching: کلیه نرمافزارهای آلوده یا تغییر یافته را حذف کنید. محیط را با استفاده از نسخههای پاک و وصلهشده ( 0.0-alpha.78 یا بالاتر) از ابتدا بازسازی نمایید. دادهها را از آخرین پشتیبان سالم شناخته شده بازیابی کنید و صحت و یکپارچگی آنها را تأیید نمایید.
- ارتباطات و گزارشدهی: مطابق با خطمشی پاسخ به رویدادهای امنیتی سازمان، ذینفعان مربوطه (مدیریت، تیم حقوقی، مشتریان در صورت تأثیرپذیری) را مطلع کنید. یک گزارش کامل از حادثه، شامل علل ریشهای، اقدامات پاسخ و درسهای آموخته شده تهیه و در سازمان به اشتراک بگذارید تا از تکرار حوادث مشابه جلوگیری شود.
جریان حمله (Attack Flow)
در شکل ۱جریان کلی بهرهبرداری از این آسیبپذیری نشان داده شده است. در این سناریو مهاجم که عموماً یک تهدید خارجی است، ابتدا با اسکن اینترنت یا شبکه هدف، نمونههایی از RustFS با پورت gRPC باز را شناسایی میکند. بدون نیاز به هیچ گونه اطلاعات قبلی از محیط هدف و تنها با دانش عمومی از آسیبپذیری و توکن هاردکدشده، حمله را آغاز میکند. مهاجم با برقراری یک اتصال مستقیم به سرویس، خود را به عنوان یک نود معتبر داخلی جا میزند. این دسترسی غیرمجاز ابتدایی، کلید تسلط بر کل کلاستر را به مهاجم میدهد و او را قادر میسازد تا به صورت سیستماتیک کنترل را در دست گرفته، دادهها را مختل یا افشا کند و حتی backdoorهایی برای دسترسی آتی ایجاد نماید. کل فرآیند میتواند در عرض چند دقیقه و به صورت کاملاً خودکار انجام شود.

شکل 1: نمودار توالی جریان حمله منطقی برای CVE-2025-68926
اثبات مفهوم (PoC) — کاملاً غیرمخرب
آزمایشگاه تخصصی Vulnerbyte این آسیبپذیری را در یک محیط ایزوله و کنترلشده مورد بررسی قرار داده است. تحلیلهای امنیتی و کدهای اثبات مفهوم منتشر شده در محیطهای ایزوله، مکانیزم بهرهبرداری از این آسیبپذیری را به وضوح تأیید کردهاند. این PoCها که برای اهداف آموزشی طراحی شدهاند، فاقد کدهای مخرب واقعی بوده و صرفاً برای نشان دادن سادگی حمله ارائه میشوند.
- یک اسکریپت ساده PoC میتواند تنها با استفاده از یک کتابخانه gRPC برای زبان Python یا Go نوشته شود.
- این اسکریپت ابتدا یک کانال gRPC به آدرس و پورت هدف ایجاد میکند.
- سپس، مقدار rustfs rpc را در متادیتای (Metadata) کانال، تحت کلید authorization قرار میدهد.
- در نهایت، یک متد ساده و غیرمخرب از سرویس NodeService مانند GetVersion یا ListNodes را فراخوانی میکند.
- تصویر ارائهشده در شکل ۲ نشان میدهد که دریافت پاسخ موفق از سرور به جای یک خطای “دسترسی غیرمجاز”، به تنهایی اثبات میکند که مکانیزم احراز هویت به طور کامل دور زده شده و مهاجم میتواند به عملیات حساس دسترسی یابد. این فرآیند نیاز به هیچ دانش تخصصی از محیط هدف ندارد.

شکل 2: نتیجه اجرای اکسپلویت بر روی این آسیب پذیری
رفع مسئولیت
این گزارش صرفاً با هدف آموزش، تحلیل فنی و ارتقای امنیت سازمانی تهیه شده است. هرگونه استفاده مخرب یا خارج از چارچوبهای قانونی از محتوای آن ممنوع است. اطلاعات ارائهشده بر اساس دادههای عمومی در زمان تدوین است و مسئولیت نهایی اقدامات بر عهده خواننده میباشد.
منابع (References)
- https://www.cve.org/CVERecord?id=CVE-2025-68926
- https://nvd.nist.gov/vuln/detail/CVE-2025-68926
- https://github.com/rustfs/rustfs/security/advisories/GHSA-h956-rh7x-ppgj
- https://cwe.mitre.org/data/definitions/798.html
- https://cwe.mitre.org/data/definitions/287.html
RustFS
CVE-2025-68926 – Unauthenticated Privileged Access via Hardcoded gRPC Authentication Token
Affects
- RustFS (distributed object storage system written in Rust)
- Versions prior to 1.0.0-alpha.78
- Deployments where:
- the RustFS gRPC service is reachable over the network,
- gRPC-based management or control operations are enabled.
Description
CVE-2025-68926 is a critical authentication vulnerability in RustFS caused by the use of a hardcoded static authentication token for gRPC communication.
In affected versions, RustFS implements gRPC authentication using the token:
“rustfs rpc”
This token is:
- hardcoded on both client and server sides,
- publicly exposed in the RustFS source code repository,
- non-configurable,
- shared across all RustFS deployments,
- not subject to rotation or expiration.
Because the token is universally valid and publicly known, any attacker with network access to the RustFS gRPC port can authenticate successfully and perform privileged operations.
Successful exploitation may result in full compromise of the RustFS cluster, including data loss and configuration manipulation.
Attack Vector
Primary Attack Vector:
Remote / Network-based (gRPC interface)
Attack Scenario:
- An attacker identifies a RustFS deployment exposing its gRPC service.
- The attacker connects to the gRPC port over the network.
- The attacker authenticates using the publicly known hardcoded token.
- RustFS accepts the token as valid without additional verification.
- The attacker gains authenticated access to privileged gRPC operations.
Key Characteristics:
- No prior authentication or credentials are required.
- No user interaction is required.
- Exploitation relies on a design flaw rather than misconfiguration.
- All vulnerable RustFS deployments share the same authentication secret.
Conditions Increasing Risk:
- gRPC ports exposed to untrusted networks.
- Internet-accessible RustFS clusters.
- Lack of network-level access controls.
- Multi-tenant or shared infrastructure environments.
Impact
An attacker successfully exploiting CVE-2025-68926 may be able to:
- delete or corrupt stored objects,
- manipulate access policies,
- alter cluster configuration,
- disrupt availability of the storage service,
- fully compromise data integrity and confidentiality.
Because RustFS is a distributed storage system, the blast radius may include all nodes in the cluster.
Observed Exploitation & Threat Activity
- At the time of disclosure, there are no confirmed reports of widespread exploitation in the wild.
- The vulnerability is considered extremely high risk due to:
- trivial exploitation,
- public exposure of the authentication token,
- critical impact on core storage operations.
- Similar hardcoded credential vulnerabilities have historically been exploited rapidly once discovered.
Severity & Metrics
- CVSS v3.1: Critical (9.8)
- Attack Vector: Network
- Privileges Required: None
- User Interaction: None
- Impact:
- Confidentiality: High
- Integrity: High
- Availability: High
Relevant CWE:
- CWE-798 – Use of Hard-coded Credentials
- CWE-287 – Improper Authentication
- CWE-522 – Insufficiently Protected Credentials
Patch & Vendor Status
- The issue is fixed in RustFS version 1.0.0-alpha.78.
- The fix removes the hardcoded token and introduces:
- improved authentication handling,
- safeguards against universal shared secrets,
- groundwork for safer credential management.
All users are strongly advised to upgrade immediately.
Mitigation & Remediation
Immediate Actions
- Upgrade RustFS to version 1.0.0-alpha.78 or later.
- Restart all RustFS services after upgrading.
- Review cluster configuration for unauthorized changes.
Temporary Compensating Controls (If Upgrade Is Delayed)
- Restrict network access to the RustFS gRPC port using firewalls or security groups.
- Limit gRPC exposure to trusted management networks only.
- Monitor gRPC access logs for unexpected activity.
These mitigations reduce exposure but do not eliminate the vulnerability without upgrading.
Detection & Hunting
Indicators of Potential Exploitation:
- Unexpected gRPC administrative operations.
- Sudden policy or configuration changes.
- Unexplained data deletion or modification.
- gRPC access originating from unusual IP addresses.
Recommended Monitoring:
- RustFS audit and access logs.
- Network monitoring for connections to gRPC ports.
- Alerts for destructive storage operations.
Post-Incident Response
If exploitation is suspected:
- Immediately isolate the RustFS cluster from untrusted networks.
- Preserve logs and configuration state for forensic analysis.
- Assess data integrity and availability.
- Upgrade to the patched version.
- Rebuild cluster trust if configuration tampering is detected.
Summary Table
| Category | Details |
|---|---|
| Vulnerability | Hardcoded authentication token |
| Component | gRPC authentication |
| Attack Vector | Remote, unauthenticated network access |
| Impact | Full cluster compromise |
| Affected Versions | RustFS < 1.0.0-alpha.78 |
| Fixed Version | 1.0.0-alpha.78 |
| Severity | Critical |
References
- RustFS Security Advisory – CVE-2025-68926
- NVD – CVE-2025-68926
- CWE-798: Use of Hard-coded Credentials