یک آسیبپذیری قدیمی در رابط رمزنگاری AF_ALG در هسته لینوکس (Linux Kernel) که به مدت ۱۴ سال شناسایی نشده بود، اکنون کشف شده است. این نقص امنیتی به یک مهاجم محلی بدون دسترسیهای ویژه اجازه میدهد تا از طریق بهرهبرداری از یک Race Condition در عملیات نوشتن همزمان در Socketها، دسترسی سطح Root را به دست آورده و از محیط ایزوله Docker Escape کند.
جزئیات فنی و تحلیل آسیبپذیری
این نقص که با شناسه CVE-2025-39964 ردیابی میشود، در تابع af_alg_sendmsg() قرار دارد. رابط AF_ALG عملیات رمزنگاری هسته مانند هشینگ و رمزگذاری متقارن را از طریق Socketهای استاندارد در اختیار برنامههای User-space قرار میدهد. از آنجایی که این رابط برای کاربران غیرprivileged در دسترس است، به هدفی جذاب برای مهاجمان تبدیل شده است.
مشکل اصلی زمانی رخ میدهد که هسته لینوکس در هنگام انتظار برای حافظه Socket، قفل lock_sock() را رها میکند. این رفتار اجازه میدهد دو Thread به طور همزمان عملیات sendmsg() را روی یک Socket اجرا کنند. در صورت وقوع یک تداخل زمانی دقیق (Interleaving) و شکست در کپی دادهها در User-space، وضعیت متغیر ctx->merge به گونهای تغییر میکند که منجر به دسترسی خارج از محدوده (Out-of-bounds) به حافظه میشود.
مسیر حمله و اکسپلویت
- Heap Spraying: مهاجم با استفاده از تکنیک Heap Spraying روی اشیاء مجاور، مقدار
page_linkرا تحت تأثیر قرار میدهد. - Write Primitive: با استفاده از مدیریت خطاهای Usercopy به عنوان یک Oracle، مهاجم میتواند مکانهای قابل نوشتن در حافظه را شناسایی کرده و عملیات نوشتن را به صفحاتی که شامل
core_patternهستند هدایت کند. - اجرای کد: با جایگزینی
core_patternبا یک دستور که به فایل اکسپلویت اشاره میکند و ایجاد یک Crash عمدی در یک Process فرزند، کد مهاجم با دسترسی Root اجرا میشود.
تأثیر بر محیطهای کانتینری
به دلیل اینکه کانتینرهای Docker از هسته میزبان (Host Kernel) استفاده میکنند و رابط AF_ALG در این محیطها در دسترس است، این آسیبپذیری امکان Docker Escape را فراهم کرده و اجازه میدهد مهاجم از داخل کانتینر به سطح Root سیستم میزبان دسترسی پیدا کند.
راهکارهای مقابله و اصلاح
اصلاحیه ارائه شده در نسخههای جدید، مالکیت انحصاری نوشتن را از طریق ctx->write پیادهسازی میکند تا از ایجاد وضعیتهای ناسازگار جلوگیری شود. مدیران سیستم باید سریعاً بهروزرسانیهای هسته را نصب کنند. نسخههای پایدار اصلاح شده عبارتند از: 5.10.245, 5.15.194, 6.1.154, 6.6.108, 6.12.49, و 6.16.9.
با توجه به اینکه CISA این آسیبپذیری را در فهرست Known Exploited Vulnerabilities قرار داده است، اولویت بالایی برای پچ کردن سیستمهای Multi-tenant و سرویسهای متصل به اینترنت توصیه میشود.