์์ ์ ๋ฐ์ดํธ์ธ Wasmtime 6.0.1, 5.0.1 ๋ฐ 4.0.1์์๋ ์ฌ๊ฐํ ์ํ ์์ค์ผ๋ก ์ง์ ๋ ์ทจ์ฝ์ (CVE-2023-26489)์ ์์ ํ์ต๋๋ค. ์ด ์ทจ์ฝ์ ์ผ๋ก ์ธํด ๊ฒฉ๋ฆฌ๋ WebAssembly ์ฝ๋์ ํ์ฉ๋ ๋ฒ์ ๋ฐ์ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๋ฐ์ดํฐ๊ฐ ๊ธฐ๋ก๋ ์ ์์ผ๋ฉฐ, ์ด๋ ์ ์ฌ์ ์ผ๋ก ๊ณต๊ฒฉ์๊ฐ ๊ฒฉ๋ฆฌ๋ WASI ํ๊ฒฝ ์ธ๋ถ์์ ์ฝ๋๋ฅผ ์คํํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ์์ต๋๋ค.
Wasmtime์ WASI(WebAssembly System Interface) ํ์ฅ์ด ํฌํจ๋ WebAssembly ์ ํ๋ฆฌ์ผ์ด์ ์ ์ผ๋ฐ ๋ ๋ฆฝ ์คํํ ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ์คํํ๊ธฐ ์ํ ๋ฐํ์์ ๋๋ค. ํดํท์ Rust ์ธ์ด๋ก ์์ฑ๋์์ผ๋ฉฐ ํ๋์จ์ด ์ํคํ ์ฒ์ ๋ ๋ฆฝ์ ์ธ ์ค๊ฐ ํํ์ x86_64 ์ํคํ ์ฒ์ ๋ํ ์คํ ๊ฐ๋ฅํ ๊ธฐ๊ณ ์ฝ๋๋ก ๋ณํํ๋ Cranelift ์ฝ๋ ์์ฑ๊ธฐ์ ์ ํ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์ ์ง์ ๊ท์น์ ์ ์ํ ๋ ๋ฐ์ํ๋ ๋ ผ๋ฆฌ์ ์ค๋ฅ๋ก ์ธํด ์ทจ์ฝ์ ์ด ๋ฐ์ํฉ๋๋ค.
ํนํ WebAssembly ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ WebAssembly์์ ํ์ฉ๋๋ 35๋นํธ ์ฃผ์ ๋์ 33๋นํธ ์ ํจ ์ฃผ์๊ฐ ๊ณ์ฐ๋์ด ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ์์ ์ ํ์ฉ๋๋ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ํ๋๊ฐ 34GB๋ก ์ด๋ํ์ผ๋ฉฐ ์๋๋ฐ์ค ํ๊ฒฝ ์ค์ ์ ๋ค์์ ๋ณดํธํฉ๋๋ค. ๊ธฐ๋ณธ ์ฃผ์์์ 6GB. ๊ฒฐ๊ณผ์ ์ผ๋ก ๊ธฐ๋ณธ ์ฃผ์์์ 6~34GB์ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๋ฒ์๋ฅผ WebAssembly ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฝ๊ณ ์ฐ๋ ๋ฐ ์ฌ์ฉํ ์ ์์์ต๋๋ค. ์ด ๋ฉ๋ชจ๋ฆฌ๋ ๋ค๋ฅธ WebAssembly ํ๊ฒฝ์ด๋ WebAssembly ๋ฐํ์ ๊ตฌ์ฑ ์์๋ฅผ ํธ์คํ ํ ์ ์์ต๋๋ค.
Wasmtime ๋ฒ์ ์ ์
๋ฐ์ดํธํ ์ ์๋ ๊ฒฝ์ฐ ์ค๋ฅ๋ฅผ ์ฐจ๋จํ๋ ํด๊ฒฐ ๋ฐฉ๋ฒ์ "Config::static_memory_maximum_size(0)" ์ต์
์ ์ง์ ํ์ฌ ๋ชจ๋ ์ ํ ๋ฉ๋ชจ๋ฆฌ ์ก์ธ์ค์ ๋ํด ๋ณ๋์ ๊ฒฝ๊ณ ๊ฒ์ฌ๋ฅผ ํ์ฑํํ๋ ๊ฒ์
๋๋ค(๊ฒฐ๊ณผ์ ์ผ๋ก ์๋นํ ์ฑ๋ฅ ์ ํ๊ฐ ๋ฐ์ํจ). . ๋ ๋ค๋ฅธ ์ต์
์ "Config::static_memory_guard_size(1 < 36)" ์ค์ ์ ์ฌ์ฉํ์ฌ ๋ฌธ์ ๊ฐ ์๋ ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๋ฒ์์ ์๋ ๊ฐ๋ ํ์ด์ง(์ก์ธ์ค ์ ๋ฐ์ํ๋ ์์ธ) ์๋ฅผ ๋๋ฆฌ๋ ๊ฒ์
๋๋ค. WebAssembly ์ ํ๋ฆฌ์ผ์ด์
์ ๋์์ ์คํํ๋ ์๋ฅผ ์ ํํฉ๋๋ค.
์ถ์ฒ : opennet.ru