VulnCity

Copy Fail — Local Privilege Escalation In linux Kernel

  • شناسه CVE: CVE-2026-31431
  • شدت: بحرانی
  • امتیاز CVSS: 7.8
  • فروشنده/سازنده: Linux Kernel Organization
LPELinux KernelPrivilege Escalationalgif_aeadAF_ALGPage CacheDeterministic
Copy Fail یک آسیب‌پذیری منطقی قطعی (deterministic logic flaw) در زیرسیستم رمزنگاری هسته لینوکس است که امکان افزایش سطح دسترسی به root را با قابلیت اعتماد 100% فراهم می‌کند.

## بررسی آسیب‌پذیری
Copy Fail در ماژول algif_aead از رابط AF_ALG (User Space Crypto API) قرار دارد. این آسیب‌پذیری در حدود یک ساعت با کمک هوش مصنوعی کشف شد و برخلاف بسیاری از آسیب‌پذیری‌های هسته، به race condition یا offset خاصی وابسته نیست.

## علت ریشه‌ای
این نقص از ترکیب سه به‌روزرسانی مستقل ایجاد شد:
1. **2011**: افزودن الگوریتم authencesn
2. **2015**: پشتیبانی AEAD در رابط AF_ALG
3. **2017**: بهینه‌سازی in-place معیوب (commit 72548b093ee3)

بهینه‌سازی in-place معیوب باعث می‌شود که req->src و req->dst به یک scatterlist ترکیبی اشاره کنند. به همین دلیل، صفحات page cache از فراخوانی splice() به‌طور نادرست مستقیماً در destination scatterlist قابل نوشتن زنجیر می‌شوند.

## مکانیزم بهره‌برداری
الگوریتم authencesn از بافر مقصد به‌عنوان scratch pad استفاده می‌کند و **چهار بایت کنترل‌شده** را فراتر از ناحیه خروجی مجاز می‌نویسد. این نوشتن مستقیماً به **page cache** هسته انجام می‌شود.

### مراحل حمله:
1. **کنترل مقدار overwrite**: مهاجم با ارسال seqno_lo (نیمه پایین sequence number) در بایت‌های 4-7 از AAD، مقدار دقیق چهار بایت را کنترل می‌کند
2. **کنترل موقعیت overwrite**: با دستکاری پارامترهای splice offset، splice length و assoclen
3. **هدف‌گیری setuid binaries**: تزریق shellcode به بخش .text فایل‌های اجرایی مانند /usr/bin/su، sudo یا passwd
4. **افزایش سطح دسترسی**: اجرای باینری تغییریافته دسترسی root (UID 0) می‌دهد

## ویژگی‌های بهره‌برداری
Copy Fail نسبت به آسیب‌پذیری‌های قبلی مانند Dirty Cow یا Dirty Pipe بسیار شدیدتر است:

- **بدون race condition**: نقص منطقی مستقیم بدون نیاز به برنده شدن در پنجره race condition
- **قابلیت اعتماد 100%**: بهره‌برداری قطعی و موفق در اولین تلاش
- **قابلیت حمل بالا**: اسکریپت پایتون 732 بایتی که بدون تغییر روی تمام توزیع‌های اصلی لینوکس از 2017 کار می‌کند
- **بدون وابستگی**: فقط به کتابخانه‌های استاندارد پایتون (os، socket، zlib) نیاز دارد
- **مخفی‌کاری کامل**: فایل روی دیسک دست‌نخورده باقی می‌ماند و ابزارهای File Integrity Monitoring را دور می‌زند

## ارزیابی تأثیر
این آسیب‌پذیری میلیون‌ها سیستم را تحت تأثیر قرار می‌دهد:
- **فرار از container**: به راحتی از Kubernetes container خارج می‌شود
- **تسخیر multi-tenant host**: میزبان‌های چندمستأجره را به خطر می‌اندازد
- **سازمایش CI/CD pipeline**: خطوط لوله یکپارچه‌سازی و استقرار مداوم را مصالحه می‌کند
- **اشتراک page cache**: چون هسته و page cache در کل node مشترک است، تأثیر گسترده است

## جزئیات فنی
- **ماژول آسیب‌پذیر**: algif_aead (AF_ALG interface)
- **الگوریتم**: authencesn (IPsec ESN support)
- **Primitive حمله**: نوشتن 4 بایت کنترل‌شده به page cache
- **هدف**: setuid-root binaries (/usr/bin/su، sudo، passwd)
- **روش**: سوءاستفاده از تعامل AF_ALG socket و splice() system call
- **پچ**: commit a664bf3d603d (برگشت به out-of-place operation)

## نسخه‌های آسیب‌پذیر
Linux Kernel 4.14 تا 6.19.12 (سیستم‌های منتشرشده از 2017)

## پوشش امنیتی
محصولات Palo Alto Networks محافظت ارائه می‌دهند:
- Next-Generation Firewall با Advanced Threat Prevention
- Cortex Cloud
- Cortex XDR و XSIAM

## تشخیص بهره‌برداری
Unit 42 Managed Threat Hunting با استفاده از Cortex XDR و کوئری‌های XQL تلاش‌های بهره‌برداری را ردیابی می‌کند. الگوی تشخیص: کاربران غیر root که فرآیند su را از طریق parent process غیرمعمول (غیر از shell، sudo یا خود su) اجرا می‌کنند.

نرم‌افزارهای تحت تأثیر

  • Linux Kernel 4.14 - 6.19.12
  • Ubuntu (2017+)
  • Amazon Linux 2/2023
  • Red Hat Enterprise Linux 7/8/9/10
  • Debian 9/10/11/12
  • SUSE Linux Enterprise
  • AlmaLinux 8/9/10
  • Rocky Linux
  • Fedora
  • CentOS