Qengineering/RK35xx-CopyFail-Hotfix

GitHub: Qengineering/RK35xx-CopyFail-Hotfix

针对 RK35xx 单板计算机上 Joshua Riek Ubuntu 24.04 镜像的 CVE-2026-31431 内核本地提权漏洞,提供预编译的热修复内核补丁。

Stars: 1 | Forks: 0

# RK35xx 内核补丁:CVE-2026-31431 ("Copy Fail") 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` socket 操作与 `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 环境,该环境需要原始(未压缩的)内核镜像和特定的设备树映射。我们已经处理了编译工作;您只需运行以下命令即可安装补丁。 **1. 下载所需文件:** 将以下**三个**文件下载到您的开发板中: * `linux-image-6.1.75-copyfail-patched_*.deb` * `linux-headers-6.1.75-copyfail-patched_*.deb` * `Image`(原始的、未压缩的内核) ``` git clone https://github.com/Qengineering/RK35xx-CopyFail-Hotfix.git ``` **2. 在包含下载文件的文件夹中打开终端,并运行以下命令块:** ``` cd RK35xx-CopyFail-Hotfix # 1. 安装 Debian 软件包(这将配置 modules 和 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 所需的原始、未压缩的 Image 覆盖压缩后的 kernel sudo cp Image /boot/vmlinuz-6.1.75-copyfail-patched # 3. 移植现有的硬件 device trees 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. 重新生成 bootloader 配置 sudo u-boot-update # 5. 重启系统 sudo reboot ``` ## 🔍 透明度:自行构建 对于不想安装预编译二进制文件的用户,您可以在自己的开发板上重现此构建。
由于 Rockchip SDK 的修改,上游的主线补丁无法通过 git 顺利应用。它需要手动编辑代码。 ``` # 1. Clone 仓库并 checkout 特定的 tag 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. 手动 patch 该漏洞 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。 ```
标签:AF_ALG, CVE-2026-31431, edge AI, Linux内核, LPE漏洞修复, NanoPC, NPU, Orange Pi, RK35xx, Rock 5, Ubuntu 24.04, VPU, Web报告查看器, 内核补丁, 单板计算机, 子域名枚举, 安全渗透, 密码学子系统, 本地提权, 硬件加速, 系统安全, 边缘计算, 零拷贝漏洞