CopyEscape؛ حفرهٔ داکر در دستور docker cp
خلاصهٔ کاملتر
پژوهشگرهای Imperva Threat Research یه آسیبپذیری بحرانی تو داکر پیدا کردن که با شناسهٔ CVE-2026-17106 و اسم CopyEscape شناخته میشه. یه کانتینر یا سندباکس تحت کنترل مهاجم میتونه موقعی که با docker cp ازش فایل میگیرید، فایلهای خود هاست رو بازنویسی کنه. داکر تأیید کرده sbx cp، ابزار کپی Docker Sandboxes، هم درگیره.
نکته اینجاست که docker cp یه کپی سادهٔ فایل نیست: دیمون فایلهای خواستهشده رو داخل یه آرشیو tar میبنده و بعد CLI اون آرشیو رو روی ماشین محلی باز میکنه. اول، روال آرشیوسازی یه مسیر رو چند بار وارسی میکنه و کانتینرِ در حال اجرا میتونه بین دو بررسی، چیزی که اول دایرکتوری تشخیص داده شده رو با یه سیملینک عوض کنه؛ حاصلش آرشیویه که وضعیت متناقض توصیف میکنه.
ضعف دوم موقع استخراج روی هاسته: CLI برای اعتبارسنجی، مقصد سیملینک رو جداگانه میسازه ولی خودِ سیملینک رو با همون مقدار اصلیِ داخل آرشیو میسازه. همین اختلاف باعث میشه یه سیملینک مطلق به بیرون از مسیر مقصد اشاره کنه و فایل مهاجم هر جایی که کاربرِ اجراکنندهٔ دستور دسترسی داره نوشته بشه. روی macOS این استخراج روی خود هاست انجام میشه، نه داخل ماشین مجازی لینوکسی Docker Desktop.
به گزارش منبع، هدفهای جذاب برای مهاجم فایلهای راهاندازی شل، تنظیمات SSH، کلیدهای ابری، سورسکد، فایلهای اجرایی و فایلهای ماندگاری مثل LaunchAgent هستن؛ دستکاری فایل پیکربندی شل باعث میشه دفعهٔ بعد که ترمینال باز میشه دستور مهاجم اجرا بشه. Imperva نشون داده جایگزین کردن باینری runc با یه اسکریپت مهاجم میتونه به اجرای کد با دسترسی روت برسه.
خطرش برای سیستمهای توسعهدهنده، زیرساخت CI/CD، پاسخ به حادثه و سندباکسهای ایجنتهای هوش مصنوعی جدیه، چون حتی گرفتن ساده لاگ یا خروجی بیلد از یه کانتینر نامطمئن کافیه. راهحل، آپدیت به Docker Engine و CLI نسخهٔ ۲۹.۷.۲ و Docker Desktop نسخهٔ ۴.۸۶.۰ به بالاست. تا اعمال وصله هم بهتره از کانتینر نامطمئنِ در حال اجرا فایل کپی نکنید و اتوماسیون کپی با دسترسی روت رو کنار بذارید.
نکات کلیدی:
- CopyEscape یا CVE-2026-17106 مسیر کپی کانتینر به هاست رو تو docker cp و sbx cp هدف میگیره
- ریشهاش رقابت زمانی موقع ساخت آرشیو tar بهعلاوهٔ بررسی ناقص سیملینک موقع استخراجه
- نتیجه: نوشتن فایل دلخواه روی هاست و در بدترین حالت اجرای کد با دسترسی روت
- وصله تو Docker Engine/CLI نسخهٔ ۲۹.۷.۲ و Docker Desktop نسخهٔ ۴.۸۶.۰ اومده




