
CVE-2026-31431(Copy Fail)向けのプリコンパイル済みカーネルパッチを、Ubuntu 24.04を実行するRK35xx SBC向けに提供します。インストール手順とビルドの透明性も含まれています。
RK35xx CopyFail ホットフィックス: Joshua Riek の Ubuntu 24.04 向け CVE-2026-31431 パッチ

Joshua Riek の Ubuntu 24.04(カーネル 6.1.0-1025-rockchip)を実行している**すべての RK35xx シングルボードコンピュータ(Rock 5、Orange Pi 5、NanoPC など)**向けに、コミュニティ提供のプリコンパイル済みカーネルパッチです。
2026年4月29日、"Copy Fail"(CVE-2026-31431)として知られる高深刻度のローカル権限昇格(LPE)脆弱性が公開されました。
この欠陥はカーネルの暗号サブシステム(crypto/algif_aead.c)に存在します。AF_ALG ソケット操作と splice() システムコールを連鎖させることで、非特権ローカルユーザーがカーネルのページキャッシュへのゼロコピー書き込みを強制でき、メモリ内の setuid-root バイナリを上書きして即座に root アクセスを取得できます。
カーネル構成(CONFIG_CRYPTO_USER_API_AEAD=y)のため、標準的な modprobe による緩和策はこのビルドでは機能しません。
ソースレベルのカーネルパッチが必要です。
上流の Joshua Riek リポジトリが現在非アクティブなため、ユーザーは脆弱なカーネルに取り残されています。
SBC およびエッジ AI コミュニティの長年のサポーターとして、Qengineering はメインライン Linux の修正(コミット a664bf3d603d)を手動でバックポートし、正確な Ubuntu-rockchip-6.1.0-1025.25 ソースタグからカーネルを再コンパイルし、即時展開用にここにパッケージ化しました。
すべてのオリジナルの NPU、VPU、およびネットワークハードウェアアクセラレーション機能は100%保持されています。
Joshua Riek の Ubuntu イメージは、厳密にカスタマイズされた U-Boot 環境を使用しており、raw(非圧縮)カーネルイメージと特定のデバイスツリーマッピングが必要です。コンパイルは当方で処理済みですので、以下のコマンドを実行してパッチをインストールするだけです。
1. 必要なファイルをダウンロード: 以下の3つのファイルをボードにダウンロードしてください:
linux-image-6.1.75-copyfail-patched_*.deblinux-headers-6.1.75-copyfail-patched_*.debImage(raw、非圧縮カーネル)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. 圧縮カーネルを、U-Boot が必要とする raw の非圧縮 Image で上書き
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. パッケージをコンパイル(Rock 5C では約45〜60分かかります)
make -j$(nproc) bindeb-pkg LOCALVERSION=-copyfail-patched
# 5. 上記のインストール手順に従い、新しくコンパイルした .deb ファイルと
# arch/arm64/boot/Image にある非圧縮 Image を使用してください。