Kaugjuhtimise vulneraablus Linuxi tuuma TCP-stekis

Anthropic teatas kriitilisest haavatavusest (CVE-2026-98432) Linuxi tuuma TCP-stekis, mis võimaldab kaugelt koodi käivitamist spetsiaalselt vormistatud pakettide saatmise kaudu. On teatatud töökindlast eksploiti loomise kohta, mis võimaldab käivitada koodi kernelitasemel ja kaugel saada root-õigused süsteemis. Valmistatud eksploit võimaldab rünnakuid süsteemide vastu, mis töötlevad serveriprotsesse ja aktsepteerivad ühendusi võrgu soketite kaudu, toetades MPTCP (Multipath TCP) protokolli. MPTCP-i tugi saab aktiveeritud olla seotud eraldi võrgu sokettidega, mis toimub vaikimisi Go keele standardraamatukogus alates versioonist Go 1.24 (veebruar 2025).

Valmistatud eksploit saab rakendada kõigi Go keeles kirjutatud serveri rakenduste puhul, sealhulgas HTTP-serveri Caddy puhul, kui on olemas võimalus saata võrgu pakette nende loodud ootavat soketti. Kuna haavatavus esineb otse IPv4-stekis ja ei ole spetsiifiline MPTCP jaoks, ei välistata eksploite, mis töötavad ilma MPTCP-i sidumiseta, kuid selliseid eksploite ei ole seni demonstreeritud. Näiteks on võimalik haavatavuse ärakasutamine sokettide migreerimise päringute töötlemisel, mis on saadaval konfiguratsioonides, kus parameeter net.ipv4.tcp_migrate_req=1 või eBPF-programmide kasutamisel, millel on valik BPF_SK_REUSEPORT_SELECT_OR_MIGRATE.

Haavatavus on põhjustatud võidusõidutingimustest, mis tekivad samaaegse töötlemise ajal korduvate SYN-päringute puhul TCP-ühenduse loomisel. Kuna funktsioon tcp_v4_syn_recv_sock() edastab alam-soketile parameetrid struktuurist ireq->ireq_opt viidena, mitte kopeerimise kaudu, tekib teatud asjaolude korral olukord, kus inet_opt ja ireq_opt struktuuri jaoks eraldatud mälu on juba vabastatud, kuid seotud soketi valikud jätkavad kasutamist (use-after-free).

Kaugkasutamine toimub ajaliselt sünkroniseeritud võrgu päringute seeria saatmise kaudu. Loodud eksploit on rakendatav ka tuumadele, kus kasutatakse aadresside randomiseerimist (KASLR), kuid võime tabada võistluse seisundi akent nõuab piisavalt palju aega ja korduvaid katseid. Ekspluateerimist lihtsustab see, et mitte isegi tabamine võistluse seisundi akent toob kaasa vaid ühenduse seadistamise seansi (handshake) katkestamise, mitte tuuma krahhi, mis võimaldab katseid lõputult jätkata. Loodud eksploitprototüübi rünnaku läbiviimiseks kulus umbes tund — 48 minutit mälu paigutuse määramiseks ja veel 5 minutit koodi täitmise korraldamiseks.

Garantii, et blokeerimise haavatavuse ümbersuunamise meetodid ei ole praegu esitatud — ainus usaldusväärne lahendus on tuumauuenduse installimine. Probleem ilmneb alates Linuxi tuumast 4.4 ja on kõrvaldatud versioonides 5.10.272, 5.15.223, 6.1.190, 6.6.159, 6.12.113, 6.18.56, 7.2.10 ja 7.3. Haavatavuste kõrvaldamise staatust distributsioonides saab hinnata nendel lehtedel: Debian, Ubuntu, SUSE/openSUSE, RHEL, Gentoo, Arch,
Fedora.

Soovitustes, kuidas vastu astuda konkreetsetele ekspluateerimise meetoditele, mis ei blokeeri haavatavust üldiselt, on soovitatav keelata MPTCP toetus ja seada tuuma sysctl-parameeter net.ipv4.tcp_migrate_req väärtuseks 0:

sysctl -w net.mptcp.enabled=0
sysctl -w net.ipv4.tcp_migrate_req=0

Süsteemis protsesside määramiseks, mis kasutavad sokette koos
MPTCP, saab kasutada käske:

ip mptcp endpoint show
ip mptcp limits show

MPTCP toe keelamiseks Go-programmides tuleb kasutada lippu «multipathtcp=0», mille seadmise jaoks saab määrata keskkonnamuutuja «GODEBUG=multipathtcp=0». MPTCP toe keelamiseks koostamisprotsessis võib lisada «godebug multipathtcp=0» faili go.mod mooduli juurde. Rakenduse koodis saab MPTCP kasutamise keelata funktsioonide net.Dialer.SetMultipathTCP ja net.ListenConfig.SetMultipathTCP kaudu.

Lisaks arutatud probleemile teatas ettevõte Anthropic ka seeriast kohalike eksplotatsiooni haavatavustest Linuxi, OpenBSD ja FreeBSD tuumades, mis võimaldavad saada süsteemis root õigused ja väljuda isoleeritud konteineritest; haavatavustest Chrome'is ja Safari's, mis viivad süsteemis koodi käivitamiseni spetsiaalselt vormindatud veebilehtede avamisel; Windowsi tuumas leiduvast haavatavusest, mis põhjustab süsteemi kokkuvarisemise; Androidi platvormi haavatavusest, mis võimaldab blokeerimise ümber minna ja pääseda isiklikule teabele ja fotodele ilma seadme lukust avamata (rünnakut demonstreeriti Google Pixel 9 nutitelefonil).

Täiendamine:

  • Nginxis on IPPROTO_MPTCP valiku aktiveerimise võimalus kuulava võrgu sokli jaoks saadaval alates versioonist 1.29.7, kuid seda ei rakendata vaikimisi.
  • Lighttpd's on MPTCP aktiveerimise valik saadaval alates versioonist 1.4.76.
  • Apache httpd-s on MPTCP toe jaoks mõeldud patchid lisatud Apache httpd 2.5-HEAD harusse 2024. aastal.
  • Systemd-s on MPTCP aktiveerimise tugi sokli kaudu saadaval alates versioonist 257.
  • Apache Traffic Server'is on MPTCP aktiveerimise valik toetatud alates versioonist 9.2.4.
  • HAProxy's on alates versioonist 3.1.0 saadaval valik "mptcp{,4,6}@
    ".
  • Traefik'is on IPPROTO_MPTCP lipu seadmine vaikimisi aktiveeritud alates versioonidest 2.11.26, 3.4.2 ja v3.5.0-rc1.
  • Andmebaasis Valkey on alates versioonist 9.0.0 saadaval valik "--mptcp" ja seaded "mptcp yes" ning "repl-mptcp yes".

Allikas: opennet.ru

Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid 🔥 Osta usaldusväärne veebimajutus DDoS-kaitsega veebisaitidele, VPS VDS serverid - ProHoster