یک آسیبپذیری امنیتی بحرانی با شناسه CVE-2026-85724 در نسخههای 0.18.0 و قدیمیتر Moquette Broker شناسایی شده است. این نقص امنیتی به مهاجمان اجازه میدهد تا بدون نیاز به احراز هویت، دسترسیهای غیرمجاز به دادههای سایر کاربران (Tenants) پیدا کرده و سرویس را از کار بیندازند.
تحلیل فنی آسیبپذیری
این مشکل از طریق تزریق Wildcard در قوانین ACL (کنترل دسترسی) مبتنی بر الگو رخ میدهد. در Moquette، متغیرهای %c (ClientId) و %u (Username) بدون اعتبارسنجی جایگزین میشوند. اگر یک مهاجم با ClientId مقدار + را ارسال کند، میتواند قوانینی مانند sensor/%c/# را به sensor/+/# تبدیل کند. این اتفاق منجر به Cross-tenant authorization bypass شده و مهاجم را قادر میسازد تا پیامهای سایر کاربران را بخواند یا در Topicهای آنها پیام تزریق کند.
تاثیرات امنیتی
- دسترسی غیرمجاز: امکان شنود (Eavesdropping) و تزریق پیام در محیطهای چند-مستاجری (Multi-tenant).
- محرومسازی از سرویس (DoS): ایجاد خطاهای
NullPointerExceptionوStackOverflowErrorکه منجر به Crash کامل Broker میشود. - تخریب وضعیت: امکان ارسال غیرمجاز پیامهای Will و ایجاد وضعیتهای نامعتبر در اشتراکها (Subscriptions) که منجر به اتمام حافظه (Memory Exhaustion) یا فضای دیسک میگردد.
توصیههای امنیتی برای مدیران SOC و CISO
با توجه به اینکه این Broker بهصورت پیشفرض اجازه دسترسی Anonymous را میدهد، سطح حمله (Attack Surface) بسیار گسترده است. اقدامات زیر توصیه میشود:
- بررسی نسخهها: تمامی نمونههای Moquette Broker را شناسایی کرده و نسخههای 0.18.0 و قدیمیتر را بهروزرسانی کنید.
- محدودسازی شبکه: دسترسی به Broker را از طریق Firewall یا Security Groups تنها به شبکههای مورد اعتماد محدود کنید.
- سختسازی پیکربندی: دسترسیهای Anonymous را غیرفعال کرده و قوانین ACL را بازبینی کنید تا از الگوهای بیش از حد باز (Permissive Wildcards) اجتناب شود.
- مانیتورینگ: لاگهای Broker را برای شناسایی ClientIdهای مشکوک مانند
+یا#و الگوهای غیرعادی در درخواستهای SUBSCRIBE بررسی کنید.