Anthropic yadro TCP stekida muhim zaiflikni (CVE-2026-98432) aniqladi. Linux, bu maxsus tayyorlangan paketlarni yuborish orqali kodni masofadan turib bajarish imkonini beradi. Ishlaydigan ekspluatatsiya haqida xabar berilgan, bu kodni yadro darajasida bajarishga imkon beradi va tizimda masofadan turib root imtiyozlarini oladi. Eksploit Multipath TCP (MPTCP) protokolini qo'llab-quvvatlaydigan tarmoq soketlari orqali ulanishlarni qabul qiladigan server jarayonlariga ega tizimlarga hujum qilish uchun mos keladi. MPTCP qo'llab-quvvatlashi Go standart kutubxonasida standart bo'lgan har bir tarmoq soketi asosida yoqilishi mumkin, bu Go 1.24 dan boshlab (2025-yil fevral) Go standart kutubxonasida standart hisoblanadi.
Tayyorlangan eksploitdan Go tilida yozilgan har qanday server ilovasi, jumladan, Caddy HTTP serveri bilan foydalanish mumkin, agar u tarmoq paketlarini o'zi yaratgan tinglash soketiga yubora olsa. Zaiflik to'g'ridan-to'g'ri IPv4 stekida mavjud bo'lganligi va MPTCPga xos bo'lmaganligi sababli, MPTCPga tayanmasdan ishlaydigan eksploitlarni yaratish mumkin, ammo bunday eksploitlar hali namoyish etilmagan. Masalan, net.ipv4.tcp_migrate_req=1 parametri bilan konfiguratsiyalarda mavjud bo'lgan soket migratsiyasi so'rovlarini qayta ishlashda yoki BPF_SK_REUSEPORT_SELECT_OR_MIGRATE opsiyasi bilan eBPF dasturlaridan foydalanganda zaiflikdan foydalanish mumkin.
Zaiflik TCP ulanishini o'rnatish paytida qayta uzatilgan SYN so'rovlarini bir vaqtning o'zida qayta ishlash paytida yuzaga keladigan poyga holati tufayli yuzaga keladi. tcp_v4_syn_recv_sock() funktsiyasi ireq->ireq_opt tuzilmasidan parametrlarni nusxalash o'rniga mos yozuvlar orqali bola soketiga uzatganligi sababli, ma'lum holatlarda soket parametrlarini o'z ichiga olgan inet_opt va ireq_opt tuzilmalari uchun xotira allaqachon bo'shatilgan, ammo tegishli soket parametrlaridan foydalanishda davom etadigan vaziyat yuzaga keladi (foydalanishdan keyin bepul).
Masofaviy ekspluatatsiya vaqt bilan sinxronlashtirilgan tarmoq so'rovlari ketma-ketligini yuborish orqali amalga oshiriladi. Ekspluatatsiya manzil tasodifiylashtirish (KASLR) dan foydalanadigan yadrolarga muvaffaqiyatli qo'llaniladi, ammo poyga holati oynasiga kirish ancha vaqt talab etadi va ko'p sonli qayta urinishlarni talab qiladi. Ekspluatatsiya poyga holati oynasini o'tkazib yuborish yadroning ishdan chiqishiga emas, balki faqat qo'l siqishiga olib kelishi bilan soddalashtirilgan, bu esa cheksiz urinishlarga imkon beradi. Ekspluatatsiya prototipida hujum taxminan bir soat davom etdi — xotira joylashuvini aniqlash uchun 48 daqiqa va kod bajarilishini tashkil qilish uchun yana 5 daqiqa.
Zaiflikni tuzatishni kafolatlaydigan hech qanday vaqtinchalik yechimlar hali mavjud emas — yadro yangilanishini o'rnatish yagona ishonchli variant. Muammo yadrodan boshlab o'zini namoyon qiladi. Linux 4.4 versiyasida va 5.10.272, 5.15.223, 6.1.190, 6.6.159, 6.12.113, 6.18.56, 7.2.10 va 7.3 versiyalarida tuzatilgan. Distribyutorlardagi zaifliklarni tuzatish holatini ushbu sahifalarda baholash mumkin: Debian, Ubuntu, SUSE/openSUSE, RHEL, Gentoo, Arch,
Fedora.
Zaiflikni umuman bloklamaydigan muayyan ekspluatatsiya usullariga qarshi kurashish bo'yicha tavsiyalar MPTCP qo'llab-quvvatlashini o'chirib qo'yish va yadro sysctl parametrini net.ipv4.tcp_migrate_req ga 0 ga o'rnatishni o'z ichiga oladi:
sysctl -w net.mptcp.enabled=0
sysctl -w net.ipv4.tcp_migrate_req=0
Tizimda soketlardan foydalanadigan jarayonlar mavjudligini aniqlash uchun
MPTCP da siz quyidagi buyruqlardan foydalanishingiz mumkin:
ip mptcp so'nggi nuqta ko'rsatish
ip mptcp cheklovlari ko'rsatiladi
Go dasturlarida MPTCP qo'llab-quvvatlashini o'chirish uchun "multipathtcp=0" bayrog'idan foydalaning, uni "GODEBUG=multipathtcp=0" muhit o'zgaruvchisini o'rnatish orqali o'rnatish mumkin. Qurilish vaqtida MPTCP qo'llab-quvvatlashini o'chirish uchun go.mod fayliga "godebug multipathtcp=0" qo'shing. Ilova kodingizda net.Dialer.SetMultipathTCP va net.ListenConfig.SetMultipathTCP funktsiyalari yordamida MPTCP ni o'chirib qo'yishingiz mumkin.
Muhokama qilingan masaladan tashqari, Anthropic shuningdek, yadroda bir qator mahalliy foydalanish mumkin bo'lgan zaifliklarni ham e'lon qildi. Linux, Tizimga root kirish imkonini beruvchi va izolyatsiya qilingan konteynerlardan qochish imkonini beruvchi OpenBSD va FreeBSD; maxsus ishlab chiqilgan veb-sahifalarni ochishda tizimda kod bajarilishiga olib keladigan Chrome va Safari zaifliklari; yadrodagi zaiflik Windows, ishdan chiqishga olib keladi; platforma zaifligi Android, bu sizga ekran qulfini chetlab o'tish va qurilmani qulfdan chiqarmasdan shaxsiy ma'lumotlar va fotosuratlarga kirish imkonini beradi (hujum Google Pixel 9 smartfonida namoyish etilgan).
Qo'shimcha:
- Nginx-da, tinglash tarmog'i rozetkasi uchun IPPROTO_MPTCP opsiyasini yoqish imkoniyati 1.29.7 versiyasidan beri mavjud, ammo sukut bo'yicha ishlatilmaydi.
- Lighttpd da MPTCP ni yoqish imkoniyati 1.4.76 versiyasidan beri mavjud.
- Apache httpd da, MPTCP ni qo'llab-quvvatlash uchun yamalar 2024-yilda Apache httpd 2.5-HEAD filialiga qo'shildi.
- systemd da, 257-versiyaga soket orqali faollashtirilganda MPTCP ni yoqish uchun qo'llab-quvvatlash qo'shildi.
- Apache Traffic Serverda MPTCP ni yoqish opsiyasi 9.2.4 versiyasidan beri qo'llab-quvvatlanadi.
- HAProxy'da, 3.1.0 versiyasidan boshlab, "mptcp{,4,6}@" opsiyasi mavjud ".
- Traefikda, IPPROTO_MPTCP bayrog'ini o'rnatish 2.11.26, 3.4.2 va v3.5.0-rc1 versiyalaridan beri sukut bo'yicha yoqilgan.
- Valkey ma'lumotlar bazasida, 9.0.0 versiyasidan boshlab, "--mptcp" opsiyasi va "mptcp yes" va "repl-mptcp yes" sozlamalari mavjud.
Manba: opennet.ru
