Attālināti izmantojama ievainojamība kodola TCP kaudzē Linux

Anthropic ir atklājis kritisku ievainojamÄ«bu (CVE-2026-98432) kodola TCP kaudzē. Linux, kas ļauj attālināti izpildÄ«t kodu, nosÅ«tot speciāli izstrādātas paketes. Ir ziņots par funkcionējoÅ”u ievainojamÄ«bu, kas ļauj izpildÄ«t kodu kodola lÄ«menÄ« un attālināti iegÅ«t root privilēģijas sistēmā. Å Ä« ievainojamÄ«ba ir piemērota uzbrukumiem sistēmām ar servera procesiem, kas pieņem savienojumus, izmantojot tÄ«kla ligzdas, kas atbalsta Multipath TCP (MPTCP) protokolu. MPTCP atbalstu var iespējot katrai tÄ«kla ligzdai atseviŔķi, kas ir Go standarta bibliotēkas noklusējuma iestatÄ«jums, sākot ar Go 1.24 (2025. gada februāris).

Sagatavoto izmantoto ievainojamÄ«bu var izmantot ar jebkuru servera lietojumprogrammu, kas rakstÄ«ta Go valodā, tostarp Caddy HTTP serveri, ja vien tā var nosÅ«tÄ«t tÄ«kla paketes uz izveidoto klausīŔanās ligzdu. Tā kā ievainojamÄ«ba atrodas tieÅ”i IPv4 kaudzē un nav raksturÄ«ga tikai MPTCP, ir iespējams izveidot izmantotos ievainojamÄ«bas avotus, kas darbojas, nepaļaujoties uz MPTCP, taču Ŕādi izmantotāji vēl nav demonstrēti. Piemēram, ievainojamÄ«bu ir iespējams izmantot, apstrādājot ligzdas migrācijas pieprasÄ«jumus, kas ir pieejams konfigurācijās ar parametru net.ipv4.tcp_migrate_req=1 vai izmantojot eBPF programmas ar opciju BPF_SK_REUSEPORT_SELECT_OR_MIGRATE.

Å o ievainojamÄ«bu izraisa sacensÄ«bas nosacÄ«jums, kas rodas atkārtoti pārsÅ«tÄ«tu SYN pieprasÄ«jumu vienlaicÄ«gas apstrādes laikā TCP savienojuma izveides laikā. Tā kā funkcija tcp_v4_syn_recv_sock() nodod parametrus no ireq->ireq_opt struktÅ«ras uz bērnu ligzdu, izmantojot atsauci, nevis kopējot tos, noteiktos apstākļos rodas situācija, kad ligzdas parametrus saturoÅ”o inet_opt un ireq_opt struktÅ«ru atmiņa jau ir atbrÄ«vota, bet saistÄ«tās ligzdas opcijas turpina tikt izmantotas (use-after-free).

Attālā izmantoÅ”ana tiek panākta, nosÅ«tot virkni laika sinhronizētu tÄ«kla pieprasÄ«jumu. IzmantoÅ”ana veiksmÄ«gi attiecas uz kodoliem, kas izmanto adreÅ”u nejauÅ”ināŔanu (KASLR), taču sacensÄ«bu nosacÄ«juma loga sasniegÅ”ana aizņem ievērojamu laiku un prasa lielu skaitu atkārtotu mēģinājumu. IzmantoÅ”anu vienkārÅ”o fakts, ka sacensÄ«bu nosacÄ«juma loga neievēroÅ”ana izraisa tikai saziņas pārtraukÅ”anu, nevis kodola avāriju, kas ļauj veikt neierobežotu mēģinājumu skaitu. IzmantoÅ”anas prototipā uzbrukums aizņēma aptuveni stundu — 48 minÅ«tes, lai noteiktu atmiņas izkārtojumu, un vēl 5 minÅ«tes, lai organizētu koda izpildi.

Pagaidām nav pieejami risinājumi, kas garantētu ievainojamÄ«bas novērÅ”anu — vienÄ«gā uzticamā iespēja ir kodola atjauninājuma instalēŔana. Problēma sākas ar kodolu. Linux 4.4 un izlabotas laidienos 5.10.272, 5.15.223, 6.1.190, 6.6.159, 6.12.113, 6.18.56, 7.2.10 un 7.3. IevainojamÄ«bu labojumu statusu izplatÄ«jumos var novērtēt Å”ajās lapās: Debian, Ubuntu, SUSE/openSUSE, RHEL, Gentoo, Arch,
Fedora.

Ieteikumi, kā novērst konkrētas ekspluatācijas metodes, kas kopumā nebloķē ievainojamÄ«bu, ietver MPTCP atbalsta atspējoÅ”anu un kodola sysctl parametra net.ipv4.tcp_migrate_req iestatīŔanu uz 0:

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

Lai noteiktu, vai sistēmā ir procesi, kas izmanto ligzdas ar
MPTCP, varat izmantot komandas:

ip mptcp galapunkta rādīŔana
IP mptcp ierobežojumi tiek rādīti

Lai atspējotu MPTCP atbalstu Go programmās, izmantojiet karodziņu "multipathtcp=0", ko var iestatÄ«t, iestatot vides mainÄ«go "GODEBUG=multipathtcp=0". Lai atspējotu MPTCP atbalstu bÅ«vēŔanas laikā, pievienojiet "godebug multipathtcp=0" failam go.mod. Lietojumprogrammas kodā varat atspējot MPTCP, izmantojot funkcijas net.Dialer.SetMultipathTCP un net.ListenConfig.SetMultipathTCP.

Papildus apspriestajai problēmai Anthropic paziņoja arÄ« par virkni lokāli izmantojamu kodola ievainojamÄ«bu. Linux, OpenBSD un FreeBSD, kas ļauj root piekļūt sistēmai un izkļūt no izolētiem konteineriem; Chrome un Safari ievainojamÄ«bas, kas izraisa koda izpildi sistēmā, atverot speciāli izstrādātas tÄ«mekļa lapas; kodola ievainojamÄ«ba Windows, kas noved pie avārijas; platformas ievainojamÄ«ba Android, kas ļauj apiet ekrāna bloķēŔanu un piekļūt personiskajai informācijai un fotoattēliem, neatbloķējot ierÄ«ci (uzbrukums tika demonstrēts Google Pixel 9 viedtālrunÄ«).

Papildinājums:

  • Nginx vidē iespēja iespējot IPPROTO_MPTCP opciju klausīŔanās tÄ«kla ligzdai ir pieejama kopÅ” 1.29.7 versijas, taču pēc noklusējuma tā netiek izmantota.
  • Lighttpd versijā MPTCP iespējoÅ”anas opcija ir pieejama kopÅ” 1.4.76 versijas.
  • Apache httpd vidē 2024. gadā Apache httpd 2.5-HEAD atzaram tika pievienoti ielāpi MPTCP atbalstam.
  • Systemd versijā 257 tika pievienots atbalsts MPTCP iespējoÅ”anai, ja tas tiek aktivizēts, izmantojot ligzdu.
  • Apache Traffic Server MPTCP iespējoÅ”anas opcija tiek atbalstÄ«ta kopÅ” 9.2.4. versijas.
  • Sākot ar HAProxy versiju 3.1.0, ir pieejama opcija "mptcp{,4,6}@". ".
  • Traefik vidē IPPROTO_MPTCP karodziņa iestatīŔana pēc noklusējuma ir iespējota kopÅ” 2.11.26, 3.4.2 un v3.5.0-rc1 versijām.
  • Valkey DBMS, sākot ar versiju 9.0.0, ir pieejama opcija "--mptcp" un iestatÄ«jumi "mptcp yes" un "repl-mptcp yes".

Avots: opennet.ru

Iegādājieties uzticamu mitināŔanu vietnēm ar DDoS aizsardzÄ«bu, VPS VDS serveriem šŸ”„ Iegādājieties uzticamu tÄ«mekļa vietņu mitināŔanu ar DDoS aizsardzÄ«bu, VPS VDS serveriem | ProHoster