Аливаа тархалт дээр root хандалт авахын тулд хуудасны кэшийг өөрчилдөг Dirty Frag эмзэг байдал Linux

Гол цөмд Linux Хэдхэн хоногийн өмнө илэрсэн Copy Fail эмзэг байдалтай төстэй шинж чанартай хоёр эмзэг байдал илэрсэн боловч xfrm-ESP болон RxRPC гэсэн өөр өөр дэд системүүдэд нөлөөлдөг. Эмзэг байдлын цувралыг Dirty Frag (мөн Copy Fail 2 гэж нэрлэдэг) гэсэн кодчилолтой болгосон. Эдгээр эмзэг байдал нь эрхгүй хэрэглэгч хуудасны кэш дэх процессын өгөгдлийг дарж бичих замаар root эрх авах боломжийг олгодог. Одоогийн бүх тархалт дээр ажилладаг эксплойт боломжтой. LinuxНөхөөсүүд гарахаас өмнө эмзэг байдлыг илрүүлсэн боловч асуудлыг хаах арга зам бий.

Dirty Frag нь хоёр өөр эмзэг байдлыг хамардаг: эхнийх нь xfrm-ESP модуль дахь бөгөөд ESP (Encapsulating Security Payload) протоколыг ашиглан IPsec шифрлэлтийн үйлдлүүдийг хурдасгахад ашиглагддаг, хоёр дахь нь AF_RXRPC сокет гэр бүл болон UDP дээр ажилладаг ижил нэртэй RPC протоколыг хэрэгжүүлдэг RxRPC драйвер дахь эмзэг байдал. Эмзэг байдал бүрийг тусад нь авч үзвэл root эрхийг олгодог. xfrm-ESP дахь эмзэг байдал нь цөмд илэрдэг. Linux 2017 оны 1-р сараас хойш, мөн 2023 оны 6-р сараас хойш RxRPC-д үүссэн эмзэг байдал. Хоёр асуудал хоёулаа хуудасны кэш рүү шууд бичих боломжийг олгодог оновчлолоос үүдэлтэй.

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 6.12.0-224 цөмтэй 10-р урсгалыг дамжуулна уу, AlmaLinux 10 нь 6.12.0-124.52.3 цөмтэй, Fedora 44 нь 6.19.14-300 цөмтэй.

Copy Fail эмзэг байдлын нэгэн адил xfrm-ESP болон RxRPC дахь асуудлууд нь splice() функцийг ашиглан байранд нь өгөгдлийг тайлснаас үүдэлтэй бөгөөд энэ нь хуудасны кэш дэх элементүүд рүү лавлагаа дамжуулах замаар файлын тодорхойлогч болон хоолойн хооронд өгөгдлийг хуулбарлахгүйгээр дамжуулдаг. Хуудасны кэш дэх элементүүд рүү шууд лавлагаа ашиглахыг харгалзан бичих офсетийг зохих шалгалтгүйгээр тооцоолсон бөгөөд энэ нь тусгайлан боловсруулсан хүсэлтүүдэд өгөгдсөн офсет дээр 4 байтыг дарж бичих, хуудасны кэш дэх аливаа файлын агуулгыг өөрчлөх боломжийг олгодог.

Бүх файл унших үйлдлүүд нь хуудасны кэшээс эхлээд агуулгыг авдаг. Хэрэв хуудасны кэш дэх өгөгдлийг өөрчилсөн бол файл унших үйлдлүүд нь диск дээр хадгалагдсан бодит мэдээллийг биш харин орлуулсан өгөгдлийг буцаана. Эмзэг байдлыг ашиглах нь suid root тугтай гүйцэтгэгдэж болох файлын хуудасны кэшийг өөрчлөхөд чиглэгддэг. Жишээлбэл, root эрхийг авахын тулд /usr/bin/su гүйцэтгэгдэж болох файлыг хуудасны кэшэд байрлуулж, дараа нь өөрийн кодыг хуудасны кэшэд ачаалагдсан энэ файлын агуулгад орлуулж болно. Дараа нь "su" хэрэгслийг ажиллуулахад хуудасны кэшээс өөрчлөгдсөн хуулбар нь дискнээс анхны гүйцэтгэгдэж болох файлыг биш харин санах ойд ачаалагдах болно.

Эмзэг байдлын талаарх мэдээлэл болон нөхөөсийг зохицуулалттайгаар гаргах ажлыг 5-р сарын 12-нд хийхээр төлөвлөсөн байсан ч мэдээлэл алдагдсаны улмаас нөхөөсийг гаргахаас өмнө эмзэг байдлын мэдээллийг нийтлэх шаардлагатай болсон. Дөрөвдүгээр сарын сүүлээр rxrpc, ipsec, xfrm-ийн нөхөөсийг эмзэг байдалтай холбоотой гэж дурдалгүйгээр netdev-ийн олон нийтийн имэйл жагсаалтад байршуулсан. 5-р сарын 5-нд IPsec дэд системийн засварлагч нь xfrm-esp модульд санал болгосон засвартай netdev Git репозиторт өөрчлөлт оруулахыг хүлээн зөвшөөрсөн. Өөрчлөлтийн тайлбар нь algif_aead модульд Copy Fail эмзэг байдалд хүргэсэн асуудлын тайлбартай бараг ижил байв. Аюулгүй байдлын судлаач энэ засварт сонирхолтой болж, ажиллаж буй exploit үүсгэж, 5-р сарын 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

DDoS хамгаалалт, VPS VDS сервер бүхий сайтуудад найдвартай хостинг худалдаж аваарай 🔥 DDoS хамгаалалттай, VPS VDS сервертэй найдвартай вэбсайт хостинг худалдаж аваарай | ProHoster