در اکتبر ۲۰۲۶، یک آسیبپذیری بحرانی، CVE-2026-98432 ، در هسته لینوکس پیدا شد که در مقیاس CVSS امتیاز ۹.۸ از ۱۰ را کسب کرد. این آسیبپذیری بر نحوه مدیریت اتصالات ورودی IPv4 TCP تأثیر میگذارد و تحت شرایط خاص، به مهاجم اجازه میدهد تا از راه دور - بدون رمز عبور و بدون نیاز به هیچ اقدامی از سوی مدیر - به سرور دسترسی ریشه پیدا کند.
در زیر آمده است که چه کسی تحت تأثیر قرار گرفته است، چگونه سرور خود را بررسی کنید و چگونه از آن محافظت کنید. همه دستورات به صورت root یا با ... اجرا میشوند. sudo.
آسیب پذیری به طور خلاصه
- آنچه در آن است: یک اشکال استفاده پس از آزادسازی در کدی که اتصالات IPv4 TCP را تنظیم میکند، ناشی از شرایط رقابتی است. مهاجم بستههای دستکاریشدهی خاصی را به هر پورت TCP باز ارسال میکند.
- هستههای آسیبدیده: هر نسخه از لینوکس ۴.۴ به بعد، که عملاً به معنای هر توزیع فعلی است.
- IPv6 تحت تأثیر اشکال اصلی قرار نمیگیرد.
- تهدید چقدر واقعی است: محققان آنتروپیک یک زنجیرهی بهرهبرداری کارآمد را نشان دادند که در حدود ۵۳ دقیقه به سروری با Multipath TCP (MPTCP) فعال، دسترسی ریشه (root access) پیدا کرد. کد بهرهبرداری منتشر نشده است.
- حملات در طبیعت: تا اول نوامبر ۲۰۲۶، هیچ سوءاستفادهای گزارش نشده است. این دلیلی برای بهروزرسانی با آرامش است، نه دلیلی برای به تعویق انداختن آن.
سرویسهای Go ریسک جداگانهای دارند. از Go 1.24، برنامههای سرور در لینوکس به طور پیشفرض از طریق MPTCP به پورتها گوش میدهند، هر زمان که هسته اجازه دهد. یک مدیر ممکن است حتی نداند که سرورش چنین اتصالاتی را میپذیرد. در میان برنامههای محبوب، Xray به این روش کار میکند - توسعهدهندگان آن قبلاً یک نسخه اضطراری، v26.10.31، منتشر کردهاند که MPTCP را به طور پیشفرض غیرفعال میکند.
هر VPS هسته (kernel) مخصوص به خود را اجرا میکند، بنابراین شما باید خودتان هسته (kernel) را درون سرور خود بهروزرسانی کنید. ما خودمان گرههای مجازیسازی را بهروزرسانی میکنیم.
آیا راه حلی برای سیستم شما وجود دارد؟
وضعیت از ۱ نوامبر ۲۰۲۶. تقریباً روزانه اصلاحاتی انجام میشود - برای اطلاع از وضعیت فعلی، لینکهای انتهای این مقاله را بررسی کنید.
| سیستم | وضعیت | هسته ثابت |
|---|---|---|
| دبیان 13 | درست شد | linux 6.12.113-1 |
| دبیان 12 | درست شد | linux 6.1.190-1 |
| اوبونتو 22.04 ، 24.04 ، 26.04 | رفع اشکال در حال انجام است | هنوز نه — از محافظت موقت استفاده کنید |
| آلما لینوکس ۸، ۹، ۱۰ | رفع مشکل در مخزن تست | 8: 4.18.0-553.180.2.el8_10 9: 5.14.0-687.61.2.el9_8 10: 6.12.0-211.69.2.el10_2 |
| راکی لینوکس، RHEL 8، 9، 10 | هنوز اصلاحیهای صورت نگرفته است | از حفاظت موقت استفاده کنید |
| اوراکل لینوکس ۷–۱۰ (UEK) | درست شد | از طریق یک بهروزرسانی استاندارد |
| سوزه / اوپن سوزه لیپ ۱۶ | درست شد | از طریق یک بهروزرسانی استاندارد |
مرحله ۱. بررسی کنید که کدام هسته را اجرا میکنید
نسخه هسته در حال اجرا را پیدا کنید:
uname -r
شماره نسخه به تنهایی چیزی به شما نمیگوید: توزیعها بدون تغییر نسخه پایه، اصلاحات را در هستههای خود اصلاح میکنند. بررسی تغییرات بسته هسته قابل اعتمادتر است - اگر شماره CVE در آن ذکر شده باشد، اصلاحیه از قبل نصب شده است.
دبیان و اوبونتو:
apt changelog linux-image-$(uname -r) 2>/dev/null | grep CVE-2026-98432
در دبیان، uname -v دستور همچنین نسخه کامل بسته هسته در حال اجرا را نشان میدهد: آن را با جدول بالا مقایسه کنید.
آلما لینوکس، راکی لینوکس، RHEL، اوراکل لینوکس:
rpm -q --changelog kernel-core-$(uname -r) | grep CVE-2026-98432
اگر دستور چیزی چاپ نکند، هسته در حال اجرا آسیبپذیر است.
در مرحلهی بعد، بررسی کنید که کدام سرویسها اتصالات را از طریق MPTCP میپذیرند. سرورهایی مانند اینها هدف حملهی نشان داده شده بودند:
ss -lnMp
خروجی خالی به این معنی است که هیچ شنونده MPTCP وجود ندارد.
مرحله ۲. نصب کرنل ثابت
قبل از بهروزرسانی هسته، از سرور خود یک نسخه پشتیبان یا اسنپشات بگیرید.
دبیان ۱۲ و ۱۳
هستههای اصلاحشده در مخزن امنیتی قرار دارند. مطمئن شوید که فعال است:
grep -r security.debian.org /etc/apt/sources.list /etc/apt/sources.list.d/
اگر چیزی پیدا نشد، اضافه کنید security.debian.org مخزن مربوط به نسخه خود را ایجاد کنید. سپس سیستم را بهروزرسانی کنید:
apt update
apt full-upgrade
reboot
اوبونتو
کرنلهای اصلاحشده هنوز منتشر نشدهاند. برای بهروزرسانیها مراجعه کنید:
apt update
apt list --upgradable | grep linux-image
اگر سرور شما به اوبونتو پرو متصل است، میتوانید طرح رفع مشکل را بررسی کنید:
pro fix CVE-2026-98432 --dry-run
پس از انتشار اصلاحیه، آن را نصب کرده و سیستم را مجدداً راهاندازی کنید:
apt update
apt full-upgrade
reboot
تا آن زمان، حتماً محافظت موقت مرحله ۳ را اعمال کنید.
آلما لینوکس ۸، ۹، ۱۰
کرنلهای اصلاحشده در حال حاضر فقط در مخزن آزمایشی موجود هستند. اگر با نصب آنها روی سرور اصلی مشکلی ندارید، آنها را نصب کنید و قبل از بهروزرسانی حتماً یک اسنپشات از آنها بگیرید:
dnf install -y almalinux-release-testing
dnf update 'kernel*' --enablerepo=almalinux-testing
dnf config-manager --disable almalinux-testing
reboot
پس از راه اندازی مجدد، مقایسه کنید uname -r با نسخههای جدول بالا. اگر ترجیح میدهید بستههای آزمایشی را نصب نکنید، محافظت موقت را اعمال کنید و منتظر بمانید تا اصلاحیه به مخزن اصلی برسد.
راکی لینوکس و سایر سیستمهای مبتنی بر RHEL
هنوز هیچ راه حلی وجود ندارد. میتوانید با استفاده از موارد زیر مراقب آن باشید:
dnf --refresh updateinfo info --all --cves CVE-2026-98432
پس از انتشار اصلاحیه:
dnf update kernel
reboot
پس از بهروزرسانی: راهاندازی مجدد لازم است
هسته جدید فقط پس از راهاندازی مجدد (ریبوت) اعمال میشود. برای بررسی اینکه آیا به آن نیاز است:
# Debian and Ubuntu
[ -f /var/run/reboot-required ] && echo "Reboot required"
# AlmaLinux, Rocky, RHEL
needs-restarting -r
پس از راه اندازی مجدد، بررسی مرحله 1 را تکرار کنید.
مرحله ۳. حفاظت موقت تا زمان ارائه یک هسته اصلاحشده
این اقدامات ریسک را کاهش میدهند اما جایگزین بهروزرسانی هسته نمیشوند.
بستههای محرک را مسدود کنید
این حمله از بستههای TCP با گزینههای IP در هدر IPv4 استفاده میکند. آنها عملاً هرگز در ترافیک عادی ظاهر نمیشوند و RFC 7126 از قبل توصیه میکند که آنها را حذف کنید. قانون nftables زیر تمام بستههای ورودی IPv4 TCP را با گزینهها حذف میکند و بر IPv6، UDP یا ICMP تأثیری ندارد. این قانون در کنار ufw و firewalld کار میکند.
اگر nftables از قبل نصب نشده است، آن را نصب کنید:
# Debian and Ubuntu
apt install -y nftables
# AlmaLinux, Rocky, RHEL
dnf install -y nftables
فایل قانون را ایجاد کنید:
cat > /etc/cve-2026-98432.nft <<'EOF'
table ip cve_2026_98432 {
chain pre {
type filter hook prerouting priority -300; policy accept;
meta l4proto tcp ip hdrlength gt 5 counter drop
}
}
EOF
برای اینکه این قانون پس از هر بار راهاندازی مجدد بازیابی شود، یک سرویس systemd ایجاد کنید:
cat > /etc/systemd/system/cve-2026-98432.service <<'EOF'
[Unit]
Description=Mitigation for CVE-2026-98432
After=network-pre.target nftables.service firewalld.service ufw.service
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStartPre=-/usr/sbin/nft delete table ip cve_2026_98432
ExecStart=/usr/sbin/nft -f /etc/cve-2026-98432.nft
ExecStop=/usr/sbin/nft delete table ip cve_2026_98432
[Install]
WantedBy=multi-user.target
EOF
systemctl daemon-reload
systemctl enable --now cve-2026-98432.service
بررسی کنید که قانون بارگذاری شده باشد:
nft list table ip cve_2026_98432
اگر سرویس nftables را با یک دستور سراسری مجدداً راهاندازی کنید flush ruleset حکومت کردن، دویدن systemctl restart cve-2026-98432 پس از آن
مهم: این قانون را در شبکههایی که از برچسبهای CIPSO (SELinux یا Smack NetLabel) استفاده میکنند، اعمال نکنید - گزینههای IP معمولاً در آنجا استفاده میشوند. اگر سرور شما ترافیک را برای دستگاههای دیگر هدایت کند، این قانون بستههای TCP آنها را نیز با گزینههای IP حذف میکند.
اگر به MPTCP نیازی ندارید، آن را غیرفعال کنید.
sysctl -w net.mptcp.enabled=0
echo "net.mptcp.enabled = 0" > /etc/sysctl.d/99-disable-mptcp.conf
این تنظیم فقط از جدید از ایجاد سوکتهای MPTCP جلوگیری میکند. سرویسهایی که از قبل در حال اجرا هستند، از طریق MPTCP به گوش دادن ادامه خواهند داد، بنابراین هر سرویس فهرست شده توسط ... را مجدداً راهاندازی کنید. ss -lnMp و مطمئن شوید که خروجی آن اکنون خالی است.
در AlmaLinux، MPTCP به طور پیشفرض غیرفعال است، مگر اینکه خودتان آن را فعال کرده باشید.
غیرفعال کردن MPTCP در برنامههای Go
برای سرویسهایی که با Go 1.24 یا بالاتر ساخته شدهاند، میتوانید MPTCP را با یک متغیر محیطی غیرفعال کنید. به عنوان مثال، برای سرویسی به نام myservice:
systemctl edit myservice
موارد زیر را به فایلی که باز میشود اضافه کنید:
[Service]
Environment=GODEBUG=multipathtcp=0
سپس سرویس را مجدداً راه اندازی کنید:
systemctl restart myservice
بهروزرسانی اشعه ایکس
اگر سرور شما Xray را اجرا میکند، آن را به نسخه ۲۶.۱۰.۳۱ یا بالاتر بهروزرسانی کنید. نسخه قبلی، یعنی نسخه ۲۶.۱۰.۲۹، توسط توسعهدهندگانش حذف شده است. این بهروزرسانی MPTCP را غیرفعال میکند اما هسته را اصلاح نمیکند، بنابراین بهروزرسانی هسته هنوز لازم است.
یک تنظیم دیگر را بررسی کنید
مسیر دوم و محدودتر اکسپلویت، نیاز به فعال بودن مهاجرت درخواست دارد. این گزینه به طور پیشفرض غیرفعال است - از فعال بودن آن مطمئن شوید:
sysctl net.ipv4.tcp_migrate_req
دستور باید چاپ شود 0.
دسترسی به سرویسهایتان را محدود کنید
هر پورت فایروالی را که نیازی به دسترسی از طریق اینترنت ندارید، ببندید. در صورت امکان، سرویسهای مدیریتی - SSH، کنترل پنلها، پایگاههای داده - را فقط برای آدرسهای IP معتبر باز کنید.
مرحله ۴. پس از نصب کرنل اصلاحشده
- سرور را مجدداً راهاندازی کنید و از دستورات مرحله ۱ برای تأیید اجرای هسته اصلاحشده استفاده کنید.
- شما میتوانید قانون موقت را حذف کنید:
systemctl disable --now cve-2026-98432.service
rm /etc/systemd/system/cve-2026-98432.service /etc/cve-2026-98432.nft
systemctl daemon-reload - اگر به MPTCP نیاز دارید، تنظیمات را بازیابی کنید: حذف کنید
/etc/sysctl.d/99-disable-mptcp.confو اجراsysctl -w net.mptcp.enabled=1.
اگر مشکلی پیش بیاید
اگر سرور شما پس از بهروزرسانی هسته بوت نشد، از طریق کنسول VNC در کنترل پنل متصل شوید و هسته قبلی را در منوی بوت انتخاب کنید. اگر مطمئن نیستید که میتوانید خودتان این کار را انجام دهید، یا برای بهروزرسانی به کمک نیاز دارید، با تیم پشتیبانی ما تماس بگیرید.