kernel TCP stack မှာ အဝေးကနေ အသုံးချနိုင်တဲ့ အားနည်းချက် Linux

Anthropic သည် kernel TCP stack တွင် အရေးကြီးသော အားနည်းချက် (CVE-2026-98432) တစ်ခုကို ထုတ်ဖော်ပြသခဲ့သည်။ Linuxအထူးပြုလုပ်ထားသော packet များပေးပို့ခြင်းဖြင့် အဝေးမှကုဒ်လုပ်ဆောင်ခြင်းကို ခွင့်ပြုသည်။ kernel level တွင် ကုဒ်လုပ်ဆောင်ခြင်းကို ခွင့်ပြုပြီး system ပေါ်တွင် root privileges များကို အဝေးမှရယူခြင်းကို ခွင့်ပြုသည့် အလုပ်လုပ်သော exploit တစ်ခုကို အစီရင်ခံတင်ပြထားသည်။ Multipath TCP (MPTCP) protocol ကို ပံ့ပိုးပေးသော network sockets များမှတစ်ဆင့် ချိတ်ဆက်မှုများကို လက်ခံသော server process များပါသည့် system များကို တိုက်ခိုက်ရန်အတွက် ဤ exploit သည် သင့်လျော်သည်။ MPTCP ပံ့ပိုးမှုကို Go standard library တွင် default အနေဖြင့် network socket တစ်ခုချင်းစီအလိုက် enable လုပ်နိုင်သည်။

ပြင်ဆင်ထားသော exploit ကို Caddy HTTP server အပါအဝင် Go တွင်ရေးသားထားသော မည်သည့် server application နှင့်မဆို အသုံးပြုနိုင်ပြီး ၎င်းဖန်တီးထားသော listening socket သို့ network packet များပေးပို့နိုင်သရွေ့ အသုံးပြုနိုင်ပါသည်။ အားနည်းချက်သည် IPv4 stack တွင် တိုက်ရိုက်ရှိနေပြီး MPTCP အတွက် သီးသန့်မဟုတ်သောကြောင့် MPTCP ကို ​​မှီခိုစရာမလိုဘဲ အလုပ်လုပ်သော exploit များကို ဖန်တီးနိုင်သော်လည်း ထိုကဲ့သို့သော exploit များကို မပြသရသေးပါ။ ဥပမာအားဖြင့်၊ net.ipv4.tcp_migrate_req=1 parameter ဖြင့် configuration များတွင် ရရှိနိုင်သော socket migration request များကို လုပ်ဆောင်သည့်အခါ သို့မဟုတ် BPF_SK_REUSEPORT_SELECT_OR_MIGRATE option ဖြင့် eBPF program များကို အသုံးပြုသည့်အခါတွင် ရရှိနိုင်သော အားနည်းချက်ကို အသုံးချနိုင်ပါသည်။

TCP ချိတ်ဆက်မှုတည်ဆောက်နေစဉ်အတွင်း ပြန်လည်ထုတ်လွှင့်သော SYN တောင်းဆိုမှုများကို တစ်ပြိုင်နက်တည်း လုပ်ဆောင်နေစဉ်အတွင်း ဖြစ်ပေါ်လာသော race condition ကြောင့် အားနည်းချက်ဖြစ်ပေါ်လာပါသည်။ tcp_v4_syn_recv_sock() function သည် ireq->ireq_opt structure မှ parameter များကို ကူးယူမည့်အစား reference မှတစ်ဆင့် child socket သို့ ပေးပို့သောကြောင့်၊ အချို့သောအခြေအနေများတွင် socket parameter များပါရှိသော inet_opt နှင့် ireq_opt structure များအတွက် memory ကို free လုပ်ပြီးဖြစ်သော်လည်း ဆက်စပ် socket option များကို ဆက်လက်အသုံးပြုနေပါသည် (use-after-free)။

အဝေးထိန်း အသုံးချမှုကို အချိန်နှင့်တစ်ပြိုင်တည်း ကွန်ရက်တောင်းဆိုမှုများ ပေးပို့ခြင်းဖြင့် ပြီးမြောက်အောင်မြင်ပါသည်။ ဤအားနည်းချက်သည် address randomization (KASLR) ကိုအသုံးပြုသော kernel များတွင် အောင်မြင်စွာ အသုံးချနိုင်သော်လည်း၊ race condition window သို့ရောက်ရှိရန် အချိန်အတော်အသင့်ကြာမြင့်ပြီး ပြန်လည်ကြိုးစားမှုအကြိမ်ရေများစွာ လိုအပ်ပါသည်။ race condition window လွတ်သွားခြင်းသည် kernel crash မဟုတ်ဘဲ handshake ကိုသာ ဖြစ်ပေါ်စေသောကြောင့် အကန့်အသတ်မရှိ ကြိုးပမ်းမှုများကို ခွင့်ပြုသောကြောင့် အသုံးချမှုကို ရိုးရှင်းစေသည်။ exploit prototype တွင်၊ တိုက်ခိုက်မှုသည် တစ်နာရီခန့်ကြာမြင့်ပြီး memory layout ကို ဆုံးဖြတ်ရန် မိနစ် ၄၈ နှင့် code execution ကို စီစဉ်ရန် နောက်ထပ် မိနစ် ၅ ကြာပါသည်။

အားနည်းချက်အတွက် ပြင်ဆင်မှုကို အာမခံသည့် ဖြေရှင်းနည်းများ မရှိသေးပါ - kernel update ကို install လုပ်ခြင်းသည်သာ ယုံကြည်စိတ်ချရသော ရွေးချယ်မှုဖြစ်သည်။ ပြဿနာသည် kernel မှစတင်၍ ပေါ်လာသည်။ Linux ၄.၄ နှင့် ဖြန့်ချိမှုများ 5.10.272၊ 5.15.223၊ 6.1.190၊ 6.6.159၊ 6.12.113၊ 6.18.56၊ 7.2.10 နှင့် 7.3 တို့တွင် ပြင်ဆင်ပြီးဖြစ်သည်။ ဖြန့်ဖြူးမှုများတွင် အားနည်းချက်ပြင်ဆင်မှုများ၏ အခြေအနေကို ဤစာမျက်နှာများတွင် အကဲဖြတ်နိုင်ပါသည်။ Debian, Ubuntu, SUSE/openSUSE, RHEL, Gentoo, Arch,
Fedora ။

ယေဘုယျအားဖြင့် အားနည်းချက်ကို မပိတ်ဆို့သော သီးခြားအသုံးချမှုနည်းလမ်းများကို တန်ပြန်ရန်အတွက် အကြံပြုချက်များတွင် MPTCP ပံ့ပိုးမှုကို ပိတ်ခြင်းနှင့် kernel sysctl parameter net.ipv4.tcp_migrate_req ကို 0 သို့ သတ်မှတ်ခြင်းတို့ ပါဝင်သည်။

sysctl -w net.mptcp.enabled=0 (ကုဒ်နံပါတ် 0)
sysctl -w net.ipv4.tcp_migrate_req=0

စနစ်တွင် socket များကို အသုံးပြုသော လုပ်ငန်းစဉ်များ ရှိမရှိ ဆုံးဖြတ်ရန်
MPTCP မှာ command တွေကိုသုံးနိုင်ပါတယ်-

ip mptcp အဆုံးမှတ်ပြပါ
ip mptcp ကန့်သတ်ချက်များ ပြသသည်

Go ပရိုဂရမ်များတွင် MPTCP ပံ့ပိုးမှုကို ပိတ်ရန် "multipathtcp=0" flag ကိုသုံးပါ၊ ၎င်းကို "GODEBUG=multipathtcp=0" environment variable ကို သတ်မှတ်ခြင်းဖြင့် သတ်မှတ်နိုင်သည်။ build time တွင် MPTCP ပံ့ပိုးမှုကို ပိတ်ရန် go.mod ဖိုင်တွင် "godebug multipathtcp=0" ကို ထည့်ပါ။ သင်၏ application code တွင် net.Dialer.SetMultipathTCP နှင့် net.ListenConfig.SetMultipathTCP functions များကို အသုံးပြု၍ MPTCP ကို ​​ပိတ်နိုင်သည်။

ဆွေးနွေးထားသောပြဿနာအပြင်၊ Anthropic သည် kernel တွင် ဒေသတွင်းအသုံးချနိုင်သော အားနည်းချက်များကိုလည်း ကြေညာခဲ့သည်။ Linuxစနစ်ကို root access ခွင့်ပြုပြီး သီးခြား container များမှ လွတ်မြောက်ခွင့်ပြုသည့် OpenBSD နှင့် FreeBSD၊ အထူးဒီဇိုင်းထုတ်ထားသော ဝဘ်စာမျက်နှာများကို ဖွင့်သည့်အခါ စနစ်တွင် code execution ဖြစ်စေသည့် Chrome နှင့် Safari ရှိ အားနည်းချက်များ၊ kernel ရှိ အားနည်းချက်တစ်ခု Windows၊ ပျက်ကျမှုဖြစ်စေသည်။ ပလက်ဖောင်းအားနည်းချက် Android၎င်းသည် စက်ပစ္စည်းကို လော့ခ်ဖွင့်စရာမလိုဘဲ မျက်နှာပြင်လော့ခ်ကို ကျော်ဖြတ်ပြီး ကိုယ်ရေးကိုယ်တာအချက်အလက်များနှင့် ဓာတ်ပုံများကို ဝင်ရောက်ကြည့်ရှုနိုင်စေပါသည် (တိုက်ခိုက်မှုကို Google Pixel 9 စမတ်ဖုန်းတွင် သရုပ်ပြခဲ့သည်)။

ဖြည့်စွက်:

  • nginx မှာ listening network socket အတွက် IPPROTO_MPTCP option ကို enable လုပ်နိုင်တဲ့စွမ်းရည်ဟာ version 1.29.7 ကတည်းက ရှိခဲ့ပေမယ့် default အနေနဲ့ အသုံးမပြုပါဘူး။
  • Lighttpd တွင် MPTCP ကိုဖွင့်ရန် ရွေးချယ်မှုကို ဗားရှင်း 1.4.76 မှစ၍ ရရှိနိုင်ပါသည်။
  • Apache httpd မှာ MPTCP ကို ​​ပံ့ပိုးပေးဖို့ patches တွေကို ၂၀၂၄ ခုနှစ်မှာ Apache httpd 2.5-HEAD branch မှာ ထည့်သွင်းခဲ့ပါတယ်။
  • systemd တွင်၊ socket မှတစ်ဆင့် activate လုပ်သည့်အခါ MPTCP ကို ​​enable လုပ်ရန် ပံ့ပိုးမှုကို version 257 တွင် ထည့်သွင်းခဲ့သည်။
  • Apache Traffic Server တွင် MPTCP ကိုဖွင့်ရန် ရွေးချယ်မှုကို ဗားရှင်း 9.2.4 မှစ၍ ပံ့ပိုးပေးထားပါသည်။
  • HAProxy မှာ version 3.1.0 ကနေစပြီး "mptcp{,4,6}@" option ကို ရနိုင်ပါတယ်။ " .
  • Traefik တွင်၊ IPPROTO_MPTCP flag ကို 2.11.26၊ 3.4.2 နှင့် v3.5.0-rc1 ထုတ်ဝေမှုများမှစ၍ default အနေဖြင့် enable လုပ်ထားသည်။
  • Valkey DBMS တွင်၊ ဗားရှင်း 9.0.0 မှစတင်၍ "--mptcp" ရွေးချယ်မှုနှင့် "mptcp yes" နှင့် "repl-mptcp yes" ဆက်တင်များကို ရရှိနိုင်ပါသည်။

source: opennet.ru

DDoS ကာကွယ်ရေး၊ VPS VDS ဆာဗာများပါသည့် ဆိုက်များအတွက် ယုံကြည်စိတ်ချရသော hosting ကို ဝယ်ယူပါ။ 🔥 DDoS ကာကွယ်မှု၊ VPS VDS ဆာဗာများပါရှိသော ယုံကြည်စိတ်ချရသော ဝဘ်ဆိုက် hosting ကို ဝယ်ယူပါ | ProHoster