
Предоставляет предварительно скомпилированный патч ядра для CVE-2026-31431 (Copy Fail) на одноплатных компьютерах RK35xx под управлением Ubuntu 24.04, с инструкциями по установке и прозрачностью сборки.
Горячий фикс RK35xx CopyFail: патч CVE-2026-31431 для Ubuntu 24.04 от Joshua Riek

Предоставленный сообществом предварительно скомпилированный патч ядра для всех одноплатных компьютеров RK35xx (Rock 5, Orange Pi 5, NanoPC и др.) под управлением Ubuntu 24.04 от Joshua Riek (ядро 6.1.0-1025-rockchip).
29 апреля 2026 года была раскрыта уязвимость локального повышения привилегий (LPE) высокой степени серьёзности, известная как «Copy Fail» (CVE-2026-31431).
Дефект находится в криптографической подсистеме ядра (crypto/algif_aead.c). Связывая операцию сокета AF_ALG с системным вызовом splice(), непривилегированный локальный пользователь может принудительно выполнить запись с нулевым копированием непосредственно в страничный кэш ядра, что позволяет перезаписать setuid-root бинарные файлы в памяти и получить мгновенный root-доступ.
Из-за конфигурации ядра (CONFIG_CRYPTO_USER_API_AEAD=y) стандартные стратегии смягчения через modprobe не работают на этой сборке.
Требуется патч ядра на уровне исходного кода.
Поскольку вышестоящий репозиторий Joshua Riek в настоящее время неактивен, пользователи остаются на уязвимом ядре.
Будучи давними сторонниками сообщества SBC и периферийного ИИ, Qengineering вручную перенёс исправление из основного ядра Linux (коммит a664bf3d603d), перекомпилировал ядро из точного тега исходного кода Ubuntu-rockchip-6.1.0-1025.25 и упаковал его здесь для немедленного развёртывания.
Все оригинальные функции аппаратного ускорения NPU, VPU и сетевых устройств сохранены на 100%.
Образы Ubuntu от Joshua Riek используют строго настраиваемое окружение U-Boot, которое требует сырых (несжатых) образов ядра и специфического сопоставления деревьев устройств. Мы выполнили компиляцию; вам нужно лишь выполнить следующие команды для установки патча.
1. Загрузите необходимые файлы: Загрузите эти три файла на вашу плату:
linux-image-6.1.75-copyfail-patched_*.deblinux-headers-6.1.75-copyfail-patched_*.debImage (сырое, несжатое ядро)git clone https://github.com/Qengineering/RK35xx-CopyFail-Hotfix.git
2. Откройте терминал в папке с загруженными файлами и выполните этот блок команд:
cd RK35xx-CopyFail-Hotfix
# 1. Установите пакеты Debian (это настраивает модули и initramfs)
sudo dpkg -i linux-image-6.1.75-copyfail-patched_*.deb
sudo dpkg -i linux-headers-6.1.75-copyfail-patched_*.deb
# 2. Замените сжатое ядро сырым, несжатым Image, требуемым U-Boot
sudo cp Image /boot/vmlinuz-6.1.75-copyfail-patched
# 3. Перенесите существующие деревья устройств вашего оборудования
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. Перегенерируйте конфигурацию загрузчика
sudo u-boot-update
# 5. Перезагрузите систему
sudo reboot
Для пользователей, которые предпочитают не устанавливать предварительно скомпилированные бинарные файлы, вы можете воспроизвести эту точную сборку на своей плате.
Из-за модификаций Rockchip SDK вышестоящий патч из основного ядра не применяется чисто через git. Требуется ручное редактирование кода.
# 1. Клонируйте репозиторий и переключитесь на конкретный тег
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. Вручную примените патч уязвимости
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
# Откройте copy-fail.patch и внимательно внесите изменения в код.
# 3. Скопируйте вашу текущую конфигурацию оборудования
cp /boot/config-6.1.0-1025-rockchip .config
make olddefconfig
# 4. Скомпилируйте пакеты (занимает ~45-60 минут на Rock 5C)
make -j$(nproc) bindeb-pkg LOCALVERSION=-copyfail-patched
# 5. Следуйте инструкциям по установке выше, используя ваши только что скомпилированные .deb файлы
# и несжатый Image, находящийся в arch/arm64/boot/Image.