خلاصهٔ آسیب‌پذیری AIT-GUI

پژوهشگران شرکت Cycode زنجیره‌ای از نقص‌های امنیتی را در AIT-GUI—کنسول تحت وب ابزار JPL/NASA برای AMMOS Instrument Toolkit—افشا کردند که به مهاجمان غیرمجاز امکان ارسال دستورات دلخواه به باس فرمان فضاپیما و ابزارها را می‌دهد. شناسهٔ گزارش GHSA-p9r8-2q67-fp86 با امتیاز CVSS 9.4 ثبت شده و نسخه‌های تا 2.5.1 را تحت تأثیر قرار می‌دهد؛ توسعه‌دهندگان تغییراتی را در نسخهٔ 2.5.2 اعمال کرده‌اند اما اصلاح کامل احراز هویت اجرا نشده است.

نحوهٔ بهره‌جویی و نقاط ضعف فنی

وب‌سرور AIT-GUI به‌صورت پیش‌فرض روی آدرس 0.0.0.0 و پورت 8080 گوش می‌دهد. مسیرهای تغییر‌دهندهٔ وضعیت (state-changing) بدون احراز هویت و بدون محافظت CSRF در دسترس قرار دارند. دو مسیر نیز از ورودی‌های نامطمئن برای ساخت مسیرهای فایل استفاده می‌کنند که ریسک CWE-22 (path traversal) را ایجاد می‌کند. خلاصهٔ ضعف‌ها در دسته‌بندی‌هایی مانند CWE-306 و CWE-352 قرار می‌گیرند.

نقاط پایانی قابل سوءاستفاده

  • POST /cmd — صدور فرمان‌های دلخواه به ابزارها و فضاپیما.
  • POST /script/run — اجرای اسکریپت سمت سرور؛ امکان عبور از مسیر و دسترسی به فایل‌های خارج از دایرکتوری مجاز.
  • POST /seq — اجرای توالی‌های فرمان، از جمله فایل‌هایی که خارج از دایرکتوری قرار دارند و به یک زیرفرآیند ارسال می‌شوند.

این مسیرها application/x-www-form-urlencoded می‌پذیرند؛ مرورگرها چنین درخواست‌هایی را به‌عنوان CORS "ساده" می‌شناسند و بنابراین یک POST میان‌مبدا بدون پیش‌پرواز (preflight) می‌تواند از یک صفحهٔ مخرب ارسال و پردازش شود. به عبارت دیگر، کافی است اپراتوری که به کنسول دسترسی مرورگر دارد صفحه‌ای را که مهاجم کنترل می‌کند باز کند تا سوءاستفاده رخ دهد.

پچ نسخهٔ 2.5.2 و محدودیت‌های محافظتی

نسخهٔ 2.5.2 که در 12–13 اوت 2026 منتشر شد، سه اصلاح کلیدی دارد: بسته‌بندی (bind) به میزبان پیکربندی‌شده با پیش‌فرض localhost، یک hook پیش از پردازش درخواست که Origin یا Referer را برای متدهای POST/PUT/DELETE/PATCH در برابر Host مقایسه می‌کند تا حملات CSRF مرورگری کاهش یابد، و محدودسازی مسیرهای /script/run و /seq به ریشه‌های پیکربندی‌شده.

با این حال، بررسی کد منبع نشان می‌دهد اصلاحات، احراز هویت را برای نقاط حساس اضافه نکرده‌اند: مسیر ریشه هنوز بدون بررسی مدارک، Sessions.create() را فراخوانی و کوکی نشست صادر می‌کند و هر درخواستی که آن کوکی را داشته باشد می‌تواند به نقاط فرمان دسترسی یابد. همچنین وضعیت انتشار در مخزن PyPI تا زمان بررسی نشان می‌دهد آخرین نسخهٔ رسمی در PyPI نسخهٔ 2.4.1 است و نسخه‌های 2.5.x در تاریخچهٔ PyPI ظاهر نشده‌اند؛ بنابراین بسیاری از توزیع‌ها ممکن است همچنان نسخهٔ آسیب‌پذیر را اجرا کنند.

پیامدهای عملی

این نقص‌ها صرفاً نمایش صفحات تغییر‌یافته نیستند؛ شعاع آسیب معادل فرمان‌های واقعی ارسالی به ابزارها و فضاپیما است. دسترسی محلی به پورت 8080 یا قرارگیری کنسول در شبکهٔ داخلی در کنار سیاست‌های هم‌مبدا ضعیف در مرورگر می‌تواند مهاجم را قادر سازد بدون ورود مستقیم، کنترل جدی بر زنجیرهٔ فرمان‌دهی به دست آورد.

اقدام‌های فوری برای اپراتورها و تیم‌های امنیتی

  • در صورت وجود نسخهٔ 2.5.2 از مخزن رسمی پروژه، فوراً به آن ارتقاء دهید؛ در غیر این صورت از انتشار رسمی و منبع معتبر پیگیری کنید.
  • کنسول را تنها روی localhost یا شبکهٔ ایزوله اجرا کنید و از bind به 0.0.0.0 جلوگیری نمایید.
  • دسترسی به پورت‌های کنسول را با فایروال محدود و صرفاً به آدرس‌های مدیریت‌شده مجاز کنید؛ در محیط‌های حساس از VPN یا شبکهٔ مدیریت‌شده استفاده کنید.
  • لایهٔ احراز هویت و مجوزدهی (مثلاً TLS، authentication proxy یا احراز هویت مبتنی بر کلید) را در مقابل کنسول قرار دهید و از صدور کوکی نشست بدون اعتبارسنجی جلوگیری کنید.
  • برای نقاطی که فایل اجرا می‌کنند، نظارت بر مسیرها و اعمال محدودیت‌های sandbox/namespace را برقرار کنید تا path traversal غیرقابل سوءاستفاده شود.
  • لاگ‌برداری را فعال، متمرکز و برای رفتارهای غیرمعمول (POST میان‌مبدا، اجرای اسکریپت‌ها و توالی‌های غیرمنتظره) پایش کنید؛ در صورت مشاهدهٔ فعالیت مشکوک، فوراً اتصال‌ها را قطع و بررسی‌های آفلاین انجام دهید.

منابع و مرجع‌ها

برای بررسی بیشتر: معیار CVSS، پایگاه MITRE CWE، صفحهٔ پروژه در PyPI و گزارش‌های منتشرشده توسط پژوهشگران Cycode و تحلیلگران مستقل.

جمع‌بندی و توصیهٔ راهبردی

نسخهٔ 2.5.2 خطرات مشخصی را کاهش می‌دهد اما تا زمان پیاده‌سازی احراز هویت و مجوزدهی کامل برای نقاط حساس و همگام‌سازی توزیع رسمی روی PyPI، خطر سوءاستفاده واقعی پابرجاست. تیم‌های عملیات زمینی و توسعه‌دهندگان مأموریتی باید اصلاحات ساختاری، محدودسازی شبکه و ممیزی کد را در اولویت قرار دهند تا از تبدیل رابط مدیریت به نقطهٔ ورود مهاجمان جلوگیری شود.