Осебпазириҳои Dirty Frag, ки кэши саҳифаро барои ба даст овардани дастрасии реша дар ҳама дистрибюсияҳои Linux тағйир медиҳанд

Дар ядрои Linux ду осебпазирӣ ошкор карда шуданд. Ин осебпазириҳо аз рӯи хусусият ба осебпазирии Copy Fail, ки чанд рӯз пеш ошкор шуда буд, монанданд, аммо онҳо ба зерсистемаҳои гуногун - xfrm-ESP ва RxRPC - таъсир мерасонанд. Ин силсила осебпазириҳо бо номи рамзии Dirty Frag (инчунин бо номи Copy Fail 2 номида мешавад) номгузорӣ шудаанд. Ин осебпазириҳо ба корбари беимтиёз имкон медиҳанд, ки бо навиштани маълумоти раванд дар кэши саҳифа имтиёзҳои root ба даст орад. Эксплойт дастрас аст, ки дар ҳама дистрибутсияҳои ҷории Linux кор мекунад. Осебпазирӣ пеш аз нашри патчҳо ошкор шуда буд, аммо роҳи ҳалли он дастрас аст.

Dirty Frag ду осебпазирии гуногунро фаро мегирад: аввал дар модули xfrm-ESP, ки барои суръат бахшидан ба амалиётҳои рамзгузории IPsec бо истифода аз протоколи ESP (Encapsulating Security Payload) истифода мешавад, ва дуюм дар драйвери RxRPC, ки оилаи сокетҳои AF_RXRPC ва протоколи RPC-и ҳамон номро амалӣ мекунад, ки тавассути UDP кор мекунад. Ҳар як осебпазирӣ, ки алоҳида гирифта мешавад, ба имтиёзҳои root имкон медиҳад. Осебпазирии xfrm-ESP аз моҳи январи соли 2017 дар ядрои Linux ва осебпазирии RxRPC аз моҳи июни соли 2023 мавҷуд аст. Ҳарду мушкилот аз сабаби оптимизатсияҳое ба вуҷуд меоянд, ки имкон медиҳанд, ки сабтҳои мустақим ба кэши саҳифа анҷом дода шаванд.

Барои истифодаи осебпазирии xfrm-ESP, корбар бояд иҷозати эҷоди фазоҳои номӣ дошта бошад ва барои истифодаи осебпазирии RxRPC, модули ядрои rxrpc.ko бояд бор карда шавад. Масалан, дар Ubuntu, қоидаҳои AppArmor аз корбарони беимтиёз аз эҷоди фазоҳои номӣ пешгирӣ мекунанд, аммо модули rxrpc.ko бо нобаёнӣ бор карда мешавад. Баъзе дистрибюторҳо модули rxrpc.ko надоранд, аммо эҷоди фазоҳои номӣ-ро манъ намекунанд. Муҳаққиқе, ки ин мушкилотро кашф кардааст, як эксплойти муштаракро таҳия кардааст, ки қодир аст ба система тавассути ҳарду осебпазирӣ ҳамла кунад ва имкон медиҳад, ки ин мушкилот дар ҳамаи дистрибюторҳои асосӣ истифода шавад. Тасдиқ шудааст, ки ин эксплойт дар Ubuntu 24.04.4 бо ядрои 6.17.0-23, RHEL 10.1 бо ядрои 6.12.0-124.49.1, openSUSE Tumbleweed бо ядрои 7.0.2-1, CentOS Stream 10 бо ядрои 6.12.0-224, AlmaLinux 10 бо ядрои 6.12.0-124.52.3 ва Fedora 44 бо ядрои 6.19.14-300 кор мекунад.

Мисли осебпазирии Copy Fail, мушкилот дар xfrm-ESP ва RxRPC аз рамзкушоии маълумот дар ҷои худ бо истифода аз функсияи splice(), ки маълумотро байни тавсифкунандагони файл ва қубурҳо бидуни нусхабардорӣ тавассути интиқоли истинодҳо ба унсурҳо дар кэши саҳифа интиқол медиҳад, ба вуҷуд меоянд. Ҷойивазкунии навиштан бидуни санҷишҳои дуруст барои ба назар гирифтани истифодаи истинодҳои мустақим ба унсурҳо дар кэши саҳифа ҳисоб карда шуд, ки ба дархостҳои махсус таҳияшуда имкон медиҳад, ки 4 байтро дар як офсетии додашуда аз нав нависанд ва мундариҷаи ҳама гуна файлро дар кэши саҳифа тағйир диҳанд.

Ҳамаи амалиётҳои хондани файл аввал мундариҷаро аз кэши саҳифа мегиранд. Агар маълумот дар кэши саҳифа тағир дода шавад, амалиётҳои хондани файл маълумоти ивазшударо бармегардонанд, на маълумоти воқеии дар диск нигоҳдошташударо. Истифодаи ин осебпазирӣ ба тағир додани кэши саҳифа барои файли иҷрошаванда бо парчами решаи suid вобаста аст. Масалан, барои ба даст овардани имтиёзҳои root, метавон файли иҷрошавандаи /usr/bin/su-ро барои ҷойгир кардан дар кэши саҳифа хонда, сипас рамзи худро ба мундариҷаи ин файл, ки ба кэши саҳифа бор карда шудааст, иваз кард. Иҷрои минбаъдаи утилитаи "su" боиси он мегардад, ки нусхаи тағирёфта аз кэши саҳифа ба хотира бор карда шавад, на файли иҷрошавандаи аслӣ аз диск.

Ифшои осебпазирӣ ва нашри ҳамоҳангшудаи часбҳо барои 12 май ба нақша гирифта шуда буд, аммо аз сабаби ихроҷ, маълумоти осебпазирӣ бояд пеш аз нашри часбҳо нашр мешуд. Дар охири моҳи апрел, часбҳо барои rxrpc, ipsec ва xfrm ба рӯйхати почтаи электронии оммавии netdev бидуни зикри он, ки онҳо бо осебпазирӣ алоқаманданд, фиристода шуданд. 5 май, нигоҳдорандаи зерсистемаи IPsec тағйиротро дар анбори netdev Git бо ислоҳи пешниҳодшуда дар модули xfrm-esp қабул кард. Тавсифи тағйирот асосан бо тавсифи масъалае, ки боиси осебпазирии Copy Fail дар модули algif_aead гардид, якхела буд. Як муҳаққиқи амниятӣ ба ин ислоҳ таваҷҷӯҳ пайдо кард, тавонист як эксплойти корӣ эҷод кунад ва онро нашр кард, бехабар аз он ки то 12 май барои ифшои маълумот дар бораи ин масъала эмбарго ҷорӣ карда шудааст.

Навсозиҳо бо ислоҳи ядрои Linux ва бастаҳои ядро ​​дар дистрибутивҳо ҳанӯз нашр нашудаанд, аммо часбҳое, ки ин мушкилотро ҳал мекунанд, дастрасанд - xfrm-esp ва rxrpc. Идентификаторҳои CVE таъин нашудаанд, ки пайгирии навсозиҳои бастаҳоро дар дистрибутивҳо мушкил мекунад. Ҳамчун роҳи ҳал, шумо метавонед боркунии модулҳои ядрои esp4, esp6 ва rxrpc-ро масдуд кунед: sh -c "printf 'install esp4 /bin/false\ninstall esp6 /bin/false\ninstall rxrpc /bin/false\n' > /etc/modprobe.d/dirtyfrag.conf; rmmod esp4 esp6 rxrpc 2>/dev/null; true"

Манбаъ: opennet.ru