
Fornisce una patch del kernel precompilata per CVE-2026-31431 (Copy Fail) su SBC RK35xx con Ubuntu 24.04, con istruzioni di installazione e trasparenza di build.
Hotfix CopyFail RK35xx: Patch CVE-2026-31431 per Ubuntu 24.04 di Joshua Riek

Un patch del kernel precompilato fornito dalla community per tutti i single-board computer RK35xx (Rock 5, Orange Pi 5, NanoPC, ecc.) che eseguono Ubuntu 24.04 di Joshua Riek (Kernel 6.1.0-1025-rockchip).
Il 29 aprile 2026 è stata divulgata una vulnerabilità di escalation dei privilegi locali (LPE) ad alta gravità nota come "Copy Fail" (CVE-2026-31431).
Il difetto risiede nel sottosistema crittografico del kernel (crypto/algif_aead.c). Combinando un'operazione socket AF_ALG con la chiamata di sistema splice(), un utente locale non privilegiato può forzare una scrittura zero-copy direttamente nella cache delle pagine del kernel, consentendogli di sovrascrivere i binari setuid-root in memoria e ottenere accesso root immediato.
A causa della configurazione del kernel (CONFIG_CRYPTO_USER_API_AEAD=y), le strategie di mitigazione standard tramite modprobe non funzionano su questa build.
È richiesto un patch del kernel a livello di codice sorgente.
Con il repository upstream di Joshua Riek attualmente inattivo, gli utenti rimangono bloccati su un kernel vulnerabile.
In qualità di sostenitori di lunga data della community SBC e edge AI, Qengineering ha backportato manualmente il fix del kernel mainline (commit a664bf3d603d), ricompilato il kernel dall'esatto tag sorgente Ubuntu-rockchip-6.1.0-1025.25, e lo ha impacchettato qui per una distribuzione immediata.
Tutte le funzionalità originali di accelerazione hardware NPU, VPU e rete sono preservate al 100%.
Le immagini Ubuntu di Joshua Riek utilizzano un ambiente U-Boot strettamente personalizzato che richiede immagini del kernel raw (non compresse) e una specifica mappatura dei device tree. Abbiamo gestito noi la compilazione; devi solo eseguire i seguenti comandi per installare il patch.
1. Scarica i file richiesti: Scarica questi tre file sulla tua board:
linux-image-6.1.75-copyfail-patched_*.deblinux-headers-6.1.75-copyfail-patched_*.debImage (Il kernel raw, non compresso)git clone https://github.com/Qengineering/RK35xx-CopyFail-Hotfix.git
2. Apri un terminale nella cartella contenente i tuoi download ed esegui questo blocco di comandi:
cd RK35xx-CopyFail-Hotfix
# 1. Installa i pacchetti Debian (Questo configura i moduli e l'initramfs)
sudo dpkg -i linux-image-6.1.75-copyfail-patched_*.deb
sudo dpkg -i linux-headers-6.1.75-copyfail-patched_*.deb
# 2. Sovrascrivi il kernel compresso con l'Image raw e non compressa richiesta da U-Boot
sudo cp Image /boot/vmlinuz-6.1.75-copyfail-patched
# 3. Trasferisci i tuoi device tree hardware esistenti
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. Rigenera la configurazione del bootloader
sudo u-boot-update
# 5. Riavvia il tuo sistema
sudo reboot
Per gli utenti che preferiscono non installare binari precompilati, puoi riprodurre questa build esatta sulla tua board.
A causa delle modifiche all'SDK Rockchip, il patch upstream mainline non si applica in modo pulito tramite git. Richiede una modifica manuale del codice.
# 1. Clona il repository e fai checkout del tag specifico
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. Applica manualmente il patch alla vulnerabilità
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
# Apri copy-fail.patch e implementa attentamente le modifiche al codice.
# 3. Copia la tua configurazione hardware attiva
cp /boot/config-6.1.0-1025-rockchip .config
make olddefconfig
# 4. Compila i pacchetti (Richiede ~45-60 minuti sulla Rock 5C)
make -j$(nproc) bindeb-pkg LOCALVERSION=-copyfail-patched
# 5. Segui le Istruzioni di Installazione sopra, usando i tuoi file .deb appena compilati
# e l'Image non compressa che trovi in arch/arm64/boot/Image.