To Linux-kernen er der identificeret to sårbarheder, som grundlæggende er analoge med den for nogle dage siden afslørede Copy Fail-sårbarhed, men som viser sig i forskellige undertagsystemer - xfrm-ESP og RxRPC. Sårbarhederne har fået kodenavnet Dirty Frag (der er også omtale af Copy Fail 2). Sårbarhederne tillader en ikke-privilegeret bruger at opnå root-rettigheder ved at overskrive data for en proces i sidet cache. Der findes et exploit, som fungerer i alle gældende Linux-distributioner. Oplysninger om sårbarheden blev offentliggjort før rettelserne blev udgivet, men der er en workaround for at blokere problemet.
Dirty Frag omfatter to forskellige sårbarheder: den første i xfrm-ESP-modulet, der bruges til at accelerere krypteringsoperationer i IPsec ved brug af ESP-protokollen (Encapsulating Security Payload), og den anden i RxRPC-drivere, der implementerer AF_RXRPC familien af sockets og den tilhørende RPC-protokol, der kører over UDP. Hver af sårbarhederne tillader separat at opnå root-rettigheder. Sårbarheden i xfrm-ESP har været til stede i Linux-kernen siden januar 2017, og sårbarheden i RxRPC siden juni 2023. Begge problemer skyldes optimeringer, som tillader direkte skrivning i sidet cache.
For at udnytte sårbarheden i xfrm-ESP skal brugeren have ret til at oprette navnerum, og for at udnytte sårbarheden i RxRPC skal det være muligt at indlæse kernen modulerne rxrpc.ko. For eksempel i Ubuntu er det i AppArmor-reglerne forbudt for ikke-privilegerede brugere at oprette navnerum, men modulerne rxrpc.ko indlæses som standard. I nogle distributioner findes rxrpc.ko-modulet ikke, men oprettelse af navnerum blokeres ikke. Den forsker, der har identificeret problemet, har udarbejdet et kombineret exploit, der kan angreb systemet gennem begge sårbarheder, hvilket gør det muligt at udnytte problemet i alle større distributioner. Exploitens funktion er bekræftet i Ubuntu 24.04.4 med kerne 6.17.0-23, RHEL 10.1 med kerne 6.12.0-124.49.1, openSUSE Tumbleweed med kerne 7.0.2-1, CentOS Stream 10 med kerne 6.12.0-224, AlmaLinux 10 med kerne 6.12.0-124.52.3 og Fedora 44 med kerne 6.19.14-300.
Som ved sårbarheden Copy Fail er problemerne i xfrm-ESP og RxRPC forårsaget af udførelsen af dataafkodning på stedet med brug af funktionen splice(), der overfører data mellem filbeskrivelser og kanaler (pipe) uden at kopiere, ved at overføre referencer til elementer i sidecache. Forskyvningerne for skriveoperationen blev beregnet uden de nødvendige kontroller, der tager højde for brugen af direkte referencer til elementer i sidecachen, hvilket gjorde det muligt at overskrive 4 bytes ved den valgte forskydning gennem afsendelse af speciellt udformede anmodninger og ændre indholdet af en hvilken som helst fil i sidecache.
Alle læseoperationer fra filer returnerer først indholdet fra sidecachen. I tilfælde af ændring af data i sidecachen vil læseoperationerne fra filen føre til, at der returneres ikke reelt lagret information på lagerenheden, men ændrede data. Udnyttelsen af sårbarheden handler om at ændre sidecachen for den eksekverbare fil med suid root-flaget. For eksempel, for at få root-rettigheder kan man læse den eksekverbare fil /usr/bin/su for at placere den i sidecachen, hvorefter man kan få sit eget kode til at blive substitueret i det indhold, der er indlæst i sidecachen fra denne fil. Den efterfølgende kørsel af værktøjet "su" vil føre til, at ikke den originale eksekverbare fil fra lagerenheden indlæses i hukommelsen, men en ændret kopi fra sidecachen.
Offentliggørelsen af information om sårbarhederne og den koordinerede frigivelse af opdateringer, der løser problemerne, var planlagt til den 12. maj, men på grund af informationslækage måtte oplysningerne om sårbarheden offentliggøres før frigivelsen af rettelserne. I slutningen af april blev der offentliggjort patches til rxrpc, ipsec og xfrm på den offentlige mailingliste netdev, uden at der blev nævnt, at de relaterede til afhjælpning af sårbarheden. Den 5. maj accepterede maintaineren af IPsec-subsystemet en ændring med den foreslåede løsning i xfrm-esp-modulet i git-repositoriet netdev, beskrivelsen af hvilken i høj grad gentog beskrivelsen af problemet, der førte til sårbarheden Copy Fail i algif_aead-modulet. En af sikkerhedsresearcherne blev interesseret i denne rettelse, formåede at skabe et funktionelt exploit og offentliggjorde det uden at vide, at der var indført et embargo mod offentliggørelse af oplysninger om problemet før den 12. maj.
Opdateringer med fejlrettelser til Linux-kernen og pakker med kernen i distributioner er endnu ikke offentliggjort, men der er tilgængelige patches, der løser problemerne — xfrm-esp og rxrpc. CVE-identifikatorer er ikke tildelt, hvilket komplicerer sporing af opdateringen af pakker i distributionerne. Som en midlertidig beskyttelsesmetode kan du blokere indlæsning af kernelmodulerne esp4, esp6 og 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"
Kilde: opennet.ru
