Rust ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์ทจ์•ฝ์ 

std::fs::remove_dir_all() ํ•จ์ˆ˜์˜ ๊ฒฝ์Ÿ ์กฐ๊ฑด์œผ๋กœ ์ธํ•ด Rust ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ทจ์•ฝ์ (CVE-2022-21658)์ด ์‹๋ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ถŒํ•œ ์žˆ๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ž„์‹œ ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๋ฉด ๊ณต๊ฒฉ์ž๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ญ์ œํ•  ์ˆ˜ ์—†๋Š” ์ž„์˜์˜ ์‹œ์Šคํ…œ ํŒŒ์ผ๊ณผ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์ทจ์•ฝ์ ์€ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์žฌ๊ท€์ ์œผ๋กœ ์‚ญ์ œํ•˜๊ธฐ ์ „์— ๊ธฐํ˜ธ ๋งํฌ๋ฅผ ํ™•์ธํ•˜๋Š” ์ž˜๋ชป๋œ ๊ตฌํ˜„์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ๋”ฐ๋ผ๊ฐ€๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋Œ€์‹ , Remove_dir_all()์€ ๋จผ์ € ํŒŒ์ผ์ด ์‹ฌ๋ณผ๋ฆญ ๋งํฌ์ธ์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋งํฌ๊ฐ€ ์ •์˜๋˜์–ด ์žˆ์œผ๋ฉด ํŒŒ์ผ๋กœ ์‚ญ์ œ๋˜๊ณ , ๋””๋ ‰ํ„ฐ๋ฆฌ์ด๋ฉด ์žฌ๊ท€์ ์ธ ์ฝ˜ํ…์ธ  ์ œ๊ฑฐ ์ž‘์—…์ด ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” ํ™•์ธ๊ณผ ์‚ญ์ œ ์ž‘์—… ์‹œ์ž‘ ์‚ฌ์ด์— ์•ฝ๊ฐ„์˜ ์ง€์—ฐ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด๋ฏธ ๊ฒ€์‚ฌ๊ฐ€ ์ˆ˜ํ–‰๋˜์—ˆ์ง€๋งŒ ์‚ญ์ œ๋ฅผ ์œ„ํ•œ ๋””๋ ‰ํ„ฐ๋ฆฌ ์—ด๊ฑฐ ์ž‘์—…์ด ์•„์ง ์‹œ์ž‘๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๊ณต๊ฒฉ์ž๋Š” ํ•ด๋‹น ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž„์‹œ ํŒŒ์ผ๋กœ ๋Œ€์ฒดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ ์ ˆํ•œ ์‹œ์ ์— ๋„๋‹ฌํ•˜๋ฉด, Remove_dir_all() ํ•จ์ˆ˜๋Š” ์‹ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ทจ๊ธ‰ํ•˜๊ณ  ๋งํฌ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋‚ด์šฉ์„ ์ œ๊ฑฐํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๊ณต๊ฒฉ์˜ ์„ฑ๊ณต ์—ฌ๋ถ€๋Š” ์„ ํƒํ•œ ์‹œ๊ฐ„์˜ ์ •ํ™•์„ฑ์— ๋”ฐ๋ผ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๊ต์ฒดํ•˜๊ณ  ์ฒ˜์Œ์œผ๋กœ ์˜ฌ๋ฐ”๋ฅธ ์ˆœ๊ฐ„์„ ๊ณต๊ฒฉํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์—†๋‹ค๋Š” ์‚ฌ์‹ค์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์‹คํ—˜ ๋™์•ˆ ์—ฐ๊ตฌ์›๋“ค์€ ๋‚ด์—์„œ ์ต์Šคํ”Œ๋กœ์ž‡์„ ์‹คํ–‰ํ•œ ํ›„ ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ์„ฑ๊ณต์ ์ธ ๊ณต๊ฒฉ์„ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ช‡ ์ดˆ.

1.0.0๋ถ€ํ„ฐ 1.58.0๊นŒ์ง€์˜ ๋ชจ๋“  Rust ๋ฒ„์ „์ด ์˜ํ–ฅ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” ํ˜„์žฌ ํŒจ์น˜ ํ˜•์‹์œผ๋กœ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์ˆ˜์ • ์‚ฌํ•ญ์€ ๋ช‡ ์‹œ๊ฐ„ ๋‚ด์— ์˜ˆ์ƒ๋˜๋Š” 1.58.1 ๋ฆด๋ฆฌ์Šค์— ํฌํ•จ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค). Debian, RHEL, SUSE, Fedora, Ubuntu, Arch, FreeBSD ํŽ˜์ด์ง€์—์„œ ๋ฐฐํฌํŒ์˜ ์ทจ์•ฝ์  ์ œ๊ฑฐ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒ์Šน๋œ ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰๋˜๊ณ  ์ œ๊ฑฐ_dir_all ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” Rust ํ”„๋กœ๊ทธ๋žจ์˜ ๋ชจ๋“  ์‚ฌ์šฉ์ž๋Š” ๊ธด๊ธ‰ํ•˜๊ฒŒ Rust๋ฅผ ๋ฒ„์ „ 1.58.1๋กœ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋ฆด๋ฆฌ์Šค๋œ ํŒจ์น˜๊ฐ€ ๋ชจ๋“  ์‹œ์Šคํ…œ์—์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์ง€๋Š” ์•Š๋Š”๋‹ค๋Š” ์ ์ด ํฅ๋ฏธ๋กญ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด REDOX OS ๋ฐ 10.10 ์ด์ „์˜ macOS ๋ฒ„์ „(Yosemite)์—์„œ๋Š” ๋‹ค์Œ ๊ธฐํ˜ธ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋Š” O_NOFOLLOW ํ”Œ๋ž˜๊ทธ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ทจ์•ฝ์ ์ด ์ฐจ๋‹จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ.

์ถœ์ฒ˜ : opennet.ru

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