آسیبپذیری اجرای کد از راه دور در Marimo یکی از جدیترین تهدیدات امنیتی در پلتفرمهای توسعه مبتنی بر Python است که در کمتر از 10 ساعت پس از افشای عمومی، توسط مهاجمان مورد سوءاستفاده قرار گرفت. آسیبپذیری اجرای کد از راه دور در Marimo به مهاجمان اجازه میدهد تنها با ارسال یک درخواست اتصال به سرورهای Marimo، دسترسی کامل به یک shell تعاملی پیدا کرده و بدون نیاز به احراز هویت، دستورات سیستمی را اجرا کنند.
جزئیات آسیبپذیری اجرای کد از راه دور در Marimo (CVE-2026-39987)
آسیبپذیری بحرانی CVE-2026-39987 با شدت 9.3 از 10، تمامی نسخههای Marimo پیش از نسخه 0.23.0 را تحت تأثیر قرار میدهد. این آسیبپذیری به دلیل عدم وجود هرگونه کنترل احراز هویت در مسیر WebSocket مربوط به ترمینال داخلی پلتفرم، به مهاجمان این امکان را میدهد که با ارسال یک درخواست اتصال ساده به این مسیر /terminal/ws، به یک live shell دسترسی پیدا کنند و بدون نیاز به ورود به سیستم، دستورات دلخواه را اجرا نمایند.
در اطلاعیه امنیتی (security advisory) رسمی تیم Marimo آمده است:
«این ترمینال بدون هیچگونه مکانیزم اعتبارسنجی فعال بود و هر کاربر غیرمعتبر میتوانست به یک shell PTY کامل دسترسی پیدا کرده و دستورات دلخواه را اجرا کند.»
از آنجایی که Marimo یک پلتفرم نوتبوک متنباز، واکنشگرا (Reactive) و مبتنی بر زبان Python است که با کسب بیش از 20 هزار ستاره در GitHub به یکی از ابزارهای پرطرفدار در میان توسعهدهندگان تبدیل شده است، آسیبپذیریهای موجود در آن میتوانند به هدفی جذاب با ریسک بالا برای مهاجمان تبدیل شوند.
چگونه آسیبپذیری اجرای کد از راه دور در Marimo فعال میشود؟
سرور Marimo دارای یک ویژگی ترمینال داخلی است که به کاربران این امکان را میدهد تا دستورات را بهطور مستقیم از طریق مرورگر اجرا کنند. در حالیکه سایر بخشهای سرور برای دسترسی به سیستم نیازمند ورود و احراز هویت هستند، این ترمینال به طور کامل از هرگونه بررسی احراز هویت صرفنظر کرده است. به همین دلیل، هر مهاجمی که بتواند به سرور Marimo متصل شود، میتواند به راحتی به یک live shell دسترسی پیدا کرده و دستورات دلخواه خود را اجرا کند. این shell با سطح دسترسی پردازه Marimo اجرا میشود؛ سطحی که بسته به نحوه استقرار ممکن است بسیار گسترده و حتی معادل دسترسیهای مدیریتی (administrator) باشد.
این وضعیت موجب شده تا این آسیبپذیری به عنوان یک Pre-Auth RCE (Pre-Authentication Remote Code Execution) شناخته شود. به این معنا که مهاجم میتواند بدون نیاز به احراز هویت، به سیستم نفوذ کرده و دستورات خود را اجرا کند.
سرقت اطلاعات هویتی در کمتر از سه دقیقه
تیم Sysdig برای بررسی حملات واقعی، نمونههای honeypot با نسخههای آسیبپذیر Marimo را روی چندین ارائهدهنده ابری مستقر کرد. اولین تلاش مهاجم تنها 9 ساعت و 41 دقیقه پس از افشای عمومی آسیبپذیری ثبت شد که زمانی بسیار کوتاهتر از میانگین زمان سوءاستفاده از آسیبپذیریهای مشابه بود. در آن زمان هیچ ابزار اکسپلویت آمادهای وجود نداشت، اما مهاجم با استفاده از توضیحات موجود در اطلاعیه امنیتی رسمی موفق به توسعه یک اکسپلویت اختصاصی شد. مهاجم در چهار مرحله مختلف فرآیند سوءاستفاده را انجام داد:
- مرحله اول: تست اولیه برای تأیید قابلیت سوءاستفاده از آسیبپذیری
- مرحله دوم: مرور دستی سیستم فایل سرور
- مرحله سوم: دسترسی به فایلهای محیطی حاوی کلیدهای AWS و سایر اطلاعات حساس
- مرحله چهارم: بررسی مجدد فایلها یک ساعت بعد
تمام این عملیات در کمتر از سه دقیقه انجام شد. سپس، مهاجم یک ساعت بعد مجدداً به سرور دسترسی پیدا کرده و فایلهای مذکور را دوباره بررسی کرد. این عملکرد نشاندهنده فعالیت انسانی بود و نه یک اسکنر خودکارکه حکایت از برنامهریزی و هدفمندی در حملات داشت.
این رخداد بخشی از یک الگوی بزرگتر است
سرعت و نحوه سوءاستفاده از آسیبپذیری اجرای کد از راه دور در Marimo، نشاندهنده یک روند رو به رشد در میان ابزارهای مبتنی بر هوش مصنوعی (AI) و پلتفرمهای توسعهدهنده است. نمونه بارز این الگو، سوءاستفاده از ضعف امنیتی Langflow بود که تنها 20 ساعت پس از افشای آسیبپذیری، مورد سوءاستفاده قرار گرفت.
تیم Sysdig هشدار میدهد:
«نرمافزارهای کمتر شناختهشده به معنی نرمافزار امنتر نیستند. هر برنامهای که آسیبپذیری بحرانی در آن شناسایی شود، در عرض چند ساعت به هدفی برای حملات تبدیل خواهد شد.»
همچنین، این حمله نشان داد که سوءاستفاده از آسیبپذیریهای امنیتی حتی پیش از تخصیص CVE نیز آغاز میشود که این امر مشکلات جدی در اتکا به اسکنرهای مبتنی بر CVE را برجسته میکند.
ابزارهای مبتنی بر AI دیگری مانند MLflow، n8n و Langflow نیز پیش از این با آسیبپذیریهای مشابهی در زمینه اجرای کد از راه دور (RCE) روبهرو شدهاند، جایی که قابلیتهای اجرای کد برای توسعهدهندگان در صورت نبود کنترل دسترسی مناسب، به مسیر حملات تبدیل میشود.
راهکارهای امنیتی برای مقابله با آسیبپذیری اجرای کد از راه دور در Marimo
برای کاهش ریسک این آسیبپذیری و جلوگیری از سوءاستفادههای بیشتر، سازمانها باید فوراً اقدامات زیر را انجام دهند:
- بهروزرسانی فوری: بهروزرسانی به نسخه 23.0 که مشکل احراز هویت در ترمینال را برطرف میکند.
- محدودسازی دسترسی: در صورتی که امکان بهروزرسانی فوری وجود ندارد، دسترسی اینترنتی به سرورها باید مسدود شود یا سرویس باید پشت یک پروکسی با احراز هویت قرار گیرد.
- بررسی فوری احتمال نفوذ: هر نمونهای که در معرض اینترنت قرار داشته است، باید بهعنوان افشاشده در نظر گرفته شود.
- تغییر کلیدها و توکنها: تمامی کلیدهای AWS، توکنهای API و دیگر اطلاعات هویتی ذخیرهشده باید بلافاصله تغییر یابند.
نتیجهگیری
آسیبپذیری اجرای کد از راه دور در Marimo تهدیدی جدی برای سیستمهای مبتنی بر این پلتفرم است. سرعت سریع سوءاستفاده از آن، کمتر از 10 ساعت پس از افشا و سرقت اطلاعات حساس در کمتر از سه دقیقه، هشدار بزرگی برای تمامی سازمانهایی است که از این پلتفرم استفاده میکنند. لذا، سازمانها باید فوراً بهروزرسانیها را انجام دهند و اقدامات امنیتی لازم را برای جلوگیری از سوءاستفادههای بیشتر اتخاذ کنند.