یک آسیبپذیری قدیمی در هسته (Kernel) لینوکس کشف شده است که به مهاجمان محلی اجازه میدهد سطح دسترسی خود را به Root ارتقاء داده و در محیطهای خاص، از کانتینرهای Docker خارج شده تا سیستم میزبان (Host) را به طور کامل تحت کنترل درآورند.
جزئیات فنی و ریشه مشکل
این نقص امنیتی در رابط رمزنگاری فضای کاربر AF_ALG در لینوکس وجود دارد و ناشی از عملیات نوشتن همزمان (Concurrent Writes) ناامن در یک Socket مشترک است که برای عملیاتی مانند رمزگذاری و رمزگشایی AES استفاده میشود. از آنجایی که پردازشهای محلی بدون دسترسی ویژه (Unprivileged) میتوانند به این رابط دسترسی داشته باشند، این مورد به یک سطح حمله (Attack Surface) جذاب برای پژوهشگران و مهاجمان تبدیل شده است.
تحلیل مکانیسم حمله
این آسیبپذیری که با شناسه CVE-2025-39964 ثبت شده، در واقع یک Race Condition در مسیر مدیریت sendmsg() در AF_ALG است. در حالت عادی، هسته لینوکس ورودیهای رمزنگاری را از طریق لیستهای scatter-gather ردیابی میکند. اما به دلیل یک نقص در مدیریت قفلها (Locks)، دو Thread میتوانند همزمان روی یک Socket بنویسند.
- مهاجمان میتوانند با دستکاری زمانبندی (Timing)، باعث ایجاد دسترسی خارج از محدوده (Out-of-bounds access) شوند.
- این وضعیت اجازه میدهد دادههای Heap تحت کنترل مهاجم، متادیتای
scatterlistرا تغییر دهند. - در نهایت، مهاجم میتواند یک
Arbitrary Kernel Writeایجاد کرده و مقدارcore_patternرا بازنویسی کند. - با تغییر این مقدار و ایجاد Crash در یک پردازش فرزند، کد مخرب مهاجم با دسترسی Root اجرا میشود.
تأثیر بر محیطهای Containerized
از آنجایی که کانتینرها از هسته مشترک سیستم میزبان استفاده میکنند، این نقص امنیتی میتواند منجر به Container Escape شود. به این معنا که مهاجم از محیط ایزوله Docker خارج شده و به کل زیرساخت Host دسترسی پیدا میکند.
وضعیت اصلاحیه و نسخههای آسیبپذیر
این کد آسیبپذیر از نسخه 2.6.38 در سال ۲۰۱۱ معرفی شده و حدود ۱۴ سال فعال بوده است. توسعهدهندگان لینوکس با افزودن مالکیت انحصاری برای نوشتن در Contextهای AF_ALG، این مشکل را برطرف کردهاند. نسخههای اصلاح شده شامل موارد زیر است:
Linux 5.10.246, 5.15.195, 6.1.155, 6.6.109, 6.12.50, and 6.16.10
توصیههای امنیتی برای مدیران SOC و CISO
با توجه به اینکه CISA تایید کرده است که این آسیبپذیری در دنیای واقعی مورد بهرهبرداری (Exploited in the wild) قرار گرفته است، اقدامات زیر ضروری است:
- بهروزرسانی فوری Kernel در تمامی توزیعهای لینوکس و Reboot سیستمها.
- اولویتبندی بهروزرسانی در زیرساختهای اشتراکی، میزبانهای کانتینر (Container Hosts) و سیستمهای چندکاربره.
- پایش دقیق محیطهایی که در آنها کدهای غیرقابل اعتماد یا Workloadهای مستاجرانی (Tenants) اجرا میشود.