USB Gadget์ ์ปค๋ ์๋ธ์์คํ LinuxUSB Gadget API์์ ์ทจ์ฝ์ (CVE-2021-39685)์ด ๋ฐ๊ฒฌ๋์์ต๋๋ค. ์ด API๋ ํด๋ผ์ด์ธํธ USB ์ฅ์น๋ฅผ ์์ฑํ๊ณ USB ์ฅ์น๋ฅผ ์๋ฎฌ๋ ์ด์ ํ๋ ์ํํธ์จ์ด ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด ์ทจ์ฝ์ ์ ์ปค๋ ์์ค์์ ์ปค๋ ์ ๋ณด ์ ์ถ, ์์คํ ์ถฉ๋ ๋๋ ์์ ์ฝ๋ ์คํ์ผ๋ก ์ด์ด์ง ์ ์์ต๋๋ค. ๊ณต๊ฒฉ์ ๊ถํ์ด ์๋ ๋ก์ปฌ ์ฌ์ฉ์๊ฐ rndis, hid, uac1, uac1_legacy, uac2 ๋ฑ USB Gadget API๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌํ๋ ๋ค์ํ ์ฅ์น ํด๋์ค๋ฅผ ์กฐ์ํจ์ผ๋ก์จ ์ํ๋ฉ๋๋ค.
์ต๊ทผ ๋ฐฐํฌ๋ ์ปค๋ ์ ๋ฐ์ดํธ์์ ํด๋น ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค. Linux 5.15.8, 5.10.85, 5.4.165, 4.19.221, 4.14.258, 4.9.293 ๋ฐ 4.4.295. ํด๋น ๋ฐฐํฌํ์์๋ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์ง ์์ ์ํ๋ก ๋จ์ ์์ต๋๋ค.Debian, Ubuntu(RHEL, SUSE, Fedora, Arch ๋ฑ). ์ทจ์ฝ์ ์ ์์ฐํ๊ธฐ ์ํ ํ๋กํ ํ์ ์ต์คํ๋ก์์ด ์ค๋น๋์์ต๋๋ค.
์ด ๋ฌธ์ ๋ rndis, hid, uac1, uac1_legacy ๋ฐ uac2 ๊ฐ์ ฏ ๋๋ผ์ด๋ฒ์ ๋ฐ์ดํฐ ์ ์ก ์์ฒญ ์ฒ๋ฆฌ๊ธฐ์์ ๋ฒํผ ์ค๋ฒํ๋ก๊ฐ ๋ฐ์ํ์ฌ ๋ฐ์ํฉ๋๋ค. ์ด ์ทจ์ฝ์ ์ ์
์ฉํ๋ฉด ๊ถํ์ด ์๋ ๊ณต๊ฒฉ์๊ฐ ์ ์ ๋ฒํผ ํฌ๊ธฐ(USB_COMP_EP4096_BUFSIZ)๋ฅผ ์ด๊ณผํ๋ wLength ํ๋ ๊ฐ์ ๊ฐ์ง ํน์ ์ ์ด ์์ฒญ์ ์ ์กํ์ฌ ์ปค๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ ์ ์์ต๋๋ค. ์ ์ ๋ฒํผ์๋ ํญ์ 0๋ฐ์ดํธ๊ฐ ํ ๋น๋ฉ๋๋ค. ๊ณต๊ฒฉ ๊ณผ์ ์์ ๊ถํ์ด ์๋ ํ๋ก์ธ์ค๊ฐ ์ฌ์ฉ์ ๊ณต๊ฐ์ ์ปค๋ ๋ฉ๋ชจ๋ฆฌ์์ ์ต๋ 65KB์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฑฐ๋ ์ธ ์ ์์ต๋๋ค.
์ถ์ฒ : opennet.ru
