์ž ์žฌ์ ์œผ๋กœ ์ฝ”๋“œ ์‹คํ–‰์„ ํ—ˆ์šฉํ•˜๋Š” USB ๊ฐ€์ ฏ์˜ Linux ์ปค๋„ ํ•˜์œ„ ์‹œ์Šคํ…œ์˜ ์ทจ์•ฝ์„ฑ

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

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€