## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-QENGINEERING-RK35XX-COPYFAIL-HOTFIX
# 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` ์์ผ ์์
์ `splice()` ์์คํ
ํธ์ถ๊ณผ ์ฐ๊ฒฐํจ์ผ๋ก์จ, ๊ถํ์ด ์๋ ๋ก์ปฌ ์ฌ์ฉ์๊ฐ ์ปค๋์ ํ์ด์ง ์บ์์ ์ง์ ์ ๋ก์นดํผ ์ฐ๊ธฐ๋ฅผ ๊ฐ์ ํ์ฌ ๋ฉ๋ชจ๋ฆฌ ๋ด setuid-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` (์์, ๋น์์ถ ์ปค๋)
root@kitploit:~
git clone https://github.com/Qengineering/RK35xx-CopyFail-Hotfix.git
**2\. ๋ค์ด๋ก๋ํ ํ์ผ์ด ์๋ ํด๋์์ ํฐ๋ฏธ๋์ ์ด๊ณ ๋ค์ ๋ช
๋ น ๋ธ๋ก์ ์คํํ์ธ์:**
root@kitploit:~
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์ ํ์ํ ์์ ๋น์์ถ 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์ ํตํด ๊น๋ํ๊ฒ ์ ์ฉ๋์ง ์์ต๋๋ค. ์๋ ์ฝ๋ ํธ์ง์ด ํ์ํฉ๋๋ค.
root@kitploit:~
# 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๋ฅผ ์ฌ์ฉํ์ธ์.