گزارشهای فنی نشان میدهد که مدل هوش مصنوعی GLM-5.3 در سرویس Workers AI، با یک مشکل جدی در زمینه جداسازی کاربران (Tenant Isolation) مواجه شده بود که منجر به افشای دادههای حساس از طریق حافظه موقت (KV Cache) میشد.
جزئیات حادثه و دامنه آسیبپذیری
در بازه زمانی بین ۲۷ اوت تا ۹ سپتامبر، تعدادی از کاربران مدل GLM-5.3 با دریافت پاسخهایی مواجه شدند که حاوی دادههای مربوط به درخواستهای سایر کاربران بود. این اتفاق زمانی رخ میداد که طول درخواست (Prompt) از حد مشخصی فراتر میرفت. بررسیها نشان داد که این نشت دادهها تنها در پاسخهای مربوط به درخواستهای طولانیتر از ۶۸۱,۲۸۰ توکن (Token) رخ داده است و شواهدی مبنی بر سوءاستفاده عمدی از سوی عاملان تهدید یافت نشده است.
ریشه فنی مشکل
این آسیبپذیری ناشی از ترکیب دو عامل اصلی بود:
- اشتباه در پیکربندی (Misconfiguration): اندازه استخر حافظه KV Cache در پردازندههای گرافیکی (GPU) با طول بافت (Context Window) مدل مطابقت نداشت. در حالی که مدل برای پردازش بیش از یک میلیون توکن طراحی شده بود، استخر حافظه تنها ظرفیت ۶۸۱,۲۸۰ توکن را داشت.
- باگ در موتور استنتاج (Inference Engine): موتور متنباز SGLang در حالت Disaggregated Prefill/Decode، در مدیریت درخواستهای طولانی دچار خطا میشد. وقتی درخواستی بیش از ظرفیت استخر بود، سیستم آن را به عنوان درخواست رد شده (Rejected) علامتگذاری میکرد، اما به جای توقف فرآیند، حافظه KV Cache مربوط به درخواستهای قبلی را به گره Decode منتقل میکرد. در نتیجه، گره Decode پاسخ را بر اساس دادههای قدیمی (Stale Cache) تولید میکرد که حاوی اطلاعات کاربران دیگر بود.
اقدامات اصلاحی و مقابله
پس از شناسایی مشکل، اقدامات زیر برای رفع آسیبپذیری انجام شد:
- اصلاح پیکربندی: اندازه استخر KV Cache به گونهای افزایش یافت که ظرفیت آن از طول بافت مدل فراتر رود و از بروز وضعیت خطا جلوگیری شود.
- وصله کردن موتور SGLang: یک وصله (Patch) برای موتور SGLang ارائه شد تا درخواستهای رد شده در مرحله پذیرش (Admission) متوقف شوند و قبل از هرگونه انتقال حافظه، فرآیند آنها خاتمه یابد.
- ارتقای امنیت در سطح Upstream: همکاری نزدیکی با توسعهدهندگان SGLang برای اعمال اصلاحات امنیتی، از جمله بررسی صحت دادههای منتقل شده (Checksum) و بهبود مدیریت چرخه حیات صفحات حافظه انجام شد.
توصیه میشود تمامی اپراتورهایی که از موتور SGLang در حالت Disaggregated استفاده میکنند، حتماً از نسخه 0.5.22 یا بالاتر استفاده کنند.