
Fournit un correctif de noyau précompilé pour CVE-2026-31431 (Copy Fail) sur les SBC RK35xx exécutant Ubuntu 24.04, avec instructions d'installation et transparence de compilation.
Correctif CopyFail RK35xx : Patch CVE-2026-31431 pour Ubuntu 24.04 de Joshua Riek

Un patch noyau pré-compilé fourni par la communauté pour tous les ordinateurs monocarte RK35xx (Rock 5, Orange Pi 5, NanoPC, etc.) exécutant Ubuntu 24.04 de Joshua Riek (noyau 6.1.0-1025-rockchip).
Le 29 avril 2026, une vulnérabilité d'élévation de privilèges locaux (LPE) de haute sévérité connue sous le nom de « Copy Fail » (CVE-2026-31431) a été divulguée.
Le défaut réside dans le sous-système cryptographique du noyau (crypto/algif_aead.c). En enchaînant une opération de socket AF_ALG avec l'appel système splice(), un utilisateur local non privilégié peut forcer une écriture zéro-copie directement dans le cache de pages du noyau, lui permettant d'écraser des binaires setuid-root en mémoire et d'obtenir un accès root instantané.
En raison de la configuration du noyau (CONFIG_CRYPTO_USER_API_AEAD=y), les stratégies d'atténuation standard par modprobe ne fonctionnent pas sur cette compilation.
Un patch au niveau du code source du noyau est requis.
Le dépôt en amont de Joshua Riek étant actuellement inactif, les utilisateurs se retrouvent bloqués sur un noyau vulnérable.
En tant que supporters de longue date de la communauté SBC et IA en périphérie, Qengineering a rétroporté manuellement le correctif Linux en amont (commit a664bf3d603d), recompilé le noyau à partir de l'étiquette source exacte Ubuntu-rockchip-6.1.0-1025.25, et l'a empaqueté ici pour un déploiement immédiat.
Toutes les fonctionnalités d'accélération matérielle d'origine NPU, VPU et réseau sont préservées à 100 %.
Les images Ubuntu de Joshua Riek utilisent un environnement U-Boot strictement personnalisé qui exige des images de noyau brutes (non compressées) et un mappage spécifique des arborescences de périphériques. Nous avons géré la compilation ; il vous suffit d'exécuter les commandes suivantes pour installer le patch.
1. Téléchargez les fichiers requis : Téléchargez ces trois fichiers sur votre carte :
linux-image-6.1.75-copyfail-patched_*.deblinux-headers-6.1.75-copyfail-patched_*.debImage (le noyau brut, non compressé)git clone https://github.com/Qengineering/RK35xx-CopyFail-Hotfix.git
2. Ouvrez un terminal dans le dossier contenant vos téléchargements et exécutez ce bloc de commandes :
cd RK35xx-CopyFail-Hotfix
# 1. Installez les paquets Debian (cela configure les modules et 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. Remplacez le noyau compressé par l'Image brute non compressée requise par U-Boot
sudo cp Image /boot/vmlinuz-6.1.75-copyfail-patched
# 3. Transférez vos arborescences de périphériques matérielles existantes
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. Régénérez la configuration du chargeur d'amorçage
sudo u-boot-update
# 5. Redémarrez votre système
sudo reboot
Pour les utilisateurs qui préfèrent ne pas installer de binaires pré-compilés, vous pouvez reproduire cette compilation exacte sur votre propre carte.
En raison des modifications du SDK Rockchip, le patch en amont ne s'applique pas proprement via git. Il nécessite une modification manuelle du code.
# 1. Clonez le dépôt et extrayez l'étiquette spécifique
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. Appliquez manuellement le patch de la vulnérabilité
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
# Ouvrez copy-fail.patch et implémentez soigneusement les modifications de code.
# 3. Copiez votre configuration matérielle active
cp /boot/config-6.1.0-1025-rockchip .config
make olddefconfig
# 4. Compilez les paquets (prend environ 45 à 60 minutes sur la Rock 5C)
make -j$(nproc) bindeb-pkg LOCALVERSION=-copyfail-patched
# 5. Suivez les Instructions d'installation ci-dessus, en utilisant vos fichiers .deb nouvellement compilés
# et l'Image non compressée située dans arch/arm64/boot/Image.