آسیب‌پذیری بحرانی Docker Sandboxes امکان خواندن و تغییر فایل‌های سیستم میزبان مک‌اواس را برای کد مخرب اجراشده در ماشین مجازی فراهم می‌کند

اشتراک گذاری

Docker Sandboxes
❞ یک آسیب‌پذیری بحرانی با شناسه CVE-2026-77179 در Docker Sandboxes شناسایی شده است که به کد مخرب اجراشده در ماشین مجازی (VM) روی مک‌اواس (macOS) اجازه می‌دهد از دایرکتوری پروژه به‌اشتراک‌گذاشته‌شده خارج شود و فایل‌های دیگر سیستم میزبان را بخواند یا تغییر دهد. این آسیب‌پذیری Docker Sandboxes، نسخه‌های 0.28.0 تا پیش از 0.42.0 را در مک‌اواس تحت تأثیر قرار می‌دهد و امکان فرار از محیط سندباکس (Sandbox Escape) را با سطح دسترسی حساب کاربری میزبان فراهم می‌کند. داکر در 7 سپتامبر با انتشار نسخه 0.42.0 این ضعف امنیتی را پچ کرد و در 15 سپتامبر جزئیات آن را در یک اطلاعیه امنیتی به اطلاع کاربران رساند.

نحوه عملکرد Docker Sandboxes و شرایط سوءاستفاده

Docker Sandboxes هر عامل کدنویسی هوش مصنوعی (AI Coding Agent) را در یک ماشین مجازی کوچک و مجزا اجرا می‌کند و دایرکتوری پروژه را برای استفاده عامل در آن به اشتراک می‌گذارد. هر کدی که داخل این ماشین مجازی اجرا شود، در صورت مخرب بودن می‌تواند برای فرار از سندباکس مورد استفاده قرار گیرد؛ برای مثال، یک عامل کدنویسی که تحت کنترل مهاجم قرار گرفته باشد یا کد مخربی که عامل آن را نصب و اجرا می‌کند.

تا زمان انتشار این گزارش، هیچ نشانه‌ای از سوءاستفاده مهاجمان از این آسیب‌پذیری منتشر نشده است. آژانس امنیت سایبری و زیرساخت آمریکا (CISA) نیز در ارزیابی خود، هیچ موردی از سوءاستفاده از این آسیب‌پذیری ثبت نکرده و شناسه CVE-2026-77179 را در فهرست KEV قرار نداده است.

برای سوءاستفاده از این ضعف امنیتی، ابتدا باید کد مخرب داخل سندباکس اجرا شود. سندباکس اساساً برای محافظت از سیستم میزبان در برابر کدها و دستورهایی طراحی شده است که عامل هوش مصنوعی اجرا می‌کند. بااین‌حال، عامل کدنویسی داخل ماشین مجازی می‌تواند با دسترسی sudo پکیج‌های نرم‌افزاری را نصب کرده و دستورهای مختلفی را اجرا کند.

داکر در مستندات ایزوله‌سازی خود توضیح داده است که هایپروایزر (Hypervisor) مرز اصلی جداسازی سندباکس از سیستم میزبان را ایجاد می‌کند و وظیفه آن، تفکیک سطح دسترسی پردازه‌های اجراشده در داخل ماشین مجازی نیست.

مسیر فرار از سندباکس و دسترسی به فایل‌های سیستم میزبان

براساس توضیحات داکر، مسیر فرار از سندباکس از طریق سرور virtio-fs در سمت سیستم میزبان انجام می‌شود؛ کامپوننتی که وظیفه اشتراک‌گذاری فایل‌ها بین مک‌اواس و ماشین مجازی را بر عهده دارد. این کامپوننت هنگام دسترسی مجدد به یک فایل حذف‌شده، از مسیر ذخیره‌شده آن استفاده می‌کند و در صورت وجود لینک نمادین (Symlink) در این مسیر، آن را نیز به‌عنوان بخشی از مسیر دسترسی در نظر می‌گیرد.

در چنین شرایطی، کدی که داخل ماشین مجازی اجرا می‌شود می‌تواند یکی از دایرکتوری‌های موجود در مسیر فایل را با یک لینک نمادین جایگزین کرده و از این طریق به فایل‌هایی خارج از دایرکتوری پروژه دسترسی پیدا کند. این دسترسی با مجوزهای حساب کاربری میزبان انجام می‌شود؛ همان حسابی که مانیتور ماشین مجازی (Virtual Machine Monitor یا VMM) با سطح دسترسی آن اجرا می‌شود. داکر هشدار داده است که این دسترسی در نهایت می‌تواند منجر به اجرای کد روی سیستم میزبان شود.

در این میان، Docker Sandboxes به‌صورت پیش‌فرض دایرکتوری پروژه را با محیط سندباکس به اشتراک می‌گذارد و امکان دسترسی به فایل‌های این دایرکتوری را فراهم می‌کند. به همین دلیل، نحوه مدیریت این مسیر اشتراکی از نظر امنیتی اهمیت زیادی دارد. داکر از ماه مارس در مستندات خود تأکید کرده است که لینک‌های نمادین نباید مسیری خارج از فضای کاری (Workspace)، یعنی همان دایرکتوری پروژه به‌اشتراک‌گذاشته‌شده، را دنبال کنند. بااین‌حال، پیش از انتشار پچ، این آسیب‌پذیری امکان دور زدن این محدودیت را فراهم می‌کرد.

آسیب‌پذیری دوم؛ ارتباط سندباکس با سوکت‌های سیستم میزبان

داکر در همان اطلاعیه امنیتی، از یک آسیب‌پذیری دیگر با شناسه CVE-2026-79994 نیز خبر داده است. داکر این آسیب‌پذیری را با شدت بالا (High) ارزیابی کرده و امتیاز 8.7 را در سیستم امتیازدهی CVSS به آن اختصاص داده است. این ضعف امنیتی در رله ارتباطی (Relay) قرار دارد؛ بخشی که به محیط سندباکس اجازه می‌دهد به سوکت‌های دامنه یونیکس (Unix Domain Sockets) در فضای کاری مجاز متصل شود. به این ترتیب، محیط سندباکس می‌تواند از طریق این سوکت‌ها با سرویس‌های لوکال ارتباط برقرار کند.

رله ابتدا بررسی می‌کرد که مسیر سوکت داخل فضای کاری قرار دارد یا خیر و سپس با استفاده از نام همان مسیر، اتصال را برقرار می‌کرد. کد مخرب می‌توانست در فاصله بین این دو مرحله، یکی از دایرکتوری‌های موجود در مسیر را با یک لینک نمادین (Symlink) جایگزین کند. در این صورت، سیستم میزبان ممکن بود به یک سوکت AF_UNIX خارج از فضای کاری متصل شود و از طریق آن، داده‌ها یا قابلیت‌های سیستم میزبان در اختیار کد مخرب قرار گیرد.

این آسیب‌پذیری نسخه‌های 0.37.0 تا 0.41.9 را تحت تأثیر قرار می‌دهد و از نسخه 0.42.0 به بعد پچ شده است. داکر اعلام کرده است که آسیب‌پذیری نخست فقط سیستم‌عامل مک‌اواس را تحت تأثیر قرار می‌دهد، اما برای CVE-2026-79994 پلتفرم مشخصی را اعلام نکرده است. از آنجا که Docker Sandboxes روی سیستم‌های میزبان مک‌اواس، ویندوز و لینوکس اجرا می‌شود، داکر مشخص نکرده است که CVE-2026-79994 کدام پلتفرم‌ها را تحت تأثیر قرار می‌دهد.

ارزیابی آژانس امنیت سایبری و زیرساخت آمریکا (CISA) نیز تاکنون هیچ موردی از سوءاستفاده از این آسیب‌پذیری ثبت نکرده و شناسه CVE-2026-79994 نیز در فهرست KEV قرار نداده است.

نسخه‌های آسیب‌پذیر و روش به‌روزرسانی Docker Sandboxes

جدول زیر نسخه‌های آسیب‌پذیر، کامپوننت‌های تحت تأثیر، پلتفرم‌های مربوط و شدت هر دو آسیب‌پذیری را نشان می‌دهد.

شناسه CVE

کامپوننت آسیب‌پذیر

نسخه‌های تحت تأثیر

پلتفرم

شدت

CVE-2026-77179

سرور میزبان virtio-fs

0.28.0 تا پیش از 0.42.0

مک‌اواس

بحرانی

CVSS 9.4

CVE-2026-79994

رله ارتباطی محیط سندباکس با سوکت‌های یونیکس میزبان

0.37.0 تا پیش از 0.42.0

اعلام نشده

بالا

 CVSS 8.7

داکر توصیه می‌کند کاربران Docker Sandboxes خود را به نسخه 0.42.0 یا جدیدتر به‌روزرسانی کنند. تا 17 سپتامبر، جدیدترین نسخه منتشرشده 0.43.0 بود که در 15 سپتامبر در دسترس قرار گرفت.

اگر امکان به‌روزرسانی وجود ندارد، داکر توصیه می‌کند از حالت کلون (Clone Mode) استفاده شود و دایرکتوری‌ها و فایل‌های سیستم میزبان با دسترسی خواندن و نوشتن در اختیار سندباکس قرار نگیرند. این توصیه برای هر دو آسیب‌پذیری مطرح شده است.

 دستور sbx run به‌صورت پیش‌فرض دایرکتوری فعلی را با دسترسی خواندن و نوشتن در اختیار سندباکس قرار می‌دهد. حالت کلون فقط برای پروژه‌های دارای مخزن گیت قابل استفاده است و باید هنگام ایجاد سندباکس فعال شود. اگر سندباکس از قبل ایجاد شده باشد، برای فعال‌کردن این حالت باید سندباکس موجود را حذف نمود و یک سندباکس جدید را با گزینه –clone ایجاد کرد.

حالت کلون فقط از مخزن در برابر تغییر فایل‌ها محافظت می‌کند و مانع خواندن آن‌ها نمی‌شود. در این حالت، مخزن به‌صورت فقط‌خواندنی (Read-Only) در مسیر /run/sandbox/source قرار می‌گیرد؛ بااین‌حال، فایل‌هایی که در گیت ثبت نشده‌اند، مانند .env، همچنان از داخل سندباکس قابل خواندن هستند.

داکر در 15 سپتامبر، هشت روز پس از انتشار نسخه 0.42.0، رکوردهای CVE و اطلاعیه امنیتی مربوط به این دو آسیب‌پذیری را منتشر کرد. بااین‌حال، تا 17 سپتامبر هیچ‌یک از این دو CVE در یادداشت‌های انتشار نسخه 0.42.0 در گیت‌هاب یا مستندات داکر ذکر نشده بود.

در رکورد اولیه CVE-2026-79994، نسخه 0.41.0 به‌عنوان نخستین نسخه پچ‌شده معرفی شده بود؛ اما لینک درج‌شده برای انتشار این نسخه به صفحه‌ای ارجاع می‌داد که وجود نداشت. داکر حدود یک ساعت پس از انتشار این رکورد، اطلاعات آن را به‌روزرسانی کرد و نسخه 0.42.0 را به‌عنوان نخستین نسخه دارای پچ امنیتی معرفی نمود.

پیش‌تر، در ماه آوریل، پژوهشگران Cyera Research Labs در گزارشی توضیح دادند که تزریق پرامپت (Prompt Injection) می‌تواند یک عامل کدنویسی را به سوءاستفاده از یک آسیب‌پذیری جداگانه در موتور داکر (Docker Engine) و حمله به سیستم میزبان وادار کند.

منابع

دیدگاهتان را بنویسید

مطالب مرتبط