یک آسیبپذیری امنیتی با شناسه CVE-2026-16651 در Temporal Server شناسایی شده است که میتواند منجر به توقف کامل سرویس (Denial of Service) شود. این نقص امنیتی در کتابخانه temporalio/sqlparser ریشه دارد و در هنگام پردازش توصیفات نسخه MySQL (MySQL version comments) رخ میدهد.
تحلیل فنی نقص امنیتی
مشکل اصلی در تابع ExtractMysqlComment نهفته است. این تابع در هنگام مواجهه با کامنتهای MySQL که خالی هستند یا تنها شامل یک تا پنج رقم اعشاری میباشند، مقدار -1 را از strings.IndexFunc دریافت میکند. از آنجایی که این مقدار پیش از استفاده به عنوان مرز برش (Slice Boundary) در زبان Go اعتبارسنجی نمیشود، منجر به بروز Go runtime panic میگردد.
سناریوی حمله و پیشنیازها
برای بهرهبرداری از این آسیبپذیری، مهاجم باید شرایط زیر را داشته باشد:
- دسترسی به API مربوط به
ListWorkers(در صورتی که این API فعال باشد). - داشتن دسترسی احراز هویت شده با سطح دسترسی namespace-read.
در صورت برقرار بودن این شرایط، مهاجم میتواند با ارسال یک کوئری SQL مخرب، باعث کرش کردن پروسه Matching شود. تکرار این درخواستها میتواند منجر به یک حمله DoS پایدار شود که در آن در دسترس بودن سرویس (Availability) به شدت تحت تأثیر قرار میگیرد.
تأثیرات و ریسکها
بر اساس تحلیلهای صورت گرفته، این آسیبپذیری تأثیری بر محرمانگی (Confidentiality) یا یکپارچگی (Integrity) دادهها ندارد و تنها بر روی Availability اثرگذار است. با این حال، به دلیل پیچیدگی پایین حمله (Low Complexity) و قابلیت دسترسی از طریق شبکه، امتیاز 8.7 (High) به آن اختصاص یافته است.
توصیههای کاهش ریسک
به مدیران SOC و مهندسین امنیت توصیه میشود اقدامات زیر را در سریعترین زمان ممکن اجرا کنند:
- بررسی تمامی استقرارهای Temporal Server و تأیید وضعیت فعال بودن API
ListWorkers. - محدود کردن دسترسی به
ListWorkersتنها برای شبکههای مدیریتی مورد اعتماد یا غیرفعال کردن آن در صورت عدم نیاز. - بازبینی و سختگیرانه کردن مجوزهای
namespace read. - مانیتورینگ دقیق لاگها برای شناسایی کرشهای مکرر در پروسه
Matching.