آسیبپذیری جدیدی با شناسه CVE-2026-77938 در پلتفرم مدیریت عاملهای هوش مصنوعی Letta (نسخههای تا 0.16.8) شناسایی شده است. این نقص امنیتی از نوع نشت اطلاعات (Information Disclosure) است که به کاربران احراز هویت شده اجازه میدهد متغیرهای محیطی (Environment Variables) حساس سرور را استخراج کنند.
جزئیات فنی و نحوه حمله
مشکل اصلی در نحوه عملکرد LocalSandbox نهفته است. در این حالت، ابزارهای اجرا شده به عنوان زیرفرآیندهای (Subprocesses) محلی اجرا میشوند که تمام متغیرهای محیطی سرور اصلی را به ارث میبرند. یک مهاجم که دسترسی به اجرای ابزار (مثلاً از طریق POST /v1/tools/run) دارد، میتواند با اجرای کدهای ساده، مقادیری نظیر LETTA_PG_URI، POSTGRES_PASSWORD و کلیدهای API تامینکنندگان (Provider API keys) را سرقت کند.
این آسیبپذیری در محیطهای Multi-tenant (چندمستاجری) که از یک پایگاه داده Postgres مشترک استفاده میکنند، بسیار خطرناک است؛ زیرا با داشتن اطلاعات اتصال به دیتابیس، مهاجم میتواند به دادههای سایر مستاجران دسترسی پیدا کند. اگرچه این حمله نیازمند احراز هویت است، اما وجود کد اکسپلویت (Exploit) عمومی، ریسک عملیاتی آن را افزایش داده است.
راهکارهای مقابله و کاهش ریسک
از آنجایی که در زمان انتشار این گزارش، وصله (Patch) رسمی برای تمامی نسخهها معرفی نشده است، اقدامات زیر توصیه میشود:
- استفاده از Sandbox ایزوله: جایگزینی
LocalSandboxبا محیطهای ایزوله و از راه دور (مانند E2B) که متغیرهای محیطی سرور را به زیرفرآیندها منتقل نمیکنند. - پاکسازی محیط (Environment Scrubbing): در صورت اجبار به استفاده از LocalSandbox، باید متغیرهای حساس را پیش از اجرای ابزار از محیط زیرفرآیند حذف کرد.
- اعمال اصل حداقل دسترسی: محدود کردن دسترسی به قابلیت اجرای ابزارها تنها به مدیران مورد اعتماد و حسابهای با سطح دسترسی پایین.
- جداسازی دیتابیس: استفاده از نقشهای دیتابیس (Database Roles) مجزا برای هر مستاجر یا استفاده از نمونههای پایگاه داده جداگانه برای جلوگیری از دسترسی فراتاجی (Cross-tenant).
- چرخش کلیدها: چرخش (Rotation) تمامی کلیدهای API و رمزهای عبور دیتابیسی که احتمال نشت آنها وجود دارد.