xz ํŒจํ‚ค์ง€์— ๋Œ€ํ•œ ๋ฐฑ๋„์–ด ํ”„๋กœ๋ชจ์…˜ ํšŒ๊ณ 

์•„๋งˆ๋„ xz ํŒจํ‚ค์ง€์˜ ๋ฐฑ๋„์–ด๋Š” ๊ฐœ๋ฐœ์ž Jia Tan์ด ๋„์ž…ํ•œ ๊ฒƒ์œผ๋กœ ์ถ”์ •๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Š” 2022๋…„์— ๊ด€๋ฆฌ์ž ์ž๊ฒฉ์„ ๋ฐ›๊ณ  ๋ฒ„์ „ 5.4.2๋ถ€ํ„ฐ ๋ฆด๋ฆฌ์Šค๋ฅผ ์ถœ์‹œํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฐฑ๋„์–ด ์ž‘์„ฑ์ž๋กœ ์ถ”์ •๋˜๋Š” xz ํ”„๋กœ์ ํŠธ ์™ธ์—๋„ xz-java ๋ฐ xz-embedded ํŒจํ‚ค์ง€ ๊ฐœ๋ฐœ์— ์ฐธ์—ฌํ–ˆ์œผ๋ฉฐ Linux ์ปค๋„์—์„œ ์‚ฌ์šฉ๋˜๋Š” XZ Embedded ํ”„๋กœ์ ํŠธ์˜ ๊ด€๋ฆฌ์ž ์ˆ˜์— ํฌํ•จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ฐฑ๋„์–ด ํ”„๋กœ๋ชจ์…˜์„ ์กฐ์งํ•˜๋Š” ๋‘ ๋ช…์˜ ์ฐธ๊ฐ€์ž๋„ ๋ชฉ๊ฒฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Jigar Kumar์™€ Hans Jansen์€ ๋ถ„๋ช…ํžˆ ๊ฐ€์ƒ ์บ๋ฆญํ„ฐ์ž…๋‹ˆ๋‹ค. Jigar Kumar๋Š” 2022๋…„ XNUMX์›” xz์—์„œ ์ดˆ๊ธฐ Jia Tan ํŒจ์น˜๋ฅผ ์ฑ„ํƒํ•˜์—ฌ ๋ฌธ์ž์—ด ํ•„ํ„ฐ์— ๋Œ€ํ•œ ์ง€์›์„ ๊ตฌํ˜„ํ•˜๊ณ  ๋‹น์‹œ ์œ ์ง€๊ด€๋ฆฌ์ž์˜€๋˜ Lasse Collin์—๊ฒŒ ๋„๋•์  ์••๋ ฅ์„ ๊ฐ€ํ•˜๋ฉด์„œ ์ž์‹ ์˜ ์ฑ…์ž„์„ ์ดํ–‰ํ•  ์ˆ˜ ์—†๊ณ  ์œ ์šฉํ•œ ํŒจ์น˜๋ฅผ ๋ฐ›์•„๋“ค์ด์ง€ ์•Š์•˜๋‹ค๊ณ  ๋น„ํŒํ–ˆ์Šต๋‹ˆ๋‹ค. XNUMX์›”์— Lasse Collin์€ ํ”„๋กœ์ ํŠธ์— ์ƒˆ๋กœ์šด ๊ด€๋ฆฌ์ž๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋Š” ๋ฐ ๋™์˜ํ•˜๊ณ  ํ”ผ๋กœ์™€ ์ •์‹  ๊ฑด๊ฐ• ๋ฌธ์ œ๋ฅผ ํ•œํƒ„ํ•˜๋ฉฐ ๊ด€๋ฆฌ์ž ์—ญํ• ์„ Jia Tan์—๊ฒŒ ๋„˜๊ฒผ์Šต๋‹ˆ๋‹ค. ๊ทธ ํ›„ ์‚ฌ์šฉ์ž Jigar Kumar๋Š” ๋” ์ด์ƒ ๋ฉ”์ผ๋ง ๋ฆฌ์ŠคํŠธ์— ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ด€๋ฆฌ์ž์˜ ๊ถŒํ•œ์„ ๋ฐ›์€ Jia Tan์€ ํ”„๋กœ์ ํŠธ์— ์ ๊ทน์ ์œผ๋กœ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์œผ๋ฉฐ ํ†ต๊ณ„์— ๋”ฐ๋ฅด๋ฉด 2023๋…„ ๋™์•ˆ ๋ณ€๊ฒฝ ํšŸ์ˆ˜ ์ธก๋ฉด์—์„œ ๊ฐœ๋ฐœ์ž ์ค‘ 64์œ„๋ฅผ ์ฐจ์ง€ํ–ˆ์Šต๋‹ˆ๋‹ค. XNUMX๋…„ XNUMX์›”, oss-fuzz ์„œ๋น„์Šค์—์„œ xz ํŒจํ‚ค์ง€ ํ…Œ์ŠคํŠธ ์ฑ…์ž„์ž๊ฐ€ Lasse Collin์—์„œ Jia Tan์œผ๋กœ ๊ต์ฒด๋˜์—ˆ๊ณ , XNUMX์›”์—๋Š” liblzma(crcXNUMX_fast ์ƒ์„ฑ์ž)์— IFUNC ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ•˜๋Š” xz ๊ตฌ์„ฑ์ด ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ifunc)๋กœ ๋Œ€์ฒด๋˜์—ˆ์œผ๋ฉฐ ๋‚˜์ค‘์— ๋ฐฑ๋„์–ด์—์„œ ๊ธฐ๋Šฅ์„ ๊ฐ€๋กœ์ฑ„๋Š” ๋ฐ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ Hans Jansen์ด ์ œ์•ˆํ–ˆ๊ณ  Jia Tan์€ ๊ทธ๋ฅผ xz๋กœ ๋ฐ›์•„๋“ค์˜€์Šต๋‹ˆ๋‹ค. Hans Jansen ๊ณ„์ •์€ ํ’€ ์š”์ฒญ์„ ์ œ์ถœํ•˜๊ธฐ ์ง์ „์— ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

2023๋…„ 2024์›”, Jia Tan์€ '-fsanitize=address' ๋ชจ๋“œ์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ifunc ๊ฒ€์‚ฌ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ด ๋‹ฌ๋ผ๋Š” ์š”์ฒญ์„ oss-fuzz ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋ณด๋ƒˆ์Šต๋‹ˆ๋‹ค. 23๋…„ 3์›” ์ดˆ์— oss-fuzz์™€ tukaani.org์˜ ๋ฉ”์ธ ํŽ˜์ด์ง€์— ์žˆ๋Š” ํ”„๋กœ์ ํŠธ ์›น์‚ฌ์ดํŠธ ๋งํฌ๊ฐ€ "tukaani.org/xz/"์—์„œ "xz.tukaani.org"๋กœ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ํ•˜์œ„ ๋„๋ฉ”์ธ์€ " xz.tukaani.orgโ€๋Š” GitHub ํŽ˜์ด์ง€ ์„œ๋น„์Šค์— ์žˆ์œผ๋ฉฐ Jia Tan์ด ๊ฐœ์ธ์ ์œผ๋กœ ์ œ์–ดํ–ˆ์Šต๋‹ˆ๋‹ค. 2์›” 4์ผ, ๋””์ฝ”๋” ํ…Œ์ŠคํŠธ์šฉ ์•„์นด์ด๋ธŒ๊ฐ€ xz ์ €์žฅ์†Œ์— ๊ฒŒ์‹œ๋˜์—ˆ์œผ๋ฉฐ, ๊ทธ์ค‘์—๋Š” ์ˆจ๊ฒจ์ง„ ๋ฐฑ๋„์–ด๊ฐ€ ์žˆ๋Š” bad-5.6.0-corrupt_lzmaXNUMX.xz ๋ฐ good-large_compressed.lzma ํŒŒ์ผ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฐฑ๋„์–ด ํ™œ์„ฑํ™”๋ฅผ ์œ„ํ•œ MXNUMX ๋งคํฌ๋กœ๋Š” XNUMX ๋ฆด๋ฆฌ์Šค์˜ tarball์—๋งŒ ํฌํ•จ๋˜์—ˆ์œผ๋ฉฐ Git ์ €์žฅ์†Œ์—์„œ๋Š” ์ œ์™ธ๋˜์—ˆ์ง€๋งŒ .gitignore ํŒŒ์ผ์—๋Š” ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค.

17์›” 25์ผ์— IFUNC๋ฅผ ์ง€์›ํ•˜๋Š” ํŒจ์น˜๋ฅผ ๊ฐœ๋ฐœํ–ˆ๋˜ Hans Jansen์ด ๋ฐ๋น„์•ˆ ํ”„๋กœ์ ํŠธ์— ๊ธฐ์—ฌ์ž๋กœ ๋“ฑ๋ก๋˜์—ˆ๊ณ , XNUMX์›” XNUMX์ผ์— ๋ฐ๋น„์•ˆ ์ €์žฅ์†Œ์˜ xz-utils ํŒจํ‚ค์ง€ ๋ฒ„์ „์„ ์—…๋ฐ์ดํŠธํ•˜๋ผ๋Š” ์š”์ฒญ์„ ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. . ๋ฒ„์ „ ์—…๋ฐ์ดํŠธ ์š”์ฒญ์€ Fedora ๋ฐ Ubuntu ๊ฐœ๋ฐœ์ž๋กœ๋ถ€ํ„ฐ๋„ ์ด๋ฃจ์–ด์กŒ์Šต๋‹ˆ๋‹ค(Ubuntu์—์„œ๋Š” ์ €์žฅ์†Œ๊ฐ€ ๋™๊ฒฐ๋˜์—ˆ์œผ๋ฉฐ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๊ฑฐ๋ถ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค).

xz ๋ฒ„์ „ ์—…๋ฐ์ดํŠธ ์š”์ฒญ์—๋Š” ์ผ๋ถ€ ์‚ฌ์šฉ์ž๋„ ์ฐธ์—ฌํ–ˆ๋Š”๋ฐ, ๊ทธ๋Š” ์ƒˆ ๋ฒ„์ „์ด ์ž‘์—…์„ ๋ฐฉํ•ดํ•˜๋Š” ๊ฒฐํ•จ์„ ์ œ๊ฑฐํ–ˆ๋‹ค๊ณ  ๋งํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฐํ•จ์€ valgrind์—์„œ ๋””๋ฒ„๊น…ํ•˜๋Š” ๋™์•ˆ ๊ฐ์ง€๋˜์—ˆ์Šต๋‹ˆ๋‹ค(๋ฐฑ๋„์–ด ํ•ธ๋“ค๋Ÿฌ์—์„œ ์Šคํƒ ๋ ˆ์ด์•„์›ƒ์„ ์ž˜๋ชป ๊ฒฐ์ •ํ•˜์—ฌ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค). , ๋ฐฑ๋„์–ด ๊ฐœ๋ฐœ์ž๋Š” ๋ฒ„์ „ xz 5.6.1 .XNUMX์—์„œ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ์ œ๊ฑฐํ•˜๋ ค๊ณ  ์‹œ๋„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด ๊ฒฐํ•จ์— ๊ด€์‹ฌ์„ ๋ณด์ธ ์‚ฌ๋žŒ์€ PostgreSQL ๊ฐœ๋ฐœ์— ์ฐธ์—ฌํ•œ Microsoft ์ง์›์ธ Andres Freund์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ๋Š” ๋ฐฑ๋„์–ด์˜ ์กด์žฌ๋ฅผ ์‹๋ณ„ํ•˜๊ณ  ์ด์— ๋Œ€ํ•ด ์ปค๋ฎค๋‹ˆํ‹ฐ์— ์•Œ๋ ธ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

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