Im Kern Linux Eine Sicherheitslücke ähnlich wie Copy Fail, Dirty Frag und Fragnesia wurde entdeckt, die es einem Benutzer ohne Root-Rechte ermöglicht, durch Überschreiben von Daten im Seitencache Root-Rechte zu erlangen. Die Sicherheitslücke trägt den Codenamen DirtyDecrypt (auch bekannt als DirtyCBC). Ein Prototyp des Exploits ist verfügbar.
Die Beschreibung des Exploits nennt keine CVE-Kennung, sondern gibt lediglich an, dass die Forscher das Problem am 9. Mai entdeckten und es den Kernel-Entwicklern meldeten. Diese antworteten, dass ihre Entdeckung eine bereits gemeldete, aber bereits behobene Schwachstelle sei. Da ein Patch mit der Korrektur bereits im Kernel enthalten ist, entschieden sich die Forscher, den entwickelten Exploit zu veröffentlichen. Laut Beschreibung nutzt der Exploit die Schwachstelle CVE-2026-31635 aus, deren Behebung im April in den Kernel aufgenommen und in den 7.0.0-Zweig sowie die am 18. April veröffentlichte Version 6.18.23 integriert wurde. Das Problem besteht seit Kernel 6.16.
Wie bei der Dirty-Frag-Schwachstellenserie existiert auch im RxRPC-Treiber eine neue Schwachstelle. Dieser implementiert die AF_RXRPC-Socketfamilie und das gleichnamige RPC-Protokoll, das über UDP läuft. Die Schwachstelle entsteht durch einen Fehler bei der Datengrößenprüfung in der Funktion `rxgk_verify_response()`. Anstatt `if (auth_len > len)` zu prüfen, wurde `if (auth_len < len)` verwendet. Dadurch wurden der Funktion `rxgk_decrypt_skb()` zu große Datenmengen übergeben. Bei der Ausführung von `rxgk_decrypt_skb()` wurden die Daten entschlüsselt, indem die Änderungen direkt in den Seitencache eingefügt wurden, um unnötiges Puffern zu vermeiden. Aufgrund der fehlerhaften Größenprüfung war es möglich, Daten im Seitencache an einer bestimmten Position zu überschreiben.
Die Ausnutzung der Schwachstelle besteht darin, eine Programmdatei mit Root-Rechten (suid) zu lesen (um sie im Seitencache zu speichern) und einen Teil des Programmcodes im Seitencache durch Code zum Starten von `/usr/bin/sh` zu ersetzen. Bei der anschließenden Ausführung des Programms wird die modifizierte Kopie aus dem Seitencache in den Speicher geladen, anstatt der ursprünglichen ausführbaren Datei von der Festplatte. Der Exploit unterstützt die Verwendung von `/usr/bin/su`, `/bin/su`, `/usr/bin/mount`, `/usr/bin/passwd` und `/usr/bin/chsh`.
Um diese Sicherheitslücke auszunutzen, muss die Option CONFIG_RXGK beim Kompilieren des Kernels aktiviert sein und das Kernelmodul rxrpc.ko für das automatische Laden verfügbar sein (auf manchen Systemen lässt es sich nicht kompilieren). Den Status der Behebung der Sicherheitslücke in den Distributionen können Sie auf diesen Seiten einsehen: Debian, UbuntuSUSE/openSUSE, RHEL, Arch, Fedora. Als Workaround können Sie das Laden des rxrpc-Kernelmoduls blockieren:
sh -c "printf 'install rxrpc /bin/false\n' > /etc/modprobe.d/dirtydecrypt.conf; rmmod rxrpc 2>/dev/null; true"
Außerdem können Sie die Veröffentlichung in der Mailingliste der Kernel-Entwickler beachten. Linux Diese Patches deaktivieren vollständig die Optimierungen der Crypto-API (AF_ALG), die beim Entschlüsseln mit den Algorithmen „skcipher“ und „aead“ direkten Zugriff auf den Seitencache nutzen. Diese Optimierungen eliminieren zwar unnötige Datenpufferung, bergen aber das Risiko schwerwiegender Sicherheitslücken. Durch die Deaktivierung dieser Optimierungen wird lediglich ein geringfügiger Leistungsverlust aufgrund des zusätzlichen Kopiervorgangs in einen separaten Puffer erwartet. Die Patches wurden vom Maintainer des Crypto-API-Subsystems akzeptiert und sind im Branch „cryptodev“ enthalten, wo Funktionen für zukünftige Kernel-Releases entwickelt werden. Linux.
Source: opennet.ru
