
Stellt einen vorkompilierten Kernel-Patch für CVE-2026-31431 (Copy Fail) auf RK35xx-SBCs mit Ubuntu 24.04 bereit, einschließlich Installationsanweisungen und Build-Transparenz.
RK35xx CopyFail-Hotfix: CVE-2026-31431-Patch für Joshua Rieks Ubuntu 24.04

Ein von der Community bereitgestellter, vorkompilierter Kernel-Patch für alle RK35xx-Single-Board-Computer (Rock 5, Orange Pi 5, NanoPC usw.), die Joshua Rieks Ubuntu 24.04 (Kernel 6.1.0-1025-rockchip) ausführen.
Am 29. April 2026 wurde eine lokale Rechteausweitung (LPE) mit hohem Schweregrad bekannt gegeben, die als „Copy Fail“ (CVE-2026-31431) bezeichnet wird.
Der Fehler liegt im kryptografischen Subsystem des Kernels (crypto/algif_aead.c). Durch die Verkettung einer AF_ALG-Socket-Operation mit dem Systemaufruf splice() kann ein nicht privilegierter lokaler Benutzer einen Zero-Copy-Schreibvorgang direkt in den Page-Cache des Kernels erzwingen, wodurch setuid-root-Binärdateien im Speicher überschrieben und sofortiger Root-Zugriff erlangt werden kann.
Aufgrund der Kernel-Konfiguration (CONFIG_CRYPTO_USER_API_AEAD=y) funktionieren die standardmäßigen modprobe-Minderungsstrategien nicht auf diesem Build.
Ein Patch auf Quellcode-Ebene ist erforderlich.
Da das Upstream-Repository von Joshua Riek derzeit inaktiv ist, bleiben Benutzer auf einem verwundbaren Kernel zurück.
Als langjährige Unterstützer der SBC- und Edge-AI-Community hat Qengineering den Mainline-Linux-Fix (Commit a664bf3d603d) manuell zurückportiert, den Kernel aus dem exakten Quellcode-Tag Ubuntu-rockchip-6.1.0-1025.25 neu kompiliert und hier für die sofortige Bereitstellung verpackt.
Alle ursprünglichen NPU-, VPU- und Netzwerk-Hardwarebeschleunigungsfunktionen sind zu 100 % erhalten.
Joshua Rieks Ubuntu-Images verwenden eine streng angepasste U-Boot-Umgebung, die rohe (unkomprimierte) Kernel-Images und eine spezifische Device-Tree-Zuordnung erfordert. Wir haben die Kompilierung übernommen; Sie müssen nur die folgenden Befehle ausführen, um den Patch zu installieren.
1. Laden Sie die erforderlichen Dateien herunter: Laden Sie diese drei Dateien auf Ihr Board herunter:
linux-image-6.1.75-copyfail-patched_*.deblinux-headers-6.1.75-copyfail-patched_*.debImage (Der rohe, unkomprimierte Kernel)git clone https://github.com/Qengineering/RK35xx-CopyFail-Hotfix.git
2. Öffnen Sie ein Terminal im Ordner mit Ihren Downloads und führen Sie diesen Befehlsblock aus:
cd RK35xx-CopyFail-Hotfix
# 1. Installieren Sie die Debian-Pakete (Dies konfiguriert Module und Initramfs)
sudo dpkg -i linux-image-6.1.75-copyfail-patched_*.deb
sudo dpkg -i linux-headers-6.1.75-copyfail-patched_*.deb
# 2. Überschreiben Sie den komprimierten Kernel mit dem rohen, unkomprimierten Image, das von U-Boot benötigt wird
sudo cp Image /boot/vmlinuz-6.1.75-copyfail-patched
# 3. Übertragen Sie Ihre vorhandenen Hardware-Device-Trees
sudo mkdir -p /lib/firmware/6.1.75-copyfail-patched/
sudo cp -r /lib/firmware/6.1.0-1025-rockchip/device-tree /lib/firmware/6.1.75-copyfail-patched/
# 4. Generieren Sie die Bootloader-Konfiguration neu
sudo u-boot-update
# 5. Starten Sie Ihr System neu
sudo reboot
Für Benutzer, die keine vorkompilierten Binärdateien installieren möchten, können Sie diesen exakten Build auf Ihrem eigenen Board reproduzieren.
Aufgrund der Rockchip-SDK-Modifikationen lässt sich der Upstream-Mainline-Patch nicht sauber über Git anwenden. Er erfordert eine manuelle Codebearbeitung.
# 1. Klonen Sie das Repository und checken Sie das spezifische Tag aus
git clone [https://github.com/Joshua-Riek/linux-rockchip.git](https://github.com/Joshua-Riek/linux-rockchip.git)
cd linux-rockchip
git checkout Ubuntu-rockchip-6.1.0-1025.25
git switch -c copyfail-patch-build
# 2. Patchen Sie die Schwachstelle manuell
wget "[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/patch/?id=a664bf3d603dc3bdcf9ae47cc21e0daec706d7a5](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/patch/?id=a664bf3d603dc3bdcf9ae47cc21e0daec706d7a5)" -O copy-fail.patch
# Öffnen Sie copy-fail.patch und implementieren Sie die Codeänderungen sorgfältig.
# 3. Kopieren Sie Ihre aktive Hardware-Konfiguration
cp /boot/config-6.1.0-1025-rockchip .config
make olddefconfig
# 4. Kompilieren Sie die Pakete (Dauert ca. 45–60 Minuten auf dem Rock 5C)
make -j$(nproc) bindeb-pkg LOCALVERSION=-copyfail-patched
# 5. Befolgen Sie die obigen Installationsanweisungen mit Ihren neu kompilierten .deb-Dateien
# und dem unkomprimierten Image unter arch/arm64/boot/Image.