A ti ṣe àgbékalẹ̀ ìlòkulò fún àìlera keje (1, 2-3, 4, 5, 6) nínú ekuro náà ní gbangba. Linux, èyí tí ó fún olùlò agbègbè tí kò ní àǹfààní láti ní àwọn àǹfààní root nípa kíkọ dátà sínú àpò ojú ìwé náà. A kò tí ì yan ìdámọ̀ CVE kan, yàtọ̀ sí kódì ìlò, kò sí ìwífún nípa ìṣòro náà lọ́wọ́lọ́wọ́. Àtúnṣe kan wà gẹ́gẹ́ bí àtúnṣe kan, èyí tí a tẹ̀ jáde ní ọjọ́ ogún oṣù karùn-ún tí a sì gbà sínú kọ́rẹ́lì mainline ní ọjọ́ kọkànlélógún oṣù karùn-ún. Linux (àwọn ìtújáde ìtọ́jú kernel kò tíì sí).
Àìlera kan wà nínú ìlò ìmọ̀ ẹ̀rọ Generic Receive Offload (GRO), èyí tí a ń lò láti mú kí iṣẹ́ àwọn packet tí a pín sí méjì yára. Àṣìṣe náà wáyé nítorí àṣìṣe nínú ẹ̀rọ ìdánimọ̀ òdo nínú iṣẹ́ skb_gro_receive(), èyí tí ó ń yí dátà padà ní tààrà nínú àpò ìwé láti yẹra fún ìfipamọ́ tí kò pọndandan. Nígbà tí a ṣètò àsíá SKBFL_MANAGED_FRAG_REFS, a fo ìtọ́kasí sí àwọn ojú ìwé ìrántí tí a ti tú sílẹ̀ nínú pápá shinfo->frags. Lẹ́yìn náà, a fi pápá yìí kún skb mìíràn láìyí kàǹtán ìtọ́kasí padà, èyí tí ó yọrí sí wíwọlé sí lílo-lẹ́yìn-láìsí (lílo-lẹ́yìn-láìsí). A lo àṣìṣe yìí láti tún dátà kọ sínú àpò ìwé nípa ṣíṣàtúnṣe àmì ìtọ́kasí io_uring.
Ìkọlù náà ṣeé ṣe lórí àwọn ètò tí a ti ṣiṣẹ́ fún io_uring subsystem (io_uring_disabled=0). Kí ìlòkulò náà lè ṣiṣẹ́, ètò náà gbọ́dọ̀ ní fáìlì tí a lè kà pẹ̀lú àsíá SUID-root. Ọ̀nà ìlòkulò náà ni kí olùkọlù gba ibi ìpamọ́ oníbàárà nínú ibi ìpamọ́ ojú ìwé, lẹ́yìn náà kí ó fi okùn "hax::0:0::/root:/bin/sh" sínú ibi ìpamọ́. Lẹ́yìn náà, àṣẹ "su hax" ni a ó ṣiṣẹ́, èyí tí kìí ṣe ibi ìpamọ́ oníbàárà àkọ́kọ́ láti inú ìwakọ̀ náà, ṣùgbọ́n àdàkọ tí a ṣe àtúnṣe pẹ̀lú àwọn àǹfààní root tí a yàn fún "hax" àti ọ̀rọ̀ìpamọ́ òfo. A ti dán ìlòkulò náà wò ní Ubuntu 24.04.
orisun: opennet.ru
