Udaljeno iskorištavanje ranjivosti u TCP stogu jezgre Linuxa

Tvrtka Anthropic je objavila informacije o kritičnoj ranjivosti (CVE-2026-98432) u TCP stogu jezgre Linuxa, koja omogućuje daljnje izvršavanje koda slanjem posebno oblikovanih paketa. Navodno je razvijen funkcionalni exploit koji omogućuje izvršavanje koda na razini jezgre i daljinsko stjecanje root prava u sustavu. Pripremljeni exploit primjenjiv je za napade na sustave sa serverskim procesima koji prihvaćaju veze putem mrežnih soketa podržavajući MPTCP (Multipath TCP) protokol. Podrška za MPTCP može se aktivirati za pojedinačne mrežne sokete, što je po defaultu omogućeno u standardnoj knjižnici jezika Go, počevši od verzije Go 1.24 (veljača 2025).

Pripremljeni exploit može se primijeniti pri korištenju bilo kojeg serverskog aplikacija napisanih u jeziku Go, uključujući HTTP server Caddy, kada postoji mogućnost slanja mrežnih paketa na njihov slušajući soket. Budući da je ranjivost prisutna izravno u IPv4 stogu i nije specifična za MPTCP, ne isključuje se razvoj exploit-a koji rade bez veze s MPTCP-om, ali takvi exploit-i za sada nisu demonstrirani. Na primjer, moguće je iskorištavanje ranjivosti pri obradi zahtjeva za migraciju soketa, dostupno u konfiguracijama s parametrom net.ipv4.tcp_migrate_req=1 ili pri korištenju eBPF programa s opcijom BPF_SK_REUSEPORT_SELECT_OR_MIGRATE.

Ranjivost je uzrokovana stanjima utrke koja se javljaju prilikom simultane obrade ponovo poslanih SYN zahtjeva prilikom uspostavljanja TCP veze. Budući da funkcija tcp_v4_syn_recv_sock() prosljeđuje djetetovom soketu parametre iz strukture ireq->ireq_opt putem reference, a ne kroz kopiranje, u određenim okolnostima dolazi do situacije gdje je memorija rezervirana za strukture inet_opt i ireq_opt s parametrima soketa već oslobođena, ali povezane opcije soketa se i dalje koriste (use-after-free).

Udaljeno iskorištavanje vrši se slanjem niza vremenski usklađenih mrežnih upita. Stvoreni exploit je uspješno primjenjiv, uključujući jezgre koje koriste randomizaciju adresa (KASLR), ali ulazak u prozor stanja utrke traje dovoljno dugo i zahtijeva veliki broj ponovljenih pokušaja. Iskorištavanje olakšava to što promašivanje prozora stanja utrke dovodi samo do resetiranja sesije uspostavljanja veze (handshake), a ne do rušenja jezgre, što omogućava beskonačno nastavak pokušaja. U stvorenom prototipu exploit-a trebalo je otprilike sat vremena — 48 minuta za određivanje rasporeda memorije i još 5 minuta za organizaciju izvršenja koda.

Pouzdano blokirajući načini zaobilaženja ranjivosti još nisu predstavljeni — kao jedina pouzdana opcija predlaže se instalacija nadogradnje jezgre. Problem se javlja počevši od jezgre Linux 4.4 i ispravljen je u izdanjima 5.10.272, 5.15.223, 6.1.190, 6.6.159, 6.12.113, 6.18.56, 7.2.10 i 7.3. Status ispravke ranjivosti u distribucijama može se procijeniti na ovim stranicama: Debian, Ubuntu, SUSE/openSUSE, RHEL, Gentoo, Arch,
Fedora.

Od preporuka za suzbijanje specifičnih metoda iskorištavanja, koji ne blokiraju ranjivost u općem smislu, može se istaknuti onemogućavanje podrške za MPTCP i postavljanje sysctl parametra jezgre net.ipv4.tcp_migrate_req na vrijednost 0:

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

Za utvrđivanje postojanja procesa u sustavu koji koriste sokete s
MPTCP, mogu se koristiti naredbe:

ip mptcp endpoint show
ip mptcp limits show

Za onemogućavanje podrške za MPTCP u programima pisanima na Go jeziku, treba koristiti zastavu „multipathtcp=0“, za postavljanje koje se može postaviti varijabla okruženja „GODEBUG=multipathtcp=0“. Za onemogućavanje podrške za MPTCP u fazi izrade može se dodati „godebug multipathtcp=0“ u datoteku s modulom go.mod. U kodu aplikacije korištenje MPTCP može se onemogućiti putem funkcija net.Dialer.SetMultipathTCP i net.ListenConfig.SetMultipathTCP.

Osim razmatrane probleme, kompanija Anthropic je takođe najavila seriju lokalno iskorištenih ranjivosti u jezgru Linuxa, OpenBSD i FreeBSD, koje omogućavaju sticanje root prava u sistemu i izlazak iz izolovanih kontejnera; ranjivosti u Chromeu i Safariju koje vode do izvršenja koda u sistemu prilikom otvaranja posebno formatiranih web stranica; ranjivost u jezgru Windowsa koja dovodi do srušavanja sistema; ranjivost u Android platformi koja omogućava zaobilaženje zaključavanja ekrana i pristup ličnim informacijama i fotografijama bez otključavanja uređaja (napad je demonstriran na pametnom telefonu Google Pixel 9).

Dodatak:

  • U nginx-u mogućnost aktivacije opcije IPPROTO_MPTCP za slušajući mrežni soket dostupna je počevši od verzije 1.29.7, ali nije primenjena prema zadatoj postavci.
  • U Lighttpd opcija za uključivanje MPTCP dostupna je počevši od izdanja 1.4.76.
  • U Apache httpd ispravke za podršku MPTCP dodate su u granu Apache httpd 2.5-HEAD 2024. godine.
  • U systemd podrška za uključivanje MPTCP aktivacijom putem soketa dodana je u verziji 257.
  • U Apache Traffic Server opcija za uključivanje MPTCP podržana je počevši od verzije 9.2.4.
  • U HAProxy počevši od verzije 3.1.0 dostupna je opcija „mptcp{,4,6}@
    “.
  • U Traefik postavljanje zastavice IPPROTO_MPTCP uključeno je prema zadatku počevši od izdanja 2.11.26, 3.4.2 i v3.5.0-rc1.
  • U SBB Valkey počevši od verzije 9.0.0 dostupna je opcija „—mptcp“ i podešavanja „mptcp yes“ i „repl-mptcp yes“.

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster