چکیده

آسیب‌پذیری ارجاع به اشاره‌گر تهی در ماژول زمان‌بندی بسته‌های شبکه (net/sched) کرنل لینوکس، به‌ویژه در الگوریتم QFQ (Quick Fair Queueing) و تابع agg_dequeue شناسایی شده است. این ضعف زمانی رخ می دهد که تابع peek در qdisc (رشته صف‌بندی شبکه) مقدار NULL را بازگرداند و کد بدون بررسی از آن استفاده کند. بهره برداری از این ضعف می تواند منجر به کرش یا ناپایداری سیستم شود.

توضیحات

آسیب‌پذیری CVE-2025-40083 در کرنل لینوکس در فایل net/sched/sch_qfq.c و تابع agg_dequeue رخ می‌دهد. در این تابع، کد به‌طور مستقیم از خروجی cl->qdisc->ops->peek(cl->qdisc) بدون بررسی مقدار بازگشتی NULL استفاده می‌کند. در شرایطی که صف خالی باشد یا qdisc (Queueing Discipline، سیستم مدیریت صف‌بندی بسته‌ها در کرنل لینوکس) به‌درستی پیاده‌سازی نشده باشد، این فراخوانی NULL را باز می گرداند و منجر به ارجاع به اشاره گر تهی (Null Pointer Dereference) کرش یا ناپایداری کرنل می‌شود.

این عملکرد مشابه ضعفی در ماژول sch_hfsc.c می باشد که با افزودن بررسی و استفاده از تابع کمکی پچ شده است. برای جلوگیری از تکرار کد، تغییرات زیر اعمال شده است:

-تبدیل تابع qdisc_warn_nonwc در هدر include/net/pkt_sched.h به یک تابع درون‌خطی ایستا (static inline function).

– انتقال تابع کمکی qdisc_peek_len از net/sched/sch_hfsc.c به هدر عمومی include/net/pkt_sched.h تا دیگر زمان بندها (schedulers) بتوانند از آن استفاده کنند.

– استفاده از qdisc_peek_len() داخل agg_dequeue تا بازگشت peek() پیش از استفاده بررسی شود و از کرش جلوگیری گردد.

این ضعف به‌سادگی قابل بهره‌برداری است؛ مهاجم لوکال با دسترسی پایین می‌تواند با دستکاری صف‌های QFQ یا بارگذاری ماژول‌های مخرب، شرایطی ایجاد کند که peek مقدار NULL بازگرداند و سیستم کرش کند. پیامد اصلی این آسیب‌پذیری، تأثیر بالا بر در دسترس‌پذیری است که می‌تواند منجر به کرش کامل سیستم شود. این ضعف با اعمال پچ‌های پایدار در شاخه‌های 6.6.116، 6.12.57 و 6.16 به‌طور کامل پچ شده است.

CVSS

Score Severity Version Vector String
5.5 MEDIUM 3.1 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H

لیست محصولات آسیب پذیر

Versions Product
affected from 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before 6ffa9d66187188e3068b5a3895e6ae1ee34f9199

affected from 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before 6ff8e74c8f8a68ec07ef837b95425dfe900d060f

affected from 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 before dd831ac8221e691e9e918585b1003c7071df0379

Linux

لیست محصولات بروز شده

Versions Product
unaffected from 6.6.116 through 6.6.*

unaffected from 6.12.57 through 6.12.*

unaffected from 6.16

Linux

استفاده محصول در ایران

در این جدول، تعداد صفحات ایندکس‌شده در گوگل با دامنه .ir که Linux kernel را ذکر کرده اند، ثبت شده است. این داده صرفاً برای برآورد تقریبی حضور محصولات در وب ایران استفاده شده و نمایانگر میزان نصب دقیق و استفاده واقعی نیست.

Approx. Usage in .ir Domain via Google

(Total Pages)

Search Query (Dork) Product
80,200 site:.ir “Linux kernel” Linux kernel

نتیجه گیری

این آسیب‌پذیری یک ضعف لوکال با شدت متوسط در ماژول QFQ کرنل لینوکس است که می‌تواند منجر به کرش سیستم و اختلال در در دسترس‌پذیری شود. به دلیل نیاز به دسترسی لوکال، این ضعف در محیط‌های چندکاربره، کانتینری یا سیستم‌های مدیریت ترافیک شبکه (مانند روترها و فایروال‌ها) ریسک قابل‌توجهی ایجاد می‌کند. با توجه به انتشار پچ‌های رسمی، اجرای اقدامات زیر برای جلوگیری از بهره‌برداری و افزایش امنیت ضروری است:

  • به‌روزرسانی فوری کرنل: سیستم‌ها را به نسخه‌های پایدار 6.6.116، 6.12.57 یا 6.16 یا جدیدتر به روزرسانی کنید. پچ‌ها در مخازن رسمی org و توزیع‌های لینوکس در دسترس هستند.
  • بررسی ماژول‌های QFQ: از ابزار tc qdisc show برای شناسایی صف‌های فعال QFQ استفاده کنید و در صورت عدم نیاز، آن‌ها را حذف یا با الگوریتم‌های امن‌تر (مانند fq_codel) جایگزین کنید.
  • محدودسازی دسترسی tc: دسترسی به دستور tc را به کاربران root یا گروه‌های معتبر محدود کنید.
  • مانیتورینگ کرنل: لاگ‌های dmesg و journalctl را برای هشدارهای qdisc_warn_nonwc یا Kernel Panic مرتبط با sch_qfq مانیتور کنید.
  • ایزوله‌سازی محیط: در محیط‌های ابری یا کانتینری، کرنل را با گزینه‌های ایمن سازی مانند unprivileged_userns_clone=0 اجرا کنید تا دسترسی به قابلیت‌های net/sched محدود شود.
  • تست امنیتی: با استفاده از ابزارهایی مانند syzkaller یا fuzzing دستی، ماژول‌های net/sched را در محیط تست بررسی کنید تا از عدم وجود شرایط ارجاع به اشاره گر تهی اطمینان حاصل شود.
  • آموزش مدیران سیستم: تیم‌های عملیات را درباره ریسک‌های دستکاری qdisc و اهمیت به‌روزرسانی منظم کرنل آموزش دهید.

اجرای این اقدامات، به‌ویژه به‌روزرسانی سریع کرنل و محدودسازی دسترسی به ابزارهای مدیریت ترافیک، ریسک بهره‌برداری از این آسیب‌پذیری را به حداقل رسانده و پایداری سیستم‌های لینوکس را تضمین می‌کند.

امکان استفاده در تاکتیک های Mitre Attack

Initial Access (TA0001)
مهاجم برای بهره‌برداری از این ضعف نیاز به دسترسی محلی دارد؛ آسیب‌پذیری در مسیر پردازش qdisc/تابع agg_dequeue قرار گرفته و فقط با ایجاد شرایط خاص در میزبان (مثلاً با اجرای دستورات یا ماژول‌هایی که صف QFQ را دستکاری می‌کنند) فعال می‌شود.

Impact (TA0040)
اثر قطعی و گزارش‌شده این ضعف کاهش یا از دست رفتنِ در دسترس‌پذیری سیستم است که می‌تواند منجر به کرش کامل میزبان و اختلال سرویس‌های وابسته گردد.

منابع

  1. https://www.cve.org/CVERecord?id=CVE-2025-40083
  2. https://www.cvedetails.com/cve/CVE-2025-40083/
  3. https://app.opencve.io/cve/CVE-2025-40083
  4. https://vulmon.com/vulnerabilitydetails?qid=CVE-2025-40083
  5. https://vuldb.com/?id.330399
  6. https://git.kernel.org/stable/c/6ffa9d66187188e3068b5a3895e6ae1ee34f9199
  7. https://git.kernel.org/stable/c/6ff8e74c8f8a68ec07ef837b95425dfe900d060f
  8. https://git.kernel.org/stable/c/dd831ac8221e691e9e918585b1003c7071df0379

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *