Glibc 2.32 ์‹œ์Šคํ…œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฆด๋ฆฌ์Šค

XNUMX๊ฐœ์›”๊ฐ„์˜ ๊ฐœ๋ฐœ ๋์— ์ถœํŒ ๋œ ์‹œ์Šคํ…œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฆด๋ฆฌ์Šค GNU C ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ (๊ธ€๋ฆฌBC) 2.32์ด๋Š” ISO C11 ๋ฐ POSIX.1-2017 ํ‘œ์ค€์˜ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์™„์ „ํžˆ ์ค€์ˆ˜ํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ ๋ฆด๋ฆฌ์Šค์—๋Š” 67๋ช…์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ˆ˜์ •ํ•œ ์‚ฌํ•ญ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

Glibc 2.32์—์„œ ๊ตฌํ˜„๋œ ๊ฒƒ ์ค‘์—์„œ ๊ฐœ๋Ÿ‰ ๋‹น์‹ ์€ ์ฐธ๊ณ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค :

  • Synopsys ARC HS(ARCv2 ISA) ํ”„๋กœ์„ธ์„œ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํฌํŠธ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด ์ตœ์†Œํ•œ binutils 2.32, gcc 8.3 ๋ฐ Linux ์ปค๋„ 5.1์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. arc-linux-gnu, arc-linux-gnuhf ๋ฐ arceb-linux-gnu(๋น…์—”๋””์•ˆ)์˜ ์„ธ ๊ฐ€์ง€ ABI ๋ณ€ํ˜•์ด ์ง€์›๋ฉ๋‹ˆ๋‹ค.
  • DT_AUDIT ๋ฐ ์„น์…˜์— ์ง€์ •๋œ ๊ฐ์‚ฌ ๋ชจ๋“ˆ ๋กœ๋“œ
    ์‹คํ–‰ ํŒŒ์ผ์˜ DT_DEPAUDIT์ž…๋‹ˆ๋‹ค.

  • powerpc64le ์•„ํ‚คํ…์ฒ˜์˜ ๊ฒฝ์šฐ "-mabi=ieeelongdouble" ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋นŒ๋“œํ•  ๋•Œ ํ™œ์„ฑํ™”๋˜๋Š” IEEE128 long double ์œ ํ˜•์— ๋Œ€ํ•œ ์ง€์›์ด ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.
  • ์ผ๋ถ€ API์—๋Š” GCC '์•ก์„ธ์Šค' ์†์„ฑ์œผ๋กœ ์ฃผ์„์ด ๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด GCC 10์—์„œ ์ปดํŒŒ์ผํ•  ๋•Œ ๊ฐ€๋Šฅํ•œ ๋ฒ„ํผ ์˜ค๋ฒ„ํ”Œ๋กœ ๋ฐ ๊ธฐํƒ€ ๋ฒ”์œ„๋ฅผ ๋ฒ—์–ด๋‚œ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๊ฐ์ง€ํ•  ๋•Œ ๋” ๋‚˜์€ ๊ฒฝ๊ณ ๊ฐ€ ์ƒ์„ฑ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • Linux ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ pthread_attr_setsigmask_np ๋ฐ
    pthread_attr_getsigmask_np๋Š” pthread_create๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑ๋œ ์Šค๋ ˆ๋“œ์— ๋Œ€ํ•œ ์‹ ํ˜ธ ๋งˆ์Šคํฌ๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • ์ธ์ฝ”๋”ฉ ๋ฐ์ดํ„ฐ, ๋ฌธ์ž ์œ ํ˜• ์ •๋ณด ๋ฐ ์Œ์—ญ ํ…Œ์ด๋ธ”์ด ์œ ๋‹ˆ์ฝ”๋“œ 13.0.0 ์‚ฌ์–‘์„ ์ง€์›ํ•˜๋„๋ก ์—…๋ฐ์ดํŠธ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ƒˆ๋กœ์šด ํ—ค๋” ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. , ์ด๋Š” ๋‹จ์ผ ์Šค๋ ˆ๋“œ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” __libc_single_threaded ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.
  • ์‹ ํ˜ธ์˜ ๋‹จ์ถ•๋œ ์ด๋ฆ„๊ณผ ์„ค๋ช…(์˜ˆ: SIGHUP์˜ ๊ฒฝ์šฐ "HUP" ๋ฐ "Hangup")์„ ๋ฐ˜ํ™˜ํ•˜๋Š” sigabbrev_np ๋ฐ sigdescr_np ํ•จ์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์˜ค๋ฅ˜์˜ ์ด๋ฆ„๊ณผ ์„ค๋ช…์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜ strerrorname_np ๋ฐ strerrordesc_np๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: EINVAL์˜ "EINVAL" ๋ฐ "์ž˜๋ชป๋œ ์ธ์ˆ˜").
  • ARM64 ํ”Œ๋žซํผ์˜ ๊ฒฝ์šฐ "--enable-standard-branch-protection" ํ”Œ๋ž˜๊ทธ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(๋˜๋Š” GCC์—์„œ๋Š” -mbranch-protection=standard). ์ด๋ฅผ ํ†ตํ•ด ARMv8.5-BTI(๋ถ„๊ธฐ ๋Œ€์ƒ ํ‘œ์‹œ๊ธฐ) ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ARMXNUMX ํ”Œ๋žซํผ์„ ๋ณดํ˜ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹คํ–‰๋˜์–ด์„œ๋Š” ์•ˆ ๋˜๋Š” ๋ช…๋ น์–ด ์„ธํŠธ์˜ ์‹คํ–‰ ๋ถ„๊ธฐ ์ „ํ™˜. ์ž„์˜์˜ ์ฝ”๋“œ ์„น์…˜์œผ๋กœ์˜ ์ „ํ™˜ ์ฐจ๋‹จ์€ ๋ฐ˜ํ™˜ ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ˆ (ROP - Return-Oriented ํ”„๋กœ๊ทธ๋ž˜๋ฐ)์„ ์‚ฌ์šฉํ•˜๋Š” ๊ณต๊ฒฉ์—์„œ ๊ฐ€์ ฏ ์ƒ์„ฑ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. ๊ณต๊ฒฉ์ž๋Š” ์ž์‹ ์˜ ์ฝ”๋“œ๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ๋ฐฐ์น˜ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•˜์ง€ ์•Š๊ณ  ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๋ถ€๋ถ„์—์„œ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์–ป๊ธฐ ์œ„ํ•ด ํ˜ธ์ถœ ์ฒด์ธ์ด ๊ตฌ์ถ•๋˜๋Š” ๋ฐ˜ํ™˜ ์ œ์–ด ๋ช…๋ น์œผ๋กœ ๋๋‚˜๋Š” ๊ธฐ๊ณ„ ๋ช…๋ น์ž…๋‹ˆ๋‹ค.
  • "--enable-obsolete-rpc" ๋ฐ "--enable-obsolete-nsl" ์˜ต์…˜, ํ—ค๋” ํŒŒ์ผ ์ œ๊ฑฐ๋ฅผ ํฌํ•จํ•˜์—ฌ ์˜ค๋ž˜๋œ ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๋Œ€๋Œ€์ ์ธ ์ •๋ฆฌ๊ฐ€ ์ˆ˜ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค. . sstk, siginterrupt, sigpause, singold, sigrelse, sigignore ๋ฐ sigset ํ•จ์ˆ˜, sys_siglist, _sys_siglist ๋ฐ sys_sigabbrev ๋ฐฐ์—ด, sys_errlist, _sys_errlist, sys_nerr ๋ฐ _sys_nerr ๊ธฐํ˜ธ, NSS ๋ชจ๋“ˆ hesiod๋Š” ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ldconfig๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฑฐ์˜ 20๋…„ ๋™์•ˆ glibc์—์„œ ์ง€์›๋˜์–ด ์˜จ ์ƒˆ๋กœ์šด ld.so.cache ํ˜•์‹์„ ์‚ฌ์šฉํ•˜๋„๋ก ์ด๋™๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ˆ˜์ •๋œ ์ทจ์•ฝ์ :
    • CVE-2016-10228 โ€“ ์ž˜๋ชป๋œ ๋ฉ€ํ‹ฐ๋ฐ”์ดํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ "-c" ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์‹คํ–‰ํ•˜๋ฉด iconv ์œ ํ‹ธ๋ฆฌํ‹ฐ์˜ ๋ฃจํ”„๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
    • CVE-2020-10029 ์˜์‚ฌ null ์ธ์ˆ˜๋กœ ์‚ผ๊ฐ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ์Šคํƒ์ด ์†์ƒ๋ฉ๋‹ˆ๋‹ค.
    • CVE-2020-1752 - ๊ฒฝ๋กœ์—์„œ ํ™ˆ ๋””๋ ‰ํ„ฐ๋ฆฌ("~user")์— ๋Œ€ํ•œ ์ฐธ์กฐ๋ฅผ ํ™•์žฅํ•  ๋•Œ glob ํ•จ์ˆ˜์—์„œ use-after-free ๋ฉ”๋ชจ๋ฆฌ ์•ก์„ธ์Šค๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
    • CVE-2020-6096 โ€“ ARMv7 ํ”Œ๋žซํผ์—์„œ ๋ณต์‚ฌ๋œ ์˜์—ญ์˜ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” memcpy() ๋ฐ memmove()์˜ ์Œ์ˆ˜ ๋งค๊ฐœ ๋ณ€์ˆ˜ ๊ฐ’์„ ์ž˜๋ชป ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ํ—ˆ์šฉ memcpy() ๋ฐ memmove() ํ•จ์ˆ˜์—์„œ ํŠน์ • ๋ฐฉ์‹์œผ๋กœ ํ˜•์‹ํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ์ฝ”๋“œ ์‹คํ–‰์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” ์ค‘์š”ํ•˜๋‹ค ๋‚จ์•„ ์ •๋ณด๊ฐ€ ๊ณต๊ฐœ๋œ ์ง€ ๊ฑฐ์˜ ๋‘ ๋‹ฌ ๋™์•ˆ, Glibc ๊ฐœ๋ฐœ์ž์—๊ฒŒ ํ†ต๋ณด๋œ ์ง€ XNUMX๊ฐœ์›” ๋™์•ˆ ์ˆ˜์ •๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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