Udhaifu wa kiini Linux, ambayo hukuruhusu kuharibu faili za kusoma pekee

Katika kiini Linux Udhaifu (CVE-2022-0847) umetambuliwa unaoruhusu maudhui ya kashe ya ukurasa kuandikwa upya kwa faili yoyote, ikiwa ni pamoja na yale yaliyo katika hali ya kusoma pekee, yaliyofunguliwa kwa bendera ya O_RDONLY, au yaliyo kwenye mifumo ya faili iliyowekwa katika hali ya kusoma pekee. Kwa maneno halisi, udhaifu huu unaweza kutumiwa kuingiza msimbo katika michakato isiyo ya kawaida au kuharibu data katika faili zilizofunguliwa. Kwa mfano, maudhui ya faili ya funguo zilizoidhinishwa kwa mchakato wa sshd yanaweza kubadilishwa. Mfano wa matumizi unapatikana kwa ajili ya majaribio.

Suala hili limepewa jina la Kificho Bomba chafu, rejeleo la hatari kubwa ya COW Mchafu, iliyogunduliwa mwaka wa 2016. Bomba Mchafu inatambulika kuwa sawa na NG'OMBE Mchafu katika suala la ukali, lakini ni rahisi zaidi kutumia. Athari hiyo iligunduliwa wakati wa kuchunguza malalamiko ya ufisadi wa mara kwa mara wa faili zilizopakuliwa kwenye mtandao kwenye mfumo wa kupakua kumbukumbu zilizobanwa kutoka kwa seva ya kumbukumbu (ufisadi 37 kwa muda wa miezi mitatu kwenye mfumo wenye shughuli nyingi), ambazo zilitayarishwa kwa kutumia utendakazi wa splice() na mabomba ambayo hayajatajwa majina.

Udhaifu hujitokeza kuanzia kwenye kiini Linux 5.8, iliyotolewa mnamo Agosti 2020, yaani, ipo katika Debian 11, lakini haiathiri kiini cha msingi katika Ubuntu 20.04 LTS. Kernel za RHEL 8.x na openSUSE/SUSE 15 mwanzoni zinategemea matawi ya zamani, lakini inawezekana kwamba tatizo lilihamishwa hapo (hakuna maelezo kamili bado). Unaweza kufuatilia kutolewa kwa masasisho ya kifurushi kwa usambazaji huu kwenye kurasa hizi: Debian, SUSE, Ubuntu, RHEL, Fedora, Gentoo, Arch LinuxMarekebisho ya udhaifu yanatolewa katika matoleo 5.16.11, 5.15.25, na 5.10.102. Marekebisho hayo pia yamejumuishwa kwenye kiini kinachotumika kwenye mfumo. Android.

Athari hii inasababishwa na ukosefu wa uanzishaji wa thamani ya "buf->bendera" katika nakala_page_to_iter_pipe() na push_pipe() chaguo za kukokotoa. Kumbukumbu haisafishwi wakati wa kugawa muundo, na upotoshaji fulani kwa mirija isiyo na jina inaweza kusababisha "buf->bendera" kuwa na thamani kutoka kwa operesheni nyingine. Kwa kutumia hitilafu hii, mtumiaji wa ndani asiye na haki anaweza kusababisha bendera kuwekwa kwa thamani ya PIPE_BUF_FLAG_CAN_MERGE, ambayo inaruhusu kubatilisha data katika akiba ya ukurasa kwa kuandika data mpya kwa bomba lililotayarishwa maalum lisilo na jina.

Ili kufanya shambulio, faili inayolengwa lazima isomeke. Kwa kuwa haki za ufikiaji hazijaangaliwa wakati wa kuandika kwa bomba, ubadilishanaji wa kashe ya ukurasa unaweza kufanywa hata kwenye faili zilizo kwenye sehemu za kusoma tu (kwa mfano, faili kutoka kwa CD-ROM). Baada ya kubadilisha habari kwenye cache ya ukurasa, wakati wa kusoma data kutoka kwa faili, mchakato utapokea data iliyobadilishwa, sio halisi.

Unyonyaji hujumuisha kuunda bomba lisilo na jina na kulijaza data kiholela ili kuweka alama ya PIPE_BUF_FLAG_CAN_MERGE katika miundo yote ya pete inayohusishwa. Data kisha inasomwa kutoka kwa bomba, lakini bendera inasalia kuwekwa katika hali zote za muundo wa bomba_buffer katika miundo ya pete ya pipe_inode_info. Halafu, simu ya splice() inafanywa kusoma data kutoka kwa faili inayolengwa hadi kwenye bomba lisilo na jina, kuanzia kwa kukabiliana na taka. Wakati wa kuandika data kwa bomba hili lisilo na jina, alama ya PIPE_BUF_FLAG_CAN_MERGE huweka data ya akiba ya ukurasa ili kuibatilisha, badala ya kuunda mfano mpya wa muundo wa pipe_buffer.

Chanzo: opennet.ru

Nunua upangishaji wa kuaminika wa tovuti zilizo na ulinzi wa DDoS, seva za VPS VDS 🔥 Nunua upangishaji wa tovuti unaoaminika kwa ulinzi wa DDoS, seva za VPS VDS | ProHoster