Athari katika XFS ambayo inaruhusu data ghafi ya kifaa cha kuzuia kusomwa

Athari ya kuathiriwa (CVE-2021-4155) imetambuliwa katika msimbo wa mfumo wa faili wa XFS ambao huruhusu mtumiaji wa ndani asiye na usalama kusoma data ya kuzuia ambayo haijatumiwa moja kwa moja kutoka kwa kifaa cha kuzuia. Matoleo yote makuu ya Linux kernel ya zamani zaidi ya 5.16 ambayo yana kiendeshi cha XFS yameathiriwa na suala hili. Marekebisho yalijumuishwa katika toleo la 5.16, na pia katika sasisho za kernel 5.15.14, 5.10.91, 5.4.171, 4.19.225, nk. Hali ya masasisho yanayotolewa ili kurekebisha tatizo katika usambazaji inaweza kufuatiliwa kwenye kurasa hizi: Debian, RHEL, SUSE, Fedora, Ubuntu, Arch.

Athari hii inasababishwa na tabia isiyo sahihi ya ioctl mbili maalum za XFS(XFS_IOC_ALLOCSP) na ioctl(XFS_IOC_FREESP), ambazo ni analogi inayofanya kazi ya simu ya mfumo wa kernel-wide fallocate(). Wakati wa kuongeza saizi ya faili ambayo haijapangiliwa kwa kizuizi, ioctls XFS_IOC_ALLOCSP/XFS_IOC_FREESP haiweki upya baiti za mkia hadi sufuri hadi mpaka wa kizuizi unaofuata. Kwa hiyo, kwenye XFS yenye ukubwa wa kawaida wa block ya 4096 bytes, mshambuliaji anaweza kusoma hadi 4095 bytes ya data ya awali iliyoandikwa kutoka kwa kila block. Maeneo haya yanaweza kuwa na data kutoka kwa faili zilizofutwa, faili zilizotenganishwa na faili zilizo na vizuizi vilivyotenganishwa.

Unaweza kujaribu mfumo wako kwa tatizo kwa kutumia mfano rahisi wa unyonyaji. Ikiwa, baada ya kutekeleza mlolongo uliopendekezwa wa amri, inawezekana kusoma maandishi ya Shakespeare, basi dereva wa FS ni hatari. Hapo awali kuweka kizigeu cha XFS kwa onyesho kunahitaji upendeleo wa mizizi.

Kwa kuwa ioctl(XFS_IOC_ALLOCSP) na ioctl(XFS_IOC_FREESP) ni sawa katika utendakazi kama fallocate ya kawaida(), na tofauti yao pekee ni uvujaji wa data, uwepo wao ni sawa na mlango wa nyuma. Licha ya sera ya jumla ya kutobadilisha miingiliano iliyopo kwenye kernel, kwa pendekezo la Linus, iliamuliwa kuondoa kabisa ioctls hizi katika toleo linalofuata.

Chanzo: opennet.ru

Kuongeza maoni