๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํŒจํ‚ค์ง€ ์Šคํ‘ธํ•‘์„ ํ—ˆ์šฉํ•˜๋Š” RubyGems.org์˜ ์ทจ์•ฝ์ 

RubyGems.org ํŒจํ‚ค์ง€ ์ €์žฅ์†Œ์—์„œ ์‹ฌ๊ฐํ•œ ์ทจ์•ฝ์ (CVE-2022-29176)์ด ํ™•์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ์ทจ์•ฝ์ ์„ ํ†ตํ•ด ์ ์ ˆํ•œ ๊ถŒํ•œ ์—†์ด ํ•ฉ๋ฒ•์ ์ธ ํŒจํ‚ค์ง€๋ฅผ ๋Œ์–ด๋‚ด๊ณ  ๊ทธ ์ž๋ฆฌ์— ๋กœ๋“œํ•˜์—ฌ ์ €์žฅ์†Œ์— ์žˆ๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํŒจํ‚ค์ง€๋ฅผ ๊ต์ฒดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฆ„๊ณผ ๋ฒ„์ „ ๋ฒˆํ˜ธ๊ฐ€ ๊ฐ™์€ ๋‹ค๋ฅธ ํŒŒ์ผ.

์ทจ์•ฝ์ ์„ ์„ฑ๊ณต์ ์œผ๋กœ ์•…์šฉํ•˜๋ ค๋ฉด ๋‹ค์Œ ์„ธ ๊ฐ€์ง€ ์กฐ๊ฑด์„ ์ถฉ์กฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ๊ณต๊ฒฉ์€ ์ด๋ฆ„์— ํ•˜์ดํ”ˆ์ด ํฌํ•จ๋œ ํŒจํ‚ท์—์„œ๋งŒ ์ˆ˜ํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ณต๊ฒฉ์ž๋Š” ํ•˜์ดํ”ˆ ๋ฌธ์ž ์•ž์— ์ด๋ฆ„์˜ ์ผ๋ถ€๊ฐ€ ํฌํ•จ๋œ gem ํŒจํ‚ค์ง€๋ฅผ ๋ฐฐ์น˜ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, "rails-html-sanitizer" ํŒจํ‚ค์ง€์— ๋Œ€ํ•œ ๊ณต๊ฒฉ์ด๋ผ๋ฉด ๊ณต๊ฒฉ์ž๋Š” ์ž์‹ ์˜ "rails-html" ํŒจํ‚ค์ง€๋ฅผ ์ €์žฅ์†Œ์— ๋ฐฐ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ณต๊ฒฉ๋ฐ›๋Š” ํŒจํ‚ค์ง€๋Š” ์ง€๋‚œ 30์ผ ์ด๋‚ด์— ์ƒ์„ฑ๋˜์—ˆ๊ฑฐ๋‚˜ 100์ผ ๋™์•ˆ ์—…๋ฐ์ดํŠธ๋˜์ง€ ์•Š์•˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด ์ทจ์•ฝ์ ์€ ํ•˜์ดํ”ˆ ๋’ค์˜ ์ด๋ฆ„ ๋ถ€๋ถ„์„ ํ”Œ๋žซํผ ์ด๋ฆ„์œผ๋กœ ํ•ด์„ํ•˜๋Š” "yank" ์ž‘์—… ํ•ธ๋“ค๋Ÿฌ์˜ ์˜ค๋ฅ˜๋กœ ์ธํ•ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์ด๋ฆ„ ๋ถ€๋ถ„๊ณผ ์ผ์น˜ํ•˜๋Š” ์™ธ๋ถ€ ํŒจํ‚ค์ง€ ์‚ญ์ œ๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ดํ”ˆ ์•ž์—. ํŠนํžˆ "yank" ํ•ธ๋“ค๋Ÿฌ ์ฝ”๋“œ์—์„œ๋Š” 'find_by!(full_name: "#{rubygem.name}-#{slug}")" ํ˜ธ์ถœ์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒจํ‚ค์ง€๋ฅผ ์ฐพ์€ ๋ฐ˜๋ฉด "slug" ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์ œ๊ฑฐํ•  ๋ฒ„์ „์„ ๊ฒฐ์ •ํ•˜๋ ค๋ฉด ํŒจํ‚ค์ง€ ์†Œ์œ ์ž๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. "rails-html" ํŒจํ‚ค์ง€์˜ ์†Œ์œ ์ž๋Š” ๋ฒ„์ „ "1.2.3" ๋Œ€์‹  "sanitizer-1.2.3"์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋กœ ์ธํ•ด ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ํŒจํ‚ค์ง€ "rails-html-sanitizer-1.2.3"์— ์ž‘์—…์ด ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ".

์ด ๋ฌธ์ œ๋Š” ์•Œ๋ ค์ง„ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์—์„œ ๋ณด์•ˆ ๋ฌธ์ œ๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•œ HackerOne ํฌ์ƒ๊ธˆ ํ”„๋กœ๊ทธ๋žจ์˜ ์ผ๋ถ€๋กœ ๋ณด์•ˆ ์—ฐ๊ตฌ์›์— ์˜ํ•ด ํ™•์ธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” 5์›” 18์ผ RubyGems.org์—์„œ ํ•ด๊ฒฐ๋˜์—ˆ์œผ๋ฉฐ ๊ฐœ๋ฐœ์ž์— ๋”ฐ๋ฅด๋ฉด ์ง€๋‚œ XNUMX๊ฐœ์›” ๋™์•ˆ ๋กœ๊ทธ์—์„œ ์ทจ์•ฝ์  ์•…์šฉ ํ”์ ์„ ์•„์ง ์‹๋ณ„ํ•˜์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค. ๋™์‹œ์—, ์ง€๊ธˆ๊นŒ์ง€๋Š” ํ‘œ๋ฉด์ ์ธ ๊ฐ์‚ฌ๋งŒ ์‹ค์‹œ๋˜์—ˆ์œผ๋ฉฐ ์•ž์œผ๋กœ๋Š” ๋ณด๋‹ค ์‹ฌ์ธต์ ์ธ ๊ฐ์‚ฌ๊ฐ€ ๊ณ„ํš๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ๋ฅผ ํ™•์ธํ•˜๋ ค๋ฉด Gemfile.lock ํŒŒ์ผ์—์„œ ์ž‘์—… ๋‚ด์—ญ์„ ๋ถ„์„ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด๋ฆ„๊ณผ ๋ฒ„์ „์ด ๋ณด์กด๋˜๊ฑฐ๋‚˜ ํ”Œ๋žซํผ์ด ๋ณ€๊ฒฝ๋œ ๊ฒฝ์šฐ(์˜ˆ: gemname์ด ๋ณ€๊ฒฝ๋œ ๊ฒฝ์šฐ) ์•…์˜์ ์ธ ํ™œ๋™์ด ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. -1.2.3 ํŒจํ‚ค์ง€๊ฐ€ gemname-1.2.3-java๋กœ ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ง€์†์ ์ธ ํ†ตํ•ฉ ์‹œ์Šคํ…œ์—์„œ ๋˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฒŒ์‹œํ•  ๋•Œ ์ˆจ๊ฒจ์ง„ ํŒจํ‚ค์ง€ ๋Œ€์ฒด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ฐœ๋ฐœ์ž๋Š” ์ข…์†์„ฑ์„ ์ˆ˜์ •ํ•˜๊ธฐ ์œ„ํ•ด "-frozen" ๋˜๋Š” "-deployment" ์˜ต์…˜๊ณผ ํ•จ๊ป˜ Bundler๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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