- شناسه CVE-2026-23398 :CVE
- CWE-476 :CWE
- yes :Advisory
- منتشر شده: مارس 26, 2026
- به روز شده: مارس 26, 2026
- امتیاز: 6.2
- نوع حمله: Null Pointer Dereference
- اثر گذاری: Denial of Service (Dos)
- حوزه: سیستمعاملها و اجزای کلیدی آن
- برند: Linux
- محصول: Linux Kernel
- وضعیتPublished :CVE
- Yes :POC
- وضعیت آسیب پذیری: patch نشده
چکیده
آسیبپذیری در زیرسیستم شبکه IPv4 کرنل لینوکس (Linux Kernel) ناشی از یک خطای برنامهنویسی از نوع ارجاع به اشارهگر تهی (NULL Pointer Dereference) در تابع icmp_tag_validation() است. این ضعف زمانی رخ میدهد که کرنل در حالت Hardened Path MTU Discovery یک پیام ICMP خاص را پردازش کند و پروتکل داخلی مربوطه در سیستم ثبت نشده باشد. در این شرایط، کرنل بدون بررسی مقدار NULL به ساختار داده مربوطه دسترسی پیدا میکند که میتواند باعث Kernel Panic یا کرش کرنل شده و در نهایت منجر به انکار سرویس (DoS) شود.
توضیحات
آسیبپذیری CVE‑2026‑23398 در زیرسیستم شبکه IPv4 کرنل لینوکس و بهطور مشخص در پیادهسازی تابع icmp_tag_validation() در فایل icmp.c رخ میدهد. این تابع مسئول بررسی اعتبار برخی ویژگیهای پیامهای ICMP (پروتکل پیامهای کنترل اینترنتی) است. پروتکل ICMP یکی از کامپوننتهای کلیدی مجموعه پروتکلهای TCP/IP محسوب میشود و برای ارسال پیامهای کنترلی و خطا مانند پیامهای Destination Unreachable (مقصد غیرقابل دسترسی) یا Fragmentation Needed در شبکه به کار میرود.
در پیادهسازی آسیبپذیری، تابع icmp_tag_validation() نتیجه فراخوانی rcu_dereference(inet_protos[proto]) را بدون بررسی NULL مورد استفاده قرار میدهد. آرایه inet_protos[] در کرنل لینوکس برای ثبت هندلرهای (Handler) پروتکلهای شبکه استفاده میشود و شامل 256 خانه (Entry) است، اما تنها حدود 15 پروتکل دارای هندلر ثبتشده هستند؛ بنابراین بسیاری از خانههای این آرایه مقدار NULL دارند.
این ضعف زمانی بروز میکند که مقدار پارامتر proto به یکی از پروتکلهای ثبتنشده اشاره کند. در چنین حالتی، فراخوانی rcu_dereference(inet_protos[proto]) مقدار NULL بازمیگرداند، اما کد بدون بررسی آن تلاش میکند به فیلد icmp_strict_tag_validation دسترسی پیدا کند. این دسترسی مستقیم به یک اشارهگر تهی باعث وقوع خطای NULL Pointer Dereference میشود.
سناریوی فعال شدن این آسیبپذیری به پیکربندی خاص کرنل وابسته است. زمانی که گزینه ip_no_pmtu_disc روی 3 تنظیم شود، کرنل وارد حالت Hardened PMTU Mode میشود که نسخه هاردنینگ مکانیزم Path MTU Discovery (شناسایی حداکثر واحد انتقال مسیر) است. این مکانیزم برای تشخیص حداکثر اندازه بسته قابل ارسال در مسیر شبکه بدون نیاز بهFragmentation استفاده میشود.
در این وضعیت، اگر کرنل یک پیام ICMP از نوع Fragmentation Needed دریافت کند که شامل یک Quoted Inner IP Header باشد و شماره پروتکل آن هدر مربوط به پروتکلی باشد که در inet_protos[] ثبت نشده است، تابع ` icmp_tag_validation() مقدار NULL را ارجاع میدهد. این خطا در بستر اجرای softirq (Software Interrupt) رخ میدهد که مکانیزمی در کرنل لینوکس برای پردازش رویدادهای شبکه و عملیات زمانحساس در سطح کرنل است.
نتیجه این ضعف، وقوع kernel panic و توقف عملکرد سیستم است. در سناریوی نهایی این وضعیت میتواند منجر به اختلال کامل سرویسهای سیستم و انکار سرویس (DoS) شود.
برای رفع این آسیبپذیری، در نسخههای جدید کرنل لینوکس، یک پچ حیاتی اعمال شده است. در نسخه پچشده، پیش از دسترسی به فیلد icmp_strict_tag_validation، نتیجه rcu_dereference(inet_protos[proto]) در یک متغیر موقت ذخیره شده و بررسی میشود که آیا مقدار NULL است یا خیر. اگر برای شماره پروتکل مشخصشده هندلری ثبت نشده باشد، تابع مقدار false بازمیگرداند و از ادامه پردازش جلوگیری میکند. این بررسی مانع ارجاع به اشارهگر NULL شده و از وقوع kernel panic جلوگیری میکند.
CVSS
| Score | Severity | Version | Vector String |
| 6.2 | MEDIUM | 3.1 | CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H |
لیست محصولات آسیب پذیر
| Versions | Product |
| affected at 3.14 | Linux |
| affected from 8ed1dc44d3e9e8387a104b1ae8f92e9a3fbf1b1e before 1f9f2c6d4b2a613b7756fc5679c5116ba2ca0161
affected from 8ed1dc44d3e9e8387a104b1ae8f92e9a3fbf1b1e before b61529c357f1ee4d64836eb142a542d2e7ad67ce affected from 8ed1dc44d3e9e8387a104b1ae8f92e9a3fbf1b1e before 9647e99d2a617c355d2b378be0ff6d0e848fd579 affected from 8ed1dc44d3e9e8387a104b1ae8f92e9a3fbf1b1e before d938dd5a0ad780c891ea3bc94cae7405f11e618a affected from 8ed1dc44d3e9e8387a104b1ae8f92e9a3fbf1b1e before 1e4e2f5e48cec0cccaea9815fb9486c084ba41e2 affected from 8ed1dc44d3e9e8387a104b1ae8f92e9a3fbf1b1e before 614aefe56af8e13331e50220c936fc0689cf5675 |
Linux |
لیست محصولات بروز شده
| Versions | Product |
| unaffected from 0 before 3.14
unaffected from 6.1.167 through 6.1 unaffected from 6.6.130 through 6.6 unaffected from 6.12.78 through 6.12 unaffected from 6.18.20 through 6.18 unaffected from 6.19.10 through 6.19 unaffected from 7.0-rc5 |
Linux |
| 1f9f2c6d4b2a613b7756fc5679c5116ba2ca0161
b61529c357f1ee4d64836eb142a542d2e7ad67ce 9647e99d2a617c355d2b378be0ff6d0e848fd579 d938dd5a0ad780c891ea3bc94cae7405f11e618a 1e4e2f5e48cec0cccaea9815fb9486c084ba41e2 614aefe56af8e13331e50220c936fc0689cf5675 |
Linux |
استفاده محصول در ایران
در این جدول، تعداد صفحات ایندکسشده در گوگل با دامنه .ir که Linux kernel را ذکر کرده اند، ثبت شده است. این داده صرفاً برای برآورد تقریبی حضور محصولات در وب ایران استفاده شده و نمایانگر میزان نصب دقیق و استفاده واقعی نیست.
| Approx. Usage in .ir Domain via Google (Total Pages) | Search Query (Dork) | Product |
| 24,700 | site:.ir “Linux kernel” | Linux kernel |
نتیجه گیری
این آسیبپذیری با شدت متوسط ناشی از عدم بررسی مقدار NULL در مسیر پردازش پیامهای ICMP است که میتواند باعث بروز kernel panic و در نتیجه توقف کامل سیستم شود. از آنجا که کرنل هسته اصلی سیستمعامل است، وقوع چنین خطایی عملاً تمامی سرویسهای در حال اجرا را مختل کرده و دسترسپذیری سیستم را از بین میبرد.
برای کاهش ریسک بهرهبرداری از این آسیبپذیری و افزایش سطح امنیت سیستمهای مبتنی بر لینوکس، اجرای اقدامات زیر توصیه میشود:
- بهروزرسانی فوری کرنل: مهمترین و مؤثرترین اقدام، بهروزرسانی سیستم به نسخههای پچشده کرنل لینوکس است. سایر اقدامات نقش مکمل را دارند و میتوانند به کاهش ریسک این آسیب پذیری و مقابله با حملات مشابه کمک کنند.
- بررسی نسخه کرنل: مدیران سیستم باید نسخه در حال اجرای کرنل را با دستوراتی مانند uname -r بررسی کنند و اطمینان حاصل نمایند که کامیتهای اصلاحی مربوط به این آسیبپذیری در سیستم اعمال شدهاند.
- مانیتورینگ سیستم: استفاده از ابزارهای مانیتورینگ سیستم و سامانههای تشخیص نفوذ (IDS) میتواند به شناسایی پیامهای غیرعادی ICMP یا خطاهای مرتبط با زیرسیستم شبکه کمک کند.
- محدودسازی ترافیک ICMP: در محیطهای حساس، میتوان با استفاده از فایروال سیستمعامل یا فایروال شبکه، برخی انواع پیامهای ICMP غیرضروری را محدود یا فیلتر کرد. این کار میتواند سطح حمله را کاهش دهد.
- ایمنسازی پیکربندی شبکه: بررسی تنظیمات مرتبط با PMTU Discovery و گزینه ip_no_pmtu_disc و اطمینان از پیکربندی صحیح آن در محیطهای عملیاتی میتواند از فعال شدن شرایط خاصی که منجر به بروز این نقص میشود جلوگیری کند.
اجرای این اقدامات، بهویژه بهروزرسانی سریع کرنل و مانیتورینگ دقیق ترافیک شبکه، میتواند به شکل قابل توجهی احتمال سوءاستفاده از این آسیبپذیری و بروز اختلال در دسترسپذیری سیستمهای لینوکسی را کاهش دهد.
امکان استفاده در تاکتیکهای Mitre Attack (در زمان اجرای حمله)
Initial Access (TA0001)
مهاجم برای دسترسی اولیه نیازی به احراز هویت یا تعامل کاربر ندارد. او میتواند از راه دور و با ارسال یک بسته ICMP ساختهشده به سیستم هدف، باعث ایجاد kernel panic شود. شرط موفقیت این مرحله، فعال بودن پارامتر ip_no_pmtu_disc=3 و قابلیت ارسال بسته به سیستم است.
Execution (TA0002)
مهاجم با ارسال بسته ICMP مخرب، باعث اجرای کد در سطح کرنل (تابع icmp_tag_validation) میشود. اگرچه این اجرا منجر به اجرای کد دلخواه نمیشود، اما جریان عادی اجرای کرنل را مختل کرده و به kernel panic منجر میگردد.
Privilege Escalation (TA0004)
این آسیبپذیری سطح دسترسی را افزایش نمیدهد، بلکه باعث از کار افتادن سیستم میشود.
Defense Evasion (TA0005)
بستههای ICMP معمولاً توسط بسیاری از فایروالها و سیستمهای تشخیص نفوذ مجاز در نظر گرفته میشوند. مهاجم میتواند با استفاده از این پروتکل متداول، از برخی مکانیزمهای دفاعی عبور کند.
Discovery (TA0007)
مهاجم میتواند با ارسال بستههای ICMP و مشاهده پاسخ (یا عدم پاسخ)، وجود سیستمهای آسیبپذیر را شناسایی کند.
Impact (TA0040)
بهرهبرداری موفق از این آسیبپذیری منجر به نابودی در دسترسپذیری (Availability) سیستم هدف میشود. مهاجم میتواند با ارسال یک بسته ICMP، باعث kernel panic و از کار افتادن کامل سیستم گردد. این امر میتواند منجر به قطعی سرویسهای حیاتی، اختلال در عملیات تجاری و خسارات مالی شود. در مواردی که سیستم هدف یک سرور حیاتی یا زیرساخت شبکه باشد، تأثیر آن میتواند گسترده و بلندمدت باشد.
منابع
- https://www.cve.org/CVERecord?id=CVE-2026-23398
- https://www.cvedetails.com/cve/CVE-2026-23398/
- https://vulmon.com/vulnerabilitydetails?qid=CVE-2026-23398
- https://vuldb.com/vuln/353576
- https://git.kernel.org/stable/c/1f9f2c6d4b2a613b7756fc5679c5116ba2ca0161
- https://git.kernel.org/stable/c/b61529c357f1ee4d64836eb142a542d2e7ad67ce
- https://git.kernel.org/stable/c/9647e99d2a617c355d2b378be0ff6d0e848fd579
- https://git.kernel.org/stable/c/d938dd5a0ad780c891ea3bc94cae7405f11e618a
- https://git.kernel.org/stable/c/1e4e2f5e48cec0cccaea9815fb9486c084ba41e2
- https://git.kernel.org/stable/c/614aefe56af8e13331e50220c936fc0689cf5675
- https://app.opencve.io/cve/CVE-2026-23398
- https://nvd.nist.gov/vuln/detail/CVE-2026-23398
گزارش اثبات آسیبپذیری CVE-2026-23398
اطلاعات آسیبپذیری
عنوان: نقض اشارهگر NULL در تابع icmp_tag_validation در هسته لینوکس
شناسه: CVE-2026-23398
وضعیت مشاوره: Patch Available
امتیاز CVSS: 5.5 (Medium) / 6.2 (Medium)
محصول: Linux Kernel
محصول / نسخههای آسیبپذیر
در نسخههای زیر (پیش از اعمال پچ امنیتی):
-
هسته لینوکس پیش از نسخه 6.12.78 (stable branch)
• هسته لینوکس پیش از نسخه 6.6.130 (longterm branch)
• هسته لینوکس پیش از نسخه 6.1.167 (longterm branch)
• هسته لینوکس پیش از نسخه 6.18.20 (longterm branch)
• هسته لینوکس پیش از نسخه 6.19.10 (longterm branch)
محیطهای درگیر
- سرورهای لینوکسی در معرض اینترنت که قابلیت هاردنینیگ PMTU (ip_no_pmtu_disc=3) روی آنها فعال شده است
• سرویسهای ابری و مجازیسازی که بر پایه هسته لینوکس آسیبپذیر اجرا میشوند
• تجهیزات شبکه و امنیتی مبتنی بر لینوکس (مانند روترها، فایروالها)
• دستگاههای اینترنت اشیا (IoT) که از هسته لینوکس آسیبپذیر استفاده میکنند
• محیطهای توسعه، آزمون و عملیاتی که پیکربندی شبکه پیشرفته روی آنها اعمال شده است
کامپوننتهای آسیبپذیر
- زیرسیستم شبکه IPv4
• ماژول ICMP (پروتکل پیام کنترل اینترنت)
• تابع icmp_tag_validation() در فایل net/ipv4/icmp.c
• تابع icmp_unreach (مسیر رسیدگی به پیامهای خطای ICMP)
• مکانیزم واکشی هندلر پروتکل (inet_protos[proto]) بدون اعتبارسنجی خروجی
ریشه مشکل (Root Cause Analysis)
ریشه اصلی این آسیبپذیری به یک خطای مدیریت حافظه (Memory Management Flaw) و نقص در اعتبارسنجی ورودی در پیادهسازی هسته لینوکس بازمیگردد. تابع icmp_tag_validation() که در مسیر رسیدگی به پیامهای خطای ICMP مانند «Fragmentation Needed» (نوع 3، کد 4) فراخوانی میشود، بدون بررسی NULL بودن نتیجه، خروجی تابع rcu_dereference(inet_protos[proto]) را dereference میکند. آرایه inet_protos[] ذاتاً sparse است و تنها حدود 15 عدد از 256 عدد پروتکل ممکن، هندلر ثبتشده دارند. این کد به اشتباه فرض میکند که تمامی شمارهپروتکلها دارای هندلر معتبر هستند، در حالی که این فرض نادرست است. هنگامی که پارامتر ip_no_pmtu_disc روی مقدار 3 (حالت هاردنینگ PMTU) تنظیم شده باشد، این مسیر کد فعال میشود و تلاش برای خواندن فیلد icmp_strict_tag_validation از یک اشارهگر NULL منجر به یک general protection fault و در نهایت کرنل پنیک (Kernel Panic) در بستر اجرای نرمافزاری (softirq context) میگردد.
این ضعف از طریق سطح حمله شبکه (حملات ICMP) قابل دسترسی است و برای بهرهبرداری موفق، تنظیم بودن ip_no_pmtu_disc=3 روی سیستم هدف و قابلیت ارسال پکت به سمت آن لازم میباشد. در سناریوی بهرهبرداری کلی، مهاجم با ارسال یک پکت ICMP Fragmentation Needed حاوی هدر IP داخلی با یک شماره پروتکل ثبتنشده (هر پروتکلی خارج از حدود 15 هندلر ثبتشده) باعث dereference اشارهگر NULL و در نتیجه کرنل پنیک میگردد که نهایتاً منجر به از کار افتادن کامل سرویس (Denial of Service) سیستم هدف میشود.
بخش آسیبپذیر
رفتار ناامن سیستم:
عدم بررسی NULL بودن نتیجه تابع rcu_dereference(inet_protos[proto]) قبل از استفاده از آن، و تلاش برای دسترسی به فیلد icmp_strict_tag_validation از یک اشارهگر NULL در تابع icmp_tag_validation.
نحوه سوءاستفاده مهاجم:
-
اسکن شبکه برای یافتن سیستمهای لینوکسی که پارامتر ip_no_pmtu_disc=3 روی آنها فعال است
• ساخت یک پکت ICMP از نوع «Fragmentation Needed» (Type 3, Code 4)
• قرار دادن یک هدر IP داخلی (Inner IP Header) در بدنه پکت ICMP
• انتخاب یک شماره پروتکل ثبتنشده در هدر داخلی (هر عدد خارج از محدوده پروتکلهای معروف)
• ارسال پکت مخرب به سمت سیستم هدف از طریق شبکه
• دریافت پکت توسط زیرسیستم شبکه و تحویل آن به ماژول ICMP برای پردازش
• فراخوانی تابع icmp_tag_validation برای اعتبارسنجی برچسب ICMP
• دسترسی به عنصر inet_protos[proto] که به دلیل عدم وجود هندلر، مقدار NULL را بازمیگرداند
• تلاش برای خواندن فیلد icmp_strict_tag_validation از اشارهگر NULL
• وقوع خطای general protection fault و به تبع آن کرنل پنیک و از کار افتادن کامل سیستم
نقش این آسیبپذیری در زنجیره حمله
این آسیبپذیری عمدتاً به عنوان یک بردار «اخلال در دسترسپذیری» (Availability Disruption) در زنجیره حمله عمل میکند. مهاجم با بهرهبرداری موفق از این نقص، قادر به از کار انداختن کامل سیستم هدف (Kernel Panic) خواهد بود که منجر به توقف تمامی سرویسهای در حال اجرا روی آن میگردد. این قابلیت میتواند به عنوان مرحله اولیه یک حمله DoS گستردهتر یا به عنوان تاکتیک انحراف (Distraction) در کنار حملات ثانویه مورد استفاده قرار گیرد. اگرچه این آسیبپذیری مستقیماً منجر به افشای اطلاعات یا افزایش دسترسی نمیشود، اما میتواند زمینه را برای حملات «بازنشانی سرویس» (Service Reset) یا «انکار سرویس توزیعشده» (DDoS) فراهم کند. در معماریهای مبتنی بر میکروسرویس و ابری که سلامت (Health) هر نود به صورت مستمر پایش میشود، از کار افتادن مکرر یک سرویس میتواند منجر به تحرکات غیرضروری (Unnecessary Orchestration Movements) و افزایش سطح دسترسی مهاجم در اثر پیکربندیهای خودکار (Auto-scaling و Auto-healing) گردد. همچنین، در صورت وجود سرویسهای حیاتی مانند پایگاهداده یا سرور احراز هویت روی سیستم هدف، از کار افتادن آنها میتواند کل زیرساخت سازمان را تحت تأثیر قرار دهد.
پیشنیازهای بهرهبرداری (Prerequisites)
- فعال بودن ویژگی ip_no_pmtu_disc=3 (حالت هاردنینگ PMTU) روی سیستم هدف
• استفاده از هسته لینوکس آسیبپذیر (نسخههای پیش از 6.12.78، 6.6.130، 6.1.167 و …)
• قابلیت مهاجم در ارسال پکتهای ICMP به سمت سیستم هدف از طریق شبکه
• قرار داشتن سیستم هدف در معرض ترافیک شبکه (عدم مسدودسازی پروتکل ICMP توسط فایروال)
• نبود پچ امنیتی اصلاحی روی سیستم هدف
• دسترسی مهاجم به اطلاعات مربوط به پیکربندی شبکه سیستم هدف (برای شناسایی فعال بودن ip_no_pmtu_disc=3)
رفتار مورد انتظار در حالت امن (Expected Secure Behavior)
- قبل از dereference کردن نتیجه rcu_dereference(inet_protos[proto])، بررسی NULL بودن آن انجام شود
• در صورت NULL بودن نتیجه، تابع icmp_tag_validation مقدار false بازگرداند
• هسته لینوکس در مواجهه با شماره پروتکل ثبتنشده، به جای کرنل پنیک، خطا را نادیده گرفته و پردازش را ادامه دهد
• مستندات هسته لینوکس به وضوح نسبت به خطرات فرض وجود هندلر برای تمام شماره پروتکلها هشدار دهند
• ابزارهای تحلیل استاتیک کد، الگوی «dereference بدون بررسی NULL» را به عنوان یک آسیبپذیری بالقوه شناسایی کنند
• فرآیند بازبینی کد (Code Review) برای تمام توابعی که با آرایههای sparse کار میکنند، اجباری شود
• تستهای fuzzing برای زیرسیستم ICMP به صورت مداوم اجرا شوند تا موارد مشابه شناسایی گردند
راهکارها و کاهش ریسک (Mitigation / Patch Guidance)
اقدامات فوری برای کاهش ریسک:
- بهروزرسانی فوری هسته لینوکس به نسخههای اصلاحشده (6.12.78، 6.6.130، 6.1.167 یا بالاتر) بهمنظور حذف کامل بردار حمله شناختهشده
• در صورت عدم امکان بهروزرسانی، غیرفعال کردن موقت ویژگی ip_no_pmtu_disc=3 و بازگرداندن آن به مقدار پیشفرض (0 یا 1)
• مسدودسازی ترافیک ICMP Fragmentation Needed (Type 3, Code 4) در سطح فایروال شبکه تا زمان اعمال پچ
• اعمال محدودیت نرخ (Rate Limiting) برای پکتهای ICMP به منظور کاهش سرعت حملات احتمالی
• پایش لاگهای هسته (Kernel Logs) برای شناسایی خطاهای مرتبط با icmp_unreach و general protection fault
• غیرفعال کردن موقت سرویسهای غیرضروری که در معرض شبکه هستند تا سطح حمله کاهش یابد
• هماهنگی با تأمینکننده توزیع لینوکس (Red Hat، Ubuntu، Debian و …) برای دریافت پچ امنیتی اختصاصی
اقدامات کوتاهمدت / میانمدت برای کاهش ریسک:
- شناسایی و پایش تمام سیستمهایی که ip_no_pmtu_disc=3 روی آنها فعال است
• پیادهسازی مکانیزمهای تشخیص نفوذ (IDS/IPS) با قوانین اختصاصی برای شناسایی پکتهای ICMP حاوی شماره پروتکل ثبتنشده
• فعالسازی و تقویت لاگبرداری تفصیلی از رفتارهای زیرسیستم شبکه در سطح هسته
• آموزش تیمهای عملیاتی (Operations) در خصوص خطرات فعالسازی حالتهای هاردنینگ بدون پوشش امنیتی کامل
• اجرای بازبینی امنیتی بر روی پارامترهای sysctl شبکه و مستندسازی تنظیمات غیرپیشفرض
• استقرار سیستمهای مانیتورینگ هشداردهنده برای شناسایی کرنل پنیکهای مکرر در نودهای مختلف
• تهیه نسخه پشتیبان از کانفیگهای شبکه قبل از اعمال تغییرات
اقدامات بلندمدت برای کاهش ریسک:
- بازبینی و بهبود معماری امنیتی زیرساخت شبکه با تمرکز بر جداسازی ترافیک ICMP و محدودسازی آن به منابع ضروری
• افزایش سطح آگاهی تیمهای توسعه هسته لینوکس و تیمهای امنیت زیرساخت از طریق آموزش هدفمند در زمینه حملات NULL pointer dereference
• استفاده مستمر از ابزارهای تحلیل کد ایستا (SAST) و ابزارهای fuzzing خودکار به منظور شناسایی الگوهای مشابه در سایر بخشهای هسته
• تدوین و اجرای سیاستهای هاردنینگ امنیتی با تأکید بر اعتبارسنجی تمامی ورودیها و بررسی اشارهگرها قبل از استفاده
• پیادهسازی مکانیزمهای خودکار بهروزرسانی امنیتی برای هسته لینوکس (Live Patching)
• ایجاد فرآیند منظم بازبینی و بهروزرسانی پارامترهای sysctl شبکه
• مشارکت در برنامههای Bug Bounty هسته لینوکس برای شناسایی زودهنگام آسیبپذیریهای مشابه
تشخیص و مانیتورینگ (Detection & Monitoring)
نشانههای تلاش برای سوءاستفاده:
- مشاهده پیامهای کرنل پنیک در لاگهای سیستم با عبارت «general protection fault» و اشاره به تابع icmp_unreach
• ثبت خطای Oops در لاگ هسته با آدرس غیرقانونی (non-canonical address) مانند 0xdffffc0000000002
• از کار افتادن ناگهانی و مکرر سرویسها یا ریبوت شدن سیستم بدون دلیل مشخص
• افزایش ناگهانی پکتهای ICMP از نوع Fragmentation Needed در ترافیک ورودی سیستم
• وجود پکتهای ICMP با هدر داخلی حاوی شماره پروتکلهای غیرمعمول و ثبتنشده
• مصرف بالای CPU در نرمافزارهای شبکه (softirq) قبل از وقوع کرنل پنیک
• ثبت رخدادهای «Kernel Panic – not syncing» در لاگهای سیستم
منابع پیشنهادی برای مانیتورینگ و پایش:
- لاگهای هسته (Kernel Logs) از طریق دستور dmesg و فایل /var/log/kern.log
• لاگهای سیستم (System Logs) شامل /var/log/syslog و /var/log/messages
• ابزارهای مانیتورینگ مانند Prometheus و Grafana برای پایش سلامت نودها و وقوع ریبوتهای غیرمنتظره
• سیستمهای SIEM برای جمعآوری و تحلیل مرکزی لاگهای هسته
• ابزارهای تشخیص نفوذ شبکه (NIDS) با قوانین اختصاصی برای شناسایی پکتهای ICMP مشکوک (مانند Suricata یا Snort)
• راهکارهای نظارت بر عملکرد (APM) در سطح زیرساخت برای شناسایی نوسانات مصرف منابع
• سرویسهای خودکار لاگ آنالیز مانند ELK Stack (Elasticsearch, Logstash, Kibana)
واکنش به حادثه (Incident Response)
- ایزولهکردن سیستم آسیبدیده از شبکه جهت جلوگیری از حملات بعدی و کاهش تأثیر
• جمعآوری و بررسی لاگهای هسته و سیستم برای شناسایی علت دقیق کرنل پنیک
• تأیید فعال بودن پارامتر ip_no_pmtu_disc=3 در سیستم هدف
• بررسی ترافیک شبکه ورودی برای شناسایی پکتهای ICMP مخرب احتمالی
• اعمال پچ امنیتی یا تغییر پارامتر ip_no_pmtu_disc به مقدار امن (0 یا 1)
• بازگرداندن سرویسهای متوقفشده به حالت عملیاتی و بررسی سلامت آنها
• مستندسازی کامل حادثه، شامل زمان وقوع، علت ریشهای، اقدامات انجامشده و درسآموختهها
جریان حمله (Attack Flow)
در نمودار زیر (شکل ۱)، جریان کلی بهرهبرداری از این آسیبپذیری نشان داده شده است. در این سناریو، مهاجم با ارسال یک پکت ICMP Fragmentation Needed حاوی هدر IP داخلی با یک شماره پروتکل ثبتنشده به سیستم هدف که ip_no_pmtu_disc=3 روی آن فعال است، باعث dereference اشارهگر NULL در تابع icmp_tag_validation شده و در نهایت کرنل پنیک و از کار افتادن کامل سیستم را رقم میزند.

شکل 1: نمودار جریان جمله
اثبات مفهوم (PoC) — کاملاً غیرمخرب
- آزمایشگاه تخصصی vulnerbyte، این آسیبپذیری را در محیط ایزوله و کنترلشده بررسی کرده است
• یک سیستم لینوکسی با هسته آسیبپذیر(پیش از اعمال پچ) در محیط مجازی راهاندازی شده است
• پارامتر ip_no_pmtu_disc روی مقدار 3 (حالت هاردنینیگ PMTU) تنظیم شده است
• ارسال پکت به سمت سیستم هدف از طریق شبکه داخلی انجام شده است
• مشاهده پیام کرنل پنیک با عبارت «general protection fault» و اشاره به تابع icmp_unreach در لاگهای سیستم هدف (شکل ۲)
• از کار افتادن کامل سیستم هدف و نیاز به ریبوت دستی
• این اثبات مفهوم صرفاً توصیفی و آموزشی بوده و کد اکسپلویت واقعی کامل ارائه نشده است
• نتایج نشان میدهد که چگونه عدم بررسی NULL بودن اشارهگر در تابع icmp_tag_validation میتواند منجر به کرنل پنیک و Denial of Service کامل شود

شکل 1: نمودار جریان جمله
رفع مسئولیت
این گزارش صرفاً با هدف آموزش، تحلیل فنی و ارتقای امنیت سازمانی تهیه شده است. هرگونه استفاده مخرب یا خارج از چارچوبهای قانونی از محتوای آن ممنوع است.
منابع
https://www.cve.org/CVERecord?id=CVE-2026-23398
https://nvd.nist.gov/vuln/detail/CVE-2026-23398
https://cwe.mitre.org/data/definitions/476.html
https://www.sentinelone.com/vulnerability-database/cve-2026-23398/