یک آسیبپذیری امنیتی با سطح اهمیت پایین در سرویس Memory متعلق به ابزار memmy-agent (محصول MemTensor) شناسایی شده است. این نقص به مهاجمان اجازه میدهد تا در صورت عدم پیکربندی توکن مدیریت (Admin Token)، سرویس را از طریق ارسال درخواستهای غیرمجاز متوقف کرده و منجر به وقوع حمله Denial of Service (DoS) شوند.
جزئیات فنی و نحوه حمله
مشکل اصلی در تابع requireAdminWrite در فایل http.ts نهفته است. در حالت پیشفرض، زمانی که هیچ توکن مدیریتی برای سرویس تعریف نشده باشد، این تابع عملاً بیاثر شده و اجازه میدهد نقاط انتهایی (Endpoints) حساس مانند /api/v1/admin/shutdown بدون نیاز به احراز هویت (Unauthenticated) در دسترس قرار گیرند.
سناریوی حمله به شرح زیر است:
- مهاجم یک صفحه وب مخرب را میزبانی میکند.
- کاربری که سرویس memmy-agent را در سیستم خود (بدون توکن مدیریت) اجرا میکند، به صفحه مذکور مراجعه میکند.
- صفحه مخرب یک درخواست Cross-Origin POST به نقطه انتهایی مربوط به خاموش کردن سرویس ارسال میکند.
- سرویس درخواست را پذیرفته و عملیات Shutdown را انجام میدهد که منجر به از دسترس خارج شدن آن میشود.
محدودیتهای حمله و سطح خطر
با وجود وجود کد اثبات مفهوم (PoC) عمومی، خطر واقعی این آسیبپذیری به دلیل عوامل زیر محدود است:
- پیچیدگی بالا (High Complexity): حمله مستلزم تعامل کاربر (User Interaction) و رفتارهای خاص مرورگر در مدیریت درخواستهای Cross-Origin است.
- محدودیت طراحی: این نقطه انتهایی در اصل برای استفاده محلی (Local Use) طراحی شده است.
- تاثیر محدود: این آسیبپذیری تنها بر در دسترس بودن (Availability) تاثیر میگذارد و هیچ تهدیدی برای محرمانگی (Confidentiality) یا یکپارچگی (Integrity) دادهها ندارد.
راهکارهای مقابله و اصلاح
برای جلوگیری از سوءاستفاده از این نقص، اقدامات زیر توصیه میشود:
- پیکربندی توکن مدیریت: حتماً یک Admin Token تعریف کنید تا دسترسیهای مدیریتی مستلزم احراز هویت باشند.
- محدودسازی دسترسی شبکه: سرویس را به جای
0.0.0.0، تنها به Loopback (127.0.0.1) متصل (Bind) کنید. - استفاده از لایههای حفاظتی: در صورت نیاز به دسترسی شبکه، از یک Reverse Proxy یا WAF برای مسدود کردن مسیرهای
/api/v1/admin/*و جلوگیری از درخواستهای Cross-Origin استفاده کنید.