ํ•˜์œ„ ๋ชจ๋“ˆ์„ ๋ณต์ œํ•˜๊ณ  git ์…ธ์„ ์‚ฌ์šฉํ•  ๋•Œ Git์˜ ์ทจ์•ฝ์ 

๋ถ„์‚ฐ ์†Œ์Šค ์ œ์–ด ์‹œ์Šคํ…œ Git 2.38.1, 2.30.6, 2.31.5, 2.32.4, 2.33.5, 2.34.5, 2.35.5, 2.36.3 ๋ฐ 2.37.4์˜ ์ˆ˜์ • ๋ฆด๋ฆฌ์Šค๊ฐ€ ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๊ฐ€์ง€ ์ทจ์•ฝ์ ์€ ํ™•์ธ๋˜์ง€ ์•Š์€ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๊ฐ€ ์žˆ๋Š” "-recurse-submodules" ๋ชจ๋“œ์—์„œ "git clone" ๋ช…๋ น์„ ์‚ฌ์šฉํ•  ๋•Œ์™€ "git shell" ๋Œ€ํ™”ํ˜• ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. Debian, Ubuntu, RHEL, SUSE/openSUSE, Fedora, Arch, FreeBSD ํŽ˜์ด์ง€์˜ ๋ฐฐํฌํŒ์—์„œ ํŒจํ‚ค์ง€ ์—…๋ฐ์ดํŠธ ๋ฆด๋ฆฌ์Šค๋ฅผ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • CVE-2022-39253 - ์ด ์ทจ์•ฝ์ ์œผ๋กœ ์ธํ•ด ๋ณต์ œ๋œ ์ €์žฅ์†Œ์˜ ์ฝ˜ํ…์ธ ๋ฅผ ์ œ์–ดํ•˜๋Š” โ€‹โ€‹๊ณต๊ฒฉ์ž๊ฐ€ ๋ณต์ œ๋œ ์ €์žฅ์†Œ์˜ $GIT_DIR/objects ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๊ด€์‹ฌ ์žˆ๋Š” ํŒŒ์ผ์— ๋Œ€ํ•œ ๊ธฐํ˜ธ ๋งํฌ๋ฅผ ๋ฐฐ์น˜ํ•˜์—ฌ ์‚ฌ์šฉ์ž ์‹œ์Šคํ…œ์˜ ๊ธฐ๋ฐ€ ๋ฐ์ดํ„ฐ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” ๋กœ์ปฌ๋กœ ๋ณต์ œํ•  ๋•Œ(ํด๋ก ์˜ ๋Œ€์ƒ ๋ฐ ์›๋ณธ ๋ฐ์ดํ„ฐ๊ฐ€ ๋™์ผํ•œ ํŒŒํ‹ฐ์…˜์— ์žˆ์„ ๋•Œ ์‚ฌ์šฉ๋˜๋Š” "--local" ๋ชจ๋“œ) ๋˜๋Š” ๋‹ค๋ฅธ ์ €์žฅ์†Œ์˜ ํ•˜์œ„ ๋ชจ๋“ˆ๋กœ ํŒจํ‚ค์ง€๋œ ์•…์„ฑ ์ €์žฅ์†Œ๋ฅผ ๋ณต์ œํ•  ๋•Œ(์˜ˆ: "git clone" ๋ช…๋ น --recurse-submodules"๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•˜์œ„ ๋ชจ๋“ˆ์„ ๋ฐ˜๋ณต์ ์œผ๋กœ ํฌํ•จํ•˜๋Š” ๊ฒฝ์šฐ).

    ์ทจ์•ฝ์ ์€ "--local" ๋ณต์ œ ๋ชจ๋“œ์—์„œ git์ด $GIT_DIR/objects์˜ ๋‚ด์šฉ์„ ๋Œ€์ƒ ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ์ „์†กํ•˜์—ฌ(ํ•˜๋“œ ๋งํฌ ๋˜๋Š” ํŒŒ์ผ ๋ณต์‚ฌ๋ณธ ์ƒ์„ฑ) ๊ธฐํ˜ธ ๋งํฌ ์—ญ์ฐธ์กฐ๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค๋Š” ์‚ฌ์‹ค๋กœ ์ธํ•ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ๊ธฐํ˜ธ๊ฐ€ ์•„๋‹Œ ๋งํฌ๋Š” ๋Œ€์ƒ ๋””๋ ‰ํ† ๋ฆฌ์— ๋ณต์‚ฌ๋˜์ง€๋งŒ ๋งํฌ๊ฐ€ ๊ฐ€๋ฆฌํ‚ค๋Š” ํŒŒ์ผ์€ ์ง์ ‘ ๋ณต์‚ฌ๋ฉ๋‹ˆ๋‹ค. ์ทจ์•ฝ์ ์„ ์ฐจ๋‹จํ•˜๊ธฐ ์œ„ํ•ด git์˜ ์ƒˆ ๋ฆด๋ฆฌ์Šค์—์„œ๋Š” $GIT_DIR/objects ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๊ธฐํ˜ธ ๋งํฌ๊ฐ€ ํฌํ•จ๋œ "--local" ๋ชจ๋“œ์—์„œ ์ €์žฅ์†Œ ๋ณต์ œ๋ฅผ ๊ธˆ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, protocol.file.allow ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ๊ธฐ๋ณธ๊ฐ’์ด "user"๋กœ ๋ณ€๊ฒฝ๋˜์–ด file:// ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•œ ๋ณต์ œ ์ž‘์—…์ด ์•ˆ์ „ํ•˜์ง€ ์•Š๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

  • CVE-2022-39260 - "git shell" ๋ช…๋ น์— ์‚ฌ์šฉ๋˜๋Š” Split_cmdline() ํ•จ์ˆ˜์˜ ์ •์ˆ˜ ์˜ค๋ฒ„ํ”Œ๋กœ์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” ๋กœ๊ทธ์ธ ์…ธ๋กœ โ€œgit shellโ€์„ ์‚ฌ์šฉํ•˜๊ณ  ๋Œ€ํ™”ํ˜• ๋ชจ๋“œ๋ฅผ ํ™œ์„ฑํ™”ํ•œ($HOME/git-shell-commands ํŒŒ์ผ์ด ์ƒ์„ฑ๋จ) ์‚ฌ์šฉ์ž๋ฅผ ๊ณต๊ฒฉํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ทจ์•ฝ์ ์„ ์•…์šฉํ•˜๋ฉด ํฌ๊ธฐ๊ฐ€ 2GB๋ณด๋‹ค ํฐ ํŠน๋ณ„ํžˆ ์„ค๊ณ„๋œ ๋ช…๋ น์„ ๋ณด๋‚ผ ๋•Œ ์‹œ์Šคํ…œ์—์„œ ์ž„์˜ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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