አንትሮፒክ በከርነል TCP stack ውስጥ ወሳኝ የሆነ ተጋላጭነት (CVE-2026-98432) እንዳለው ገልጿል። Linux, ይህም በልዩ ሁኔታ የተሰሩ ፓኬቶችን በመላክ የርቀት ኮድ አፈፃፀምን ያስችላል። የሚሰራ ብዝበዛ ሪፖርት ተደርጓል፣ ይህም የኮድ አፈፃፀም በከርነል ደረጃ እንዲፈቀድ እና በስርዓቱ ላይ የስር መብቶችን በርቀት እንዲያገኝ ያስችላል። ብዝበዛው ባለብዙ መንገድ TCP (MPTCP) ፕሮቶኮልን የሚደግፉ የአውታረ መረብ ሶኬቶችን በመጠቀም የአገልጋይ ሂደቶችን የሚቀበሉ ስርዓቶችን ለማጥቃት ተስማሚ ነው። የMPTCP ድጋፍ በኔትወርክ ሶኬት መሰረት ሊነቃ ይችላል፣ ይህም በGo 1.24 (የካቲት 2025) ጀምሮ በGo ስታንዳርድ ቤተ-መጽሐፍት ውስጥ ነባሪው ነው።
የተዘጋጀው ብዝበዛ በGo ውስጥ ከተጻፈ ከማንኛውም የአገልጋይ መተግበሪያ ጋር፣ የ Caddy HTTP አገልጋይን ጨምሮ፣ የኔትወርክ ፓኬቶችን ወደፈጠረው የማዳመጫ ሶኬት መላክ እስከቻለ ድረስ ጥቅም ላይ ሊውል ይችላል። ተጋላጭነቱ በቀጥታ በ IPv4 ቁልል ውስጥ የሚገኝ እና ለ MPTCP የተለየ ስላልሆነ፣ በ MPTCP ላይ ሳይተማመኑ የሚሰሩ ብዝበዛዎችን መፍጠር ይቻላል፣ ነገር ግን እንደዚህ ያሉ ብዝበዛዎች እስካሁን አልተረጋገጡም። ለምሳሌ፣ የሶኬት ፍልሰት ጥያቄዎችን ሲያስኬዱ ተጋላጭነቱን መጠቀም ይቻላል፣ ይህም በ net.ipv4.tcp_migrate_req=1 መለኪያ ውቅሮች ውስጥ ወይም የ BPF_SK_REUSEPORT_SELECT_OR_MIGRATE አማራጭ በመጠቀም ይገኛል።
ተጋላጭነቱ የሚከሰተው በTCP ግንኙነት ምስረታ ወቅት እንደገና የተተላለፉ የSYN ጥያቄዎችን በአንድ ጊዜ በማቀነባበር ወቅት በሚከሰት የሩጫ ሁኔታ ነው። የtcp_v4_syn_recv_sock() ተግባር ከireq->ireq_opt መዋቅር መለኪያዎችን ከመቅዳት ይልቅ በማጣቀሻ በኩል ወደ ልጅ ሶኬት ስለሚያስተላልፍ፣ በተወሰኑ ሁኔታዎች የሶኬት መለኪያዎችን የያዙ የinet_opt እና የireq_opt መዋቅሮች ማህደረ ትውስታ ቀድሞውኑ ነፃ የሆነበት ሁኔታ ይፈጠራል፣ ነገር ግን ተያያዥ የሶኬት አማራጮች ጥቅም ላይ መዋል ቀጥለዋል (ከነፃ በኋላ ጥቅም ላይ መዋል)።
የርቀት ብዝበዛ የሚከናወነው ተከታታይ የጊዜ ማመሳሰል የአውታረ መረብ ጥያቄዎችን በመላክ ነው። ብዝበዛው በተሳካ ሁኔታ የአድራሻ ራንደምሴሽን (KASLR) የሚጠቀሙ ከርነሎች ላይ ይሠራል፣ ነገር ግን የሩጫ ሁኔታ መስኮቱን መምታት ከፍተኛ ጊዜ የሚወስድ እና ብዙ ድጋሚ ሙከራዎችን የሚጠይቅ ነው። ብዝበዛው የሩጫ ሁኔታ መስኮቱን ማጣት የከርነል ብልሽት ሳይሆን የእጅ መጨባበጥ ብቻ ስለሚያመጣ ቀላል ነው፣ ይህም ላልተወሰነ ሙከራዎች ያስችላል። በብዝበዛው ፕሮቶታይፕ ውስጥ ጥቃቱ አንድ ሰዓት ያህል ፈጅቷል - የማህደረ ትውስታውን አቀማመጥ ለመወሰን 48 ደቂቃዎች እና የኮድ አፈፃፀምን ለማደራጀት ሌላ 5 ደቂቃዎች።
እስካሁን ድረስ ለተጋላጭነቱ መፍትሄ እንደሚሰጥ የሚያረጋግጡ ምንም አይነት መፍትሄዎች የሉም - የከርነል ዝመና መጫን ብቸኛው አስተማማኝ አማራጭ ነው። ችግሩ እራሱን ከከርነል ጀምሮ ያሳያል። Linux 4.4 እና በ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,
ፌዶራ።
በአጠቃላይ ተጋላጭነትን የማያግዱ የተወሰኑ የብዝበዛ ዘዴዎችን ለመቃወም ከሚመከሩት ምክሮች መካከል የMPTCP ድጋፍን ማሰናከል እና የከርነል sysctl መለኪያ net.ipv4.tcp_migrate_req ወደ 0 ማዋቀር ይገኙበታል፡
sysctl -w net.mptcp.enabled=0
sysctl -w net.ipv4.tcp_migrate_req=0
ሶኬቶችን የሚጠቀሙ ሂደቶች በስርዓቱ ውስጥ መኖራቸውን ለማወቅ
MPTCP፣ ትዕዛዞችን መጠቀም ይችላሉ፦
የip mptcp የመጨረሻ ነጥብ ማሳያ
የip mptcp ገደቦች ይታያሉ
በGo ፕሮግራሞች ውስጥ የMPTCP ድጋፍን ለማሰናከል፣ የ"multipathtcp=0" ፍላግ ይጠቀሙ፣ ይህም የ"GODEBUG=multipathtcp=0" የአካባቢ ተለዋዋጭን በማቀናበር ሊዘጋጅ ይችላል። በግንባታ ጊዜ የMPTCP ድጋፍን ለማሰናከል "godebug multipathtcp=0" ወደ go.mod ፋይል ያክሉ። በመተግበሪያ ኮድዎ ውስጥ፣ net.Dialer.SetMultipathTCP እና net.ListenConfig.SetMultipathTCP ተግባራትን በመጠቀም MPTCPን ማሰናከል ይችላሉ።
ከተብራራው ጉዳይ በተጨማሪ፣ አንትሮፒክ በከርነል ውስጥ በአካባቢው ሊበዘብዙ የሚችሉ ተጋላጭነቶችን አስታውቋል። Linux, OpenBSD እና FreeBSD ወደ ስርዓቱ ስርወ መዳረሻ የሚፈቅዱ እና ከተገለሉ ኮንቴይነሮች የሚወጡ፤ በልዩ ሁኔታ የተነደፉ የድር ገጾችን ሲከፍቱ በስርዓቱ ላይ የኮድ አፈጻጸምን የሚያስከትሉ በChrome እና Safari ውስጥ ያሉ ተጋላጭነቶች፤ በከርነል ውስጥ ያለ ተጋላጭነት Windowsወደ ብልሽት የሚያመራ፤ የመድረክ ተጋላጭነት Android, ይህም መሳሪያውን ሳይከፍቱ የማያ ገጹን መቆለፊያ እንዲያልፉ እና የግል መረጃዎችን እና ፎቶዎችን እንዲደርሱ ያስችልዎታል (ጥቃቱ በGoogle Pixel 9 ስማርት ስልክ ላይ ታይቷል)።
ማከል
- በ nginx ውስጥ፣ ለማዳመጥ አውታረ መረብ ሶኬት የ IPPROTO_MPTCP አማራጭን የማንቃት ችሎታ ከስሪት 1.29.7 ጀምሮ ይገኛል፣ ነገር ግን በነባሪነት ጥቅም ላይ አይውልም።
- በLightpd ውስጥ፣ MPTCPን የማንቃት አማራጭ ከተለቀቀበት 1.4.76 ጀምሮ ይገኛል።
- በApache httpd ውስጥ፣ MPTCPን የሚደግፉ ጥገናዎች በ2024 ወደ Apache httpd 2.5-HEAD ቅርንጫፍ ተጨምረዋል።
- በሲስተምድ ውስጥ፣ በሶኬት ላይ ሲነቃ MPTCPን ለማንቃት የሚያስችል ድጋፍ በስሪት 257 ውስጥ ተጨምሯል።
- በ Apache Traffic Server ውስጥ፣ MPTCPን የማንቃት አማራጭ ከስሪት 9.2.4 ጀምሮ ይደገፋል።
- በ HAProxy ውስጥ፣ ከስሪት 3.1.0 ጀምሮ፣ "mptcp{,4,6}@" የሚለው አማራጭ ይገኛል። ".
- በ Traefik ውስጥ፣ የ IPPROTO_MPTCP ፍላጎቱን ማዋቀር በነባሪነት ነቅቷል ምክንያቱም 2.11.26፣ 3.4.2 እና v3.5.0-rc1 ተለቋል።
- በቫልኪ DBMS ውስጥ፣ ከስሪት 9.0.0 ጀምሮ፣ "--mptcp" የሚለው አማራጭ እና "mptcp yes" እና "repl-mptcp yes" የሚሉት ቅንብሮች ይገኛሉ።
ምንጭ: opennet.ru
