
Fornece um patch de kernel pré-compilado para o CVE-2026-31431 (Copy Fail) em SBCs RK35xx que executam Ubuntu 24.04, com instruções de instalação e transparência de compilação.
Hotfix CopyFail do RK35xx: Patch CVE-2026-31431 para Ubuntu 24.04 do Joshua Riek

Um patch de kernel pré-compilado e fornecido pela comunidade para todos os computadores de placa única RK35xx (Rock 5, Orange Pi 5, NanoPC, etc.) que executam o Ubuntu 24.04 do Joshua Riek (Kernel 6.1.0-1025-rockchip).
Em 29 de abril de 2026, uma vulnerabilidade de escalonamento local de privilégios (LPE) de alta gravidade, conhecida como "Copy Fail" (CVE-2026-31431), foi divulgada.
A falha reside no subsistema criptográfico do kernel (crypto/algif_aead.c). Ao encadear uma operação de socket AF_ALG com a chamada de sistema splice(), um usuário local sem privilégios pode forçar uma gravação de cópia zero diretamente no cache de páginas do kernel, permitindo sobrescrever binários setuid-root na memória e obter acesso root instantâneo.
Devido à configuração do kernel (CONFIG_CRYPTO_USER_API_AEAD=y), as estratégias padrão de mitigação via modprobe não funcionam nesta compilação.
É necessário um patch de kernel em nível de código-fonte.
Com o repositório upstream do Joshua Riek atualmente inativo, os usuários ficam presos em um kernel vulnerável.
Como apoiadores de longa data da comunidade de SBC e IA de borda, a Qengineering fez o backport manual da correção do kernel mainline (commit a664bf3d603d), recompilou o kernel a partir da tag de código-fonte exata Ubuntu-rockchip-6.1.0-1025.25 e o empacotou aqui para implantação imediata.
Todos os recursos originais de aceleração de hardware NPU, VPU e rede são 100% preservados.
As imagens Ubuntu do Joshua Riek usam um ambiente U-Boot estritamente personalizado que exige imagens de kernel brutas (descompactadas) e mapeamento específico de device tree. Nós cuidamos da compilação; você só precisa executar os seguintes comandos para instalar o patch.
1. Baixe os arquivos necessários: Baixe estes três arquivos para a sua placa:
linux-image-6.1.75-copyfail-patched_*.deblinux-headers-6.1.75-copyfail-patched_*.debImage (O kernel bruto, descompactado)git clone https://github.com/Qengineering/RK35xx-CopyFail-Hotfix.git
2. Abra um terminal na pasta que contém seus downloads e execute este bloco de comandos:
cd RK35xx-CopyFail-Hotfix
# 1. Instale os pacotes Debian (Isso configura módulos e initramfs)
sudo dpkg -i linux-image-6.1.75-copyfail-patched_*.deb
sudo dpkg -i linux-headers-6.1.75-copyfail-patched_*.deb
# 2. Substitua o kernel compactado pela Image bruta e descompactada exigida pelo U-Boot
sudo cp Image /boot/vmlinuz-6.1.75-copyfail-patched
# 3. Transfira seus device trees de hardware existentes
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. Regere a configuração do bootloader
sudo u-boot-update
# 5. Reinicie o seu sistema
sudo reboot
Para usuários que preferem não instalar binários pré-compilados, você pode reproduzir esta compilação exata na sua própria placa.
Devido às modificações do SDK Rockchip, o patch mainline upstream não se aplica de forma limpa via git. É necessária uma edição manual do código.
# 1. Clone o repositório e faça checkout da tag específica
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. Aplique manualmente o patch da vulnerabilidade
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
# Abra copy-fail.patch e implemente cuidadosamente as alterações de código.
# 3. Copie sua configuração de hardware ativa
cp /boot/config-6.1.0-1025-rockchip .config
make olddefconfig
# 4. Compile os pacotes (Leva cerca de 45-60 minutos no Rock 5C)
make -j$(nproc) bindeb-pkg LOCALVERSION=-copyfail-patched
# 5. Siga as Instruções de Instalação acima, usando seus novos arquivos .deb compilados
# e a Image descompactada encontrada em arch/arm64/boot/Image.