USB ํด๋ผ์ด์ธํธ ์ฅ์น ์์ฑ ๋ฐ USB ์ฅ์น์ ์ํํธ์จ์ด ์๋ฎฌ๋ ์ด์ ์ ์ํ ํ๋ก๊ทธ๋๋ฐ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ Linux ์ปค๋์ ํ์ ์์คํ ์ธ USB Gadget์์ ์ทจ์ฝ์ (CVE-2021-39685)์ด ํ์ธ๋์์ต๋๋ค. ์ด ์ทจ์ฝ์ ์ ์ปค๋ ๋์ถ, ์ถฉ๋ ๋๋ ์ค๋ฅ๋ฅผ ์ ๋ฐํ ์ ์์ต๋๋ค. ์ปค๋์์ ์์์ ์ฝ๋ ์คํ. ๊ณต๊ฒฉ์ USB Gadget API๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌํ๋ rndis, hid, uac1, uac1_legacy ๋ฐ uac2 ๋ฑ์ ๋ค์ํ ์ฅ์น ํด๋์ค๋ฅผ ์กฐ์ํ์ฌ ๊ถํ์ด ์๋ ๋ก์ปฌ ์ฌ์ฉ์์ ์ํด ์ํ๋ฉ๋๋ค.
์ด ๋ฌธ์ ๋ ์ต๊ทผ ๊ฒ์๋ 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 ๊ฐ์ ฏ ๋๋ผ์ด๋ฒ์ ๋ฐ์ดํฐ ์ ์ก ์์ฒญ ์ฒ๋ฆฌ๊ธฐ์์ ๋ฒํผ ์ค๋ฒํ๋ก๋ก ์ธํด ๋ฐ์ํฉ๋๋ค. ์ทจ์ฝ์ ์ ์
์ฉํ ๊ฒฐ๊ณผ ๊ถํ์ด ์๋ ๊ณต๊ฒฉ์๋ ํญ์ 4096๋ฐ์ดํธ๊ฐ ํ ๋น๋๋ ์ ์ ๋ฒํผ(USB_COMP_EP0_BUFSIZ)์ ํฌ๊ธฐ๋ฅผ ์ด๊ณผํ๋ wLength ํ๋ ๊ฐ์ด ํฌํจ๋ ํน์ ์ ์ด ์์ฒญ์ ์ ์กํ์ฌ ์ปค๋ ๋ฉ๋ชจ๋ฆฌ์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ๊ณต๊ฒฉ ์ค์ ๊ถํ์ด ์๋ ์ฌ์ฉ์ ๊ณต๊ฐ ํ๋ก์ธ์ค๋ ์ปค๋ ๋ฉ๋ชจ๋ฆฌ์์ ์ต๋ 65KB์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ฑฐ๋ ์ธ ์ ์์ต๋๋ค.
์ถ์ฒ : opennet.ru