Kompania Anthropic publikoi informacion rreth njĂ« dobĂ«sie kritike (CVE-2026-98432) nĂ« stekĂ«n TCP tĂ« bĂ«rthamĂ«s Linux, e cila lejon ekzekutimin e kodit nĂ« distancĂ« pĂ«rmes dĂ«rgimit tĂ« paketave tĂ« pĂ«rpunuara nĂ« mĂ«nyrĂ« tĂ« veçantĂ«. ĂshtĂ« deklaruar se njĂ« eksploit i punĂ«suar Ă«shtĂ« krijuar, i cili lejon ekzekutimin e kodit nĂ« nivelin e bĂ«rthamĂ«s dhe marrjen e tĂ« drejtave root nĂ« sistem nĂ« mĂ«nyrĂ« tĂ« distancuar. Eksploiti i pĂ«rgatitur Ă«shtĂ« i pĂ«rshtatshĂ«m pĂ«r tĂ« sulmuar sistemet me procese serverash qĂ« pranojnĂ« lidhje pĂ«rmes sockeve rrjetĂ«rore, tĂ« cilat mbĂ«shtesin pĂ«rdorimin e protokollit MPTCP (Multipath TCP). MbĂ«shtetja pĂ«r MPTCP mund tĂ« aktivizohet nĂ« lidhje me sockeve tĂ« veçantĂ« rrjetesh, e cila bĂ«het pĂ«r defaut nĂ« bibliotekĂ«n standarde tĂ« gjuhĂ«s Go, duke filluar nga versioni Go 1.24 (shkurt 2025).
Eksploiti i përgatitur mund të aplikohet në përdorimin e çdo aplikacioni serveri në gjuhën Go, duke përfshirë serverin HTTP Caddy, nëse ka mundësinë e dërgimit të paketave rrjetërore në soketin e dëgjuar të krijuar nga ata. Duke qenë se dobësia është e pranishme direkt në stekën IPv4 dhe nuk është specifike për MPTCP, nuk përjashtohet krijimi i eksploiteve që funksionojnë pa u lidhur me MPTCP, por eksploite të tilla nuk janë demonstruar ende. Për shembull, është e mundur të shfrytëzohet dobësia gjatë përpunimit të kërkesave për migrimin e sockeve, e cila është e disponueshme në konfigurimet me parametrin net.ipv4.tcp_migrate_req=1 ose duke përdorur programe eBPF me opsionin BPF_SK_REUSEPORT_SELECT_OR_MIGRATE.
Dobësia shkaktohet nga një gjendje garash, e cila ndodh gjatë përpunimit të përsëritur të kërkesave SYN të ripërsëritura gjatë vendosjes së lidhjes TCP. Duke qenë se funksioni tcp_v4_syn_recv_sock() kalon parametrat nga struktura ireq->ireq_opt në soketin fëmijë përmes një referimi dhe jo përmes kopjimit, nën rrethana të caktuara ndodh një situatë ku memorja për strukturat inet_opt dhe ireq_opt me parametrat e soketit është çliruar tashmë, por opsionet e lidhura me to vazhdojnë të përdoren (use-after-free).
Ekspolorimi i distancës realizohet përmes dërgimit të një seri kërkesash rrjeti të sinkronizuara në kohë. Eksploiti i krijuar është gjithashtu i aplikueshëm për bërthamat që përdorin rastësinë e adresave (KASLR), por kapja e dritares së gjendjes konkurruese merr mjaft kohë dhe kërkon një numër të madh përpjekjesh. Ekspolorimi lehtësohet nga fakti se dështimi për të kapur dritaren e gjendjes konkurruese çon vetëm në rennimin e sesionit të krijimit të lidhjes (handshake), dhe jo në shembjen e bërthamës, që jep mundësinë për të vazhduar përpjekjet në mënyrë të pafund. Në prototipin e krijuar të eksploiti, realizimi i sulmit kërkoi rreth një orë - 48 minuta për të përcaktuar shpërndarjen e kujtesës dhe 5 minuta të tjera për të organizuar ekzekutimin e kodit.
Për momentin, asnjë rrugëtirohet garantuar për të bllokuar vulnerabilitetin nuk është paraqitur - si një opsion i vetëm i besueshëm propozohet të instaloni azhurnimin e bërthamës. Problemi shfaqet që nga bërthama Linux 4.4 dhe është eliminuar në lëshimet 5.10.272, 5.15.223, 6.1.190, 6.6.159, 6.12.113, 6.18.56, 7.2.10 dhe 7.3. Statusi i eliminimit të vulnerabiliteteve në distribuimet mund të vlerësohet në këto faqe: Debian, Ubuntu, SUSE/openSUSE, RHEL, Gentoo, Arch,
Fedora.
Nga rekomandimet për të kundërshtuar metoda të caktuara të eksploatimit, të cilat nuk bllokojnë vulnerabilitetin në formën e përgjithshme, mund të theksojmë çaktivizimin e mbështetjes MPTCP dhe vendosjen e parametrave të sysctl të bërthamës net.ipv4.tcp_migrate_req në vlerën 0:
sysctl -w net.mptcp.enabled=0
sysctl -w net.ipv4.tcp_migrate_req=0
Për të përcaktuar nëse në sistem ka procese që përdorin sokete me
MPTCP, mund të përdoren komandat:
ip mptcp endpoint show
ip mptcp limits show
Për të çaktivizuar mbështetje MPTCP në programet në gjuhën Go, duhet të përdoret flagu "multipathtcp=0", për të cilin mund të vendosni variablin e mjedisit "GODEBUG=multipathtcp=0". Për të çaktivizuar mbështetje MPTCP në fazën e ndërtimit mund të shtoni "godebug multipathtcp=0" në skedarin me modul go.mod. Në kodin e aplikacionit, përdorimi i MPTCP mund të çaktivizohet përmes funksioneve net.Dialer.SetMultipathTCP dhe net.ListenConfig.SetMultipathTCP.
Përveç problemi të discutuar, kompania Anthropic gjithashtu njoftoi një sërë dobësish të përdorura lokalisht në bërthamën Linux, OpenBSD dhe FreeBSD, të cilat lejojnë përfitimin e të drejtave root në sistem dhe daljen jashtë konteinerëve të izoluar; dobësitë në Chrome dhe Safari, që çojnë në ekzekutimin e kodit në sistem kur hapen faqe web-i të dizajnuara posaçërisht; një dobësi në bërthamën Windows, që shkakton mbyllje të papritur; një dobësi në platformën Android, që lejon anashkalimin e bllokimit të ekranit dhe qasjen në informacione personale dhe fotografi pa zhbllokimin e pajisjes (sulmi demonstrohet në smartphone-in Google Pixel 9).
Për të ndryshuar konfigurimin, nuk është e nevojshme të dërgoni trupin e kërkesës në formatin
- Në nginx, mundësia për aktivizimin e opsionit IPPROTO_MPTCP për soketin rrjetë që dëgjon është e pranishme që nga versioni 1.29.7, por nuk aktivizohet si parazgjedhje.
- Në Lighttpd, opsioni për aktivizimin e MPTCP është i disponueshëm që nga lëshimi 1.4.76.
- Në Apache httpd, patches për mbështetje MPTCP janë shtuar në degen Apache httpd 2.5-HEAD në vitin 2024.
- Në systemd, mbështetja për aktivizimin e MPTCP gjatë aktivizimit përmes soketit u shtua në versionin 257.
- Në Apache Traffic Server, opsioni për aktivizimin e MPTCP mbështetet që nga versioni 9.2.4.
- Në HAProxy, që nga versioni 3.1.0, opsioni "mptcp{,4,6}@" është i disponueshëm.
- Në Traefik, vendosja e flamurit IPPROTO_MPTCP është e aktivizuar si parazgjedhje që nga lëshimet 2.11.26, 3.4.2 dhe v3.5.0-rc1.
- NĂ« DBMS Valkey, qĂ« nga versioni 9.0.0, opsioni "âmptcp" dhe konfigurimet "mptcp yes" dhe "repl-mptcp yes" janĂ« tĂ« disponueshme.
Burimi: opennet.ru
