DirtyDecrypt — een nieuwe kwetsbaarheid van het type Copy Fail die rootrechten in Linux biedt.

In de Linux-kernel is een kwetsbaarheid ontdekt, vergelijkbaar met de kwetsbaarheden Copy Fail, Dirty Frag en Fragnesia, die het een niet-bevoorrechte gebruiker mogelijk maakt om root-rechten te verkrijgen door gegevens in de pagina-cache te overschrijven. De kwetsbaarheid heeft de codenaam DirtyDecrypt gekregen (de kwestie wordt ook wel onder de naam DirtyCBC genoemd). Een exploit-prototype is beschikbaar.

De CVE-identificator wordt in de opmerking bij de exploit niet genoemd; er is alleen vermeld dat onderzoekers het probleem op 9 mei hebben ontdekt en dit hebben gemeld aan de ontwikkelaars van de kernel, die aangaven dat hun bevinding een duplicaat was van een ander rapport over een reeds verholpen kwetsbaarheid. Aangezien de patch met de oplossing al in de kernel is opgenomen, besloten de onderzoekers om hun ontwikkelde exploit te publiceren. Afgaande op de beschrijving binnen de exploit, wordt hierin gebruikgemaakt van de kwetsbaarheid CVE-2026-31635, waarvan de oplossing in april in de kernel is aangenomen en deel uitmaakt van de versie 7.0.0 die op 18 april 2023 is uitgebracht. Het probleem doet zich voor vanaf kernelversie 6.16.

Net als in het geval van de serie kwetsbaarheden Dirty Frag, is de nieuwe kwetsbaarheid aanwezig in de RxRPC-driver, die de AF_RXRPC-socketfamilie implementeert en het gelijknamige RPC-protocol dat draait boven UDP. Het probleem is veroorzaakt door een fout in de controle van de gegevensgrootte in de functie rxgk_verify_response() — in plaats van te controleren met «if (auth_len > len)» stond in de code «if (auth_len < len)», wat resulteerde in het doorgeven van gegevens met een grootte die groter was dan toegestaan aan de functie rxgk_decrypt_skb(). Tijdens de uitvoering van de functie rxgk_decrypt_skb() werd de decryptie van gegevens uitgevoerd met directe aanpassingen in de pagina-cache om onnodige buffering te vermijden. Door de foute controle van de grootte ontstond de mogelijkheid om gegevens in de pagina-cache op de gekozen offset te overschrijven.

De exploitatie van de kwetsbaarheid komt neer op het lezen van een programma bestand met de suid root-vlag (om het in de pagina-cache te laten landen) en het vervangen van een deel van de programma code in de pagina-cache door code om /usr/bin/sh uit te voeren. De daaropvolgende uitvoering van het programma zal ertoe leiden dat niet het originele uitvoerbare bestand van de schijf in het geheugen wordt geladen, maar een gewijzigde kopie uit de pagina-cache. Voor suid-programma's zijn in de exploit de mogelijkheden opgenomen om «/usr/bin/su», «/bin/su», «/usr/bin/mount», «/usr/bin/passwd» en «/usr/bin/chsh» te gebruiken.

Voor de exploitatie van de kwetsbaarheid moet de optie CONFIG_RXGK zijn ingeschakeld tijdens het samenstellen van de kernel, en de kernelmodule rxrpc.ko moet beschikbaar zijn voor autoloading (in sommige systemen wordt deze niet opgebouwd). De status van de kwetsbaarheden in distributies kan worden beoordeeld op de volgende pagina's: Debian, Ubuntu, SUSE/openSUSE, RHEL, Arch, Fedora. Als tijdelijke beveiliging kan de laadmodule rxrpc worden geblokkeerd:

sh -c "printf 'install rxrpc /bin/false\n' > /etc/modprobe.d/dirtydecrypt.conf; rmmod rxrpc 2>/dev/null; true"

Daarnaast kan worden opgemerkt dat in de mailinglijst van de Linux-kernelontwikkelaars patches zijn gepubliceerd die de optimalisaties in de crypto API (AF_ALG) volledig uitschakelen, waarbij direct naar de paginacache wordt verwezen tijdens het decoderen met de algoritmen 'skcipher' en 'aead'. Deze optimalisaties sluiten overbodige gegevensbuffering uit, maar brengen het risico met zich mee van ernstige kwetsbaarheden. Er wordt aangenomen dat het uitschakelen ervan alleen zal leiden tot een geringe vermindering van de prestaties vanwege de extra kopieerbewerkingen naar een aparte buffer. De patches zijn goedgekeurd door de onderhoudhouder van het crypto API-subsysteem en zijn opgenomen in de 'cryptodev'-branch, waarin mogelijkheden voor implementatie in toekomstige versies van de Linux-kernel worden ontwikkeld.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster