Anthropic imefichua udhaifu muhimu (CVE-2026-98432) katika rundo la TCP la kiini. Linux, ambayo inaruhusu utekelezaji wa msimbo wa mbali kwa kutuma pakiti zilizotengenezwa maalum. Utekelezaji unaofanya kazi umeripotiwa, kuruhusu utekelezaji wa msimbo katika kiwango cha kiini na kupata haki za mizizi kwenye mfumo kwa mbali. Utekelezaji huo unafaa kwa mifumo ya kushambulia yenye michakato ya seva inayokubali miunganisho kupitia soketi za mtandao zinazounga mkono itifaki ya Multipath TCP (MPTCP). Usaidizi wa MPTCP unaweza kuwezeshwa kwa msingi wa soketi ya kila mtandao, ambayo ni chaguo-msingi katika maktaba ya kawaida ya Go, kuanzia na Go 1.24 (Februari 2025).
Utekelezaji ulioandaliwa unaweza kutumika na programu yoyote ya seva iliyoandikwa katika Go, ikiwa ni pamoja na seva ya Caddy HTTP, mradi tu inaweza kutuma pakiti za mtandao kwenye soketi ya kusikiliza inayounda. Kwa kuwa udhaifu upo moja kwa moja kwenye rafu ya IPv4 na sio maalum kwa MPTCP, inawezekana kuunda utekelezaji unaofanya kazi bila kutegemea MPTCP, lakini utekelezaji kama huo bado haujaonyeshwa. Kwa mfano, inawezekana kutumia udhaifu wakati wa kusindika maombi ya uhamishaji wa soketi, ambayo inapatikana katika usanidi na kigezo cha net.ipv4.tcp_migrate_req=1 au wakati wa kutumia programu za eBPF na chaguo la BPF_SK_REUSEPORT_SELECT_OR_MIGRATE.
Udhaifu huu husababishwa na hali ya mbio ambayo hutokea wakati wa usindikaji wa maombi ya SYN yaliyotumwa tena wakati wa uanzishaji wa muunganisho wa TCP. Kwa kuwa kitendakazi cha tcp_v4_syn_recv_sock() hupitisha vigezo kutoka kwa muundo wa ireq->ireq_opt hadi kwenye soketi ya mtoto kupitia marejeleo badala ya kuvinakili, chini ya hali fulani hali hutokea ambapo kumbukumbu ya miundo ya inet_opt na ireq_opt iliyo na vigezo vya soketi tayari imeachiliwa, lakini chaguo zinazohusiana za soketi zinaendelea kutumika (bila kutumia-baada-ya-kutotumia).
Unyonyaji wa mbali unafanywa kwa kutuma mfululizo wa maombi ya mtandao yaliyosawazishwa kwa wakati. Unyonyaji huu unatumika kwa mafanikio kwa kerneli zinazotumia uainishaji wa anwani (KASLR), lakini kubonyeza dirisha la hali ya mbio huchukua muda mwingi na kuhitaji majaribio mengi tena. Unyonyaji hurahisishwa na ukweli kwamba kukosa dirisha la hali ya mbio husababisha tu kushikana mikono, badala ya kuanguka kwa kerneli, na kuruhusu majaribio yasiyo na kikomo. Katika mfano wa unyonyaji, shambulio hilo lilichukua takriban saa moja—dakika 48 kubaini mpangilio wa kumbukumbu na dakika nyingine 5 kupanga utekelezaji wa msimbo.
Hakuna suluhisho zinazopatikana bado zinazohakikisha suluhisho la udhaifu—kusakinisha sasisho la kernel ndio chaguo pekee la kuaminika. Tatizo linajitokeza kuanzia kernel. Linux 4.4 na kusasishwa katika matoleo 5.10.272, 5.15.223, 6.1.190, 6.6.159, 6.12.113, 6.18.56, 7.2.10 na 7.3. Hali ya marekebisho ya udhaifu katika usambazaji inaweza kutathminiwa kwenye kurasa hizi: Debian, Ubuntu, SUSE/OpenSUSE, RHEL, Gentoo, Arch,
Fedora.
Mapendekezo ya kukabiliana na mbinu maalum za unyonyaji ambazo hazizuii udhaifu kwa ujumla ni pamoja na kuzima usaidizi wa MPTCP na kuweka kigezo cha kernel sysctl net.ipv4.tcp_migrate_req hadi 0:
sysctl -w net.mptcp.enabled=0
sysctl -w net.ipv4.tcp_migrate_req=0
Kubaini kama kuna michakato katika mfumo inayotumia soketi zenye
MPTCP, unaweza kutumia amri:
onyesho la mwisho la ip mptcp
mipaka ya ip mptcp inaonyesha
Ili kuzima usaidizi wa MPTCP katika programu za Go, tumia bendera ya "multipathtcp=0", ambayo inaweza kuwekwa kwa kuweka kigezo cha mazingira cha "GODEBUG=multipathtcp=0". Ili kuzima usaidizi wa MPTCP wakati wa ujenzi, ongeza "godebug multipathtcp=0" kwenye faili ya go.mod. Katika msimbo wako wa programu, unaweza kuzima MPTCP kwa kutumia vitendakazi vya net.Dialer.SetMultipathTCP na net.ListenConfig.SetMultipathTCP.
Mbali na suala lililojadiliwa, Anthropic pia ilitangaza mfululizo wa udhaifu unaoweza kunyonywa ndani ya nchi katika kiini. Linux, OpenBSD, na FreeBSD zinazoruhusu ufikiaji wa mizizi kwenye mfumo na kutoroka kutoka kwenye vyombo vilivyotengwa; udhaifu katika Chrome na Safari unaosababisha utekelezaji wa msimbo kwenye mfumo wakati wa kufungua kurasa za wavuti zilizoundwa maalum; udhaifu katika kiini Windows, na kusababisha ajali; udhaifu wa mfumo Android, ambayo hukuruhusu kukwepa kufuli skrini na kufikia taarifa binafsi na picha bila kufungua kifaa (shambulio hilo lilionyeshwa kwenye simu mahiri ya Google Pixel 9).
Ongeza:
- Katika nginx, uwezo wa kuwezesha chaguo la IPPROTO_MPTCP kwa soketi ya mtandao inayosikiliza umekuwepo tangu toleo la 1.29.7, lakini hautumiki kwa chaguo-msingi.
- Katika Lighttpd, chaguo la kuwezesha MPTCP linapatikana tangu kutolewa kwa 1.4.76.
- Katika Apache httpd, viraka vya kuunga mkono MPTCP viliongezwa kwenye tawi la Apache httpd 2.5-HEAD mnamo 2024.
- Katika mfumo, usaidizi wa kuwezesha MPTCP wakati imewashwa kupitia soketi uliongezwa katika toleo la 257.
- Katika Seva ya Trafiki ya Apache, chaguo la kuwezesha MPTCP linatumika tangu toleo la 9.2.4.
- Katika HAProxy, kuanzia toleo la 3.1.0, chaguo "mptcp{,4,6}@" linapatikana ".
- Katika Traefik, kuweka bendera ya IPPROTO_MPTCP kunawezeshwa kwa chaguo-msingi tangu kutolewa kwa 2.11.26, 3.4.2 na v3.5.0-rc1.
- Katika Valkey DBMS, kuanzia na toleo la 9.0.0, chaguo "--mptcp" na mipangilio "mptcp ndiyo" na "repl-mptcp ndiyo" zinapatikana.
Chanzo: opennet.ru
