اطلاعات فنی برای یک آسیبپذیری جدی که چندین نسخه هسته لینوکس را تحت تأثیر قرار میدهد و میتواند با «قابلیتهای حداقلی» راهاندازی شود پدیدار شدهاند، این مشکل امنیتی به عنوان StackRot (CVE-2023-3269) نامیده می شود و می تواند برای به خطر انداختن هسته و افزایش امتیازات استفاده شود.
یک وصله برای هستههای پایدار آسیبدیده از اول جولای در دسترس است و انتظار میرود جزئیات کامل این مشکل به همراه یک کد اکسپلویت کامل تا پایان ماه پیشبینی شود.
محقق امنیتی رویهان لی این آسیب پذیری را کشف و گزارش کرد، او امروز در پستی توضیح میدهد که برزیرسیستم مدیریت حافظه هسته تأثیر میگذارد، مؤلفهای که مسئول پیادهسازی حافظه مجازی و صفحهبندی تقاضا، تخصیص حافظه برای نیازهای هسته و برنامههای فضای کاربر و همچنین نگاشت فایلها به آدرس فرآیندها است.
StackRot بر روی تمامی پیکربندی های هسته در نسخه های لینوکس 6.1 تا 6.4 تأثیر می گذارد، اگرچه لی گزارش آسیبپذیری را در 15 ژوئن ارسال کرد، اما ایجاد یک رفع مشکل به دلیل پیچیدگی آن تقریباً دو هفته طول کشید و لینوس توروالدز این تلاش را رهبری کرد.
“در 28 ژوئن، در طول پنجره ادغام هسته لینوکس 5.5، اصلاح در درخت لینوس ادغام شد و لینوس یک پیام ادغام جامع ارائه کرد تا سری وصلهها را از دیدگاه فنی توضیح دهد، این وصلهها متعاقباً به هستههای پایدار بکپورت شدند (6.1. 37، 6.3.11، و 6.4.1)، به طور موثری باگ “Stack Rot” را در 1 ژوئیه حل کرد.”
جزئیات StackRot
StackRot از مدیریت گسترش پشته توسط هسته لینوکس در زیرسیستم مدیریت حافظه آن ناشی میشود که به مدیریت مناطق حافظه مجازی (VMA) مرتبط است، به طور خاص، نقطه ضعف در درخت افرا است، یک سیستم ساختار داده جدید برای VMA ها که در هسته لینوکس 6.1 معرفی شده است که جایگزین درختان قرمزمشکی شده و بر مکانیزم خواندن کپی به روز رسانی (RCU) تکیه دارد.
این آسیبپذیری یک مشکل استفاده پس از آزادسازی (UAF) است که از نحوه مدیریت پشته ناشی میشود، زیرا درخت افرا میتواند بدون دریافت قفل نوشتن مدیریت حافظه (MM) جایگزین گره شود، همانطور که هسته لینوکس پشته را گسترش می دهد و شکاف بین VMA ها را حذف می کند، یک گره جدید در “درخت افرا” ایجاد می شود و گره قدیمی برای حذف پس از اتمام خواندن های فعلی به دلیل ایمنی RCU درخت افرا مشخص می شود.
با این حال، در طول دوره مهلت RCU، زمانی که یک فرآیند به گره قدیمی دسترسی پیدا میکند، ممکن است یک مشکل استفاده پس از آزاد شدن اتفاق بیفتد، بنابراین یک زمینه قابل بهرهبرداری برای افزایش امتیازات ایجاد میکند، شرایط مسابقه در یک سیستم چند CPU که منجر به نقص استفاده پس از آزاد شدن می شود.
Ruihan Li اشاره میکند که کدهای مخرب StackRot یک کار چالش برانگیز است و CVE-2023-3269 ممکن است اولین نمونه از آسیبپذیری استفاده پس از آزادسازی توسط RCU (UAFBR) از نظر تئوری باشد.
با این حال، این محقق اعلام کرد که قصد دارد تا پایان ماه جولای جزئیات فنی کامل در مورد StackRot و یک اکسپلویت اثبات مفهوم (PoC) را افشا کند، هسته لینوکس 6.1 به عنوان نسخه پشتیبانی بلند مدت (LTS) از فوریه تایید شده است، با این حال همه توزیع های اصلی لینوکس آن را پذیرفته اند.
به عنوان مثال، اوبونتو 22.04.2 LTS (Jammy Jellyfish)، که پشتیبانی استاندارد آن در آوریل 2027 به پایان می رسد، با نسخه 5.19 هسته لینوکس عرضه می شود، از طرف دیگر، Debian 12 (Bookworm) با هسته لینوکس 6.1 ارائه می شود.
فهرست کاملی از توزیعهای لینوکس با استفاده از هسته نسخه 6.1 یا بالاتر از DistroWatch در دسترس است، کاربران باید نسخه کرنل را که توزیع لینوکس روی آن اجرا میشود بررسی کنند و نسخهای را انتخاب کنند که تحت تأثیر StackRot قرار نگیرد یا نسخه بهروزرسانیشدهای را که حاوی اصلاح است، انتخاب کنند.
افزودن نظر