Dy dobësi janë zbuluar në kernelin e Linux-it. Këto dobësi janë të ngjashme në natyrë me dobësinë e Copy Fail të zbuluar disa ditë më parë, por ato ndikojnë në nënsisteme të ndryshme - xfrm-ESP dhe RxRPC. Kjo seri dobësish është emëruar me emrin e koduar Dirty Frag (e referuar edhe si Copy Fail 2). Këto dobësi lejojnë një përdorues pa privilegje të fitojë privilegje rrënjë duke mbishkruar të dhënat e procesit në memorien e faqes. Një shfrytëzim është i disponueshëm që funksionon në të gjitha shpërndarjet aktuale të Linux-it. Dobësia u zbulua përpara se të publikoheshin patch-et, por një zgjidhje alternative është e disponueshme.
Dirty Frag mbulon dy dobësi të ndryshme: e para në modulin xfrm-ESP, i përdorur për të përshpejtuar operacionet e enkriptimit IPsec duke përdorur protokollin ESP (Encapsulating Security Payload), dhe e dyta në drajverin RxRPC, i cili zbaton familjen e soketave AF_RXRPC dhe protokollin RPC me të njëjtin emër, që funksionon mbi UDP. Çdo dobësi, e marrë veçmas, lejon privilegje root. Dobësia xfrm-ESP ka qenë e pranishme në kernelin Linux që nga janari 2017, dhe dobësia RxRPC ka qenë e pranishme që nga qershori 2023. Të dy problemet shkaktohen nga optimizimet që lejojnë shkrime direkte në memorien e faqes.
Për të shfrytëzuar dobësinë xfrm-ESP, përdoruesi duhet të ketë leje për të krijuar hapësira emrash, dhe për të shfrytëzuar dobësinë RxRPC, moduli i kernelit rxrpc.ko duhet të ngarkohet. Për shembull, në Ubuntu, rregullat e AppArmor parandalojnë përdoruesit pa privilegje të krijojnë hapësira emrash, por moduli rxrpc.ko ngarkohet si parazgjedhje. Disa shpërndarjeve u mungon moduli rxrpc.ko, por nuk bllokojnë krijimin e hapësirës së emrave. Studiuesi që zbuloi problemin zhvilloi një shfrytëzim të kombinuar të aftë për të sulmuar sistemin përmes të dy dobësive, duke e bërë të mundur shfrytëzimin e problemit në të gjitha shpërndarjet kryesore. Shfrytëzimi është konfirmuar se funksionon në Ubuntu 24.04.4 me kernel 6.17.0-23, RHEL 10.1 me kernel 6.12.0-124.49.1, openSUSE Tumbleweed me kernel 7.0.2-1, CentOS Stream 10 me kernel 6.12.0-224, AlmaLinux 10 me kernel 6.12.0-124.52.3 dhe Fedora 44 me kernel 6.19.14-300.
Ashtu si me dobësinë e Dështimit të Kopjimit, problemet në xfrm-ESP dhe RxRPC shkaktohen nga deshifrimi i të dhënave në vend duke përdorur funksionin splice(), i cili transferon të dhëna midis përshkruesve të skedarëve dhe tubave pa kopjuar, duke kaluar referenca te elementët në memorien e faqes. Zhvendosjet e shkrimit u llogaritën pa kontrolle të duhura për të marrë parasysh përdorimin e referencave të drejtpërdrejta te elementët në memorien e faqes, duke lejuar që kërkesat e hartuara posaçërisht të mbishkruajnë 4 bajt në një zhvendosje të caktuar dhe të modifikojnë përmbajtjen e çdo skedari në memorien e faqes.
Të gjitha operacionet e leximit të skedarëve marrin përmbajtjen nga memoria e faqes së pari. Nëse të dhënat në memorjen e faqes modifikohen, operacionet e leximit të skedarëve do të kthejnë të dhëna të zëvendësuara, jo informacionin aktual të ruajtur në disk. Shfrytëzimi i dobësisë reduktohet në modifikimin e memorjes së faqes për një skedar ekzekutues me flamurin rrënjë suid. Për shembull, për të fituar privilegje rrënjë, dikush mund të lexojë skedarin ekzekutues /usr/bin/su për ta vendosur atë në memorjen e faqes dhe pastaj të zëvendësojë kodin e vet në përmbajtjen e këtij skedari të ngarkuar në memorjen e faqes. Ekzekutimi pasues i programit "su" do të rezultojë në ngarkimin në kujtesë të kopjes së modifikuar nga memoria e faqes, jo të skedarit origjinal ekzekutues nga disku.
Zbulimi i cenueshmërisë dhe publikimi i koordinuar i patch-eve ishte planifikuar për 12 maj, por për shkak të një rrjedhjeje informacioni, informacioni mbi cenueshmërinë duhej të publikohej përpara se të publikoheshin patch-et. Në fund të prillit, patch-et për rxrpc, ipsec dhe xfrm u postuan në listën publike të postimeve të netdev pa përmendur se ato lidheshin me cenueshmërinë. Më 5 maj, mirëmbajtësi i nënsistemit IPsec pranoi një ndryshim në deponë Git të netdev me një rregullim të propozuar në modulin xfrm-esp. Përshkrimi i ndryshimit ishte kryesisht identik me përshkrimin e problemit që çoi në cenueshmërinë e Dështimit të Kopjimit në modulin algif_aead. Një studiues sigurie u interesua për këtë rregullim, arriti të krijonte një shfrytëzim funksional dhe e publikoi atë, pa e ditur se ishte vendosur një embargo për zbulimin e informacionit në lidhje me problemin deri më 12 maj.
Përditësimet me rregullime për kernelin Linux dhe paketat e kernelit në shpërndarje nuk janë publikuar ende, por janë të disponueshme patch-e që adresojnë problemet - xfrm-esp dhe rxrpc. Identifikuesit CVE nuk janë caktuar, gjë që e ndërlikon gjurmimin e përditësimeve të paketave në shpërndarje. Si një zgjidhje alternative, mund të bllokoni ngarkimin e moduleve të kernelit esp4, esp6 dhe 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"
Burimi: opennet.ru
