เบŠเปˆเบญเบ‡เป‚เบซเบงเปˆเบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เปƒเบ™ Wasmtime, runtime เบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ WebAssembly

ะ’ ะบะพั€ั€ะตะบั‚ะธั€ัƒัŽั‰ะธั… ะพะฑะฝะพะฒะปะตะฝะธัั… Wasmtime 6.0.1, 5.0.1 ะธ 4.0.1 ัƒัั‚ั€ะฐะฝะตะฝะฐ ัƒัะทะฒะธะผะพัั‚ัŒ (CVE-2023-26489), ะบะพั‚ะพั€ะพะน ะฟั€ะธัะฒะพะตะฝ ะบั€ะธั‚ะธั‡ะตัะบะธะน ัƒั€ะพะฒะตะฝัŒ ะพะฟะฐัะฝะพัั‚ะธ. ะฃัะทะฒะธะผะพัั‚ัŒ ะฟะพะทะฒะพะปัะตั‚ ะพั€ะณะฐะฝะธะทะพะฒะฐั‚ัŒ ะทะฐะฟะธััŒ ะดะฐะฝะฝั‹ั… ะฒ ะพะฑะปะฐัั‚ัŒ ะฟะฐะผัั‚ะธ ะฒะฝะต ะณั€ะฐะฝะธั†ั‹, ะดะพะฟัƒัั‚ะธะผะพะน ะดะปั ะธะทะพะปะธั€ะพะฒะฐะฝะฝะพะณะพ WebAssembly-ะบะพะดะฐ, ั‡ั‚ะพ ะฟะพั‚ะตะฝั†ะธะฐะปัŒะฝะพ ะผะพะถะตั‚ ะฑั‹ั‚ัŒ ะธัะฟะพะปัŒะทะพะฒะฐะฝะพ ะฐั‚ะฐะบัƒัŽั‰ะธะผ ะดะปั ะพั€ะณะฐะฝะธะทะฐั†ะธะธ ะฒั‹ะฟะพะปะฝะตะฝะธั ัะฒะพะตะณะพ ะบะพะดะฐ ะฒะฝะต ะธะทะพะปะธั€ะพะฒะฐะฝะฝะพะณะพ ะพะบั€ัƒะถะตะฝะธั WASI.

Wasmtime ะฟั€ะตะดัั‚ะฐะฒะปัะตั‚ ัะพะฑะพะน runtime ะดะปั ะฒั‹ะฟะพะปะฝะตะฝะธั WebAssembly-ะฟั€ะธะปะพะถะตะฝะธะน ั ั€ะฐััˆะธั€ะตะฝะธัะผะธ WASI (WebAssembly System Interface) ะบะฐะบ ะพะฑั‹ั‡ะฝั‹ั… ะพะฑะพัะพะฑะปะตะฝะฝั‹ั… ะฟั€ะธะปะพะถะตะฝะธะน. ะ˜ะฝัั‚ั€ัƒะผะตะฝั‚ะฐั€ะธะน ะฝะฐะฟะธัะฐะฝ ะฝะฐ ัะทั‹ะบะต Rust, ะฐ ัƒัะทะฒะธะผะพัั‚ัŒ ะฒั‹ะทะฒะฐะฝะฐ ะปะพะณะธั‡ะตัะบะพะน ะพัˆะธะฑะบะพะน ะฟั€ะธ ะพะฟั€ะตะดะตะปะตะฝะธะธ ะฟั€ะฐะฒะธะป ะปะธะฝะตะนะฝะพะน ะฐะดั€ะตัะฐั†ะธะธ ะฟะฐะผัั‚ะธ ะฒ ะณะตะฝะตั€ะฐั‚ะพั€ะต ะบะพะดะฐ Cranelift, ั‚ั€ะฐะฝัะปะธั€ัƒัŽั‰ะตะผ ะฝะตะทะฐะฒะธัะธะผะพะต ะพั‚ ะฐะฟะฟะฐั€ะฐั‚ะฝั‹ั… ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ ะฟั€ะพะผะตะถัƒั‚ะพั‡ะฝะพะต ะฟั€ะตะดัั‚ะฐะฒะปะตะฝะธะต ะฒ ะธัะฟะพะปะฝัะตะผั‹ะน ะผะฐัˆะธะฝะฝั‹ะน ะบะพะด ะดะปั ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ั‹ x86_64.

ะ’ ั‡ะฐัั‚ะฝะพัั‚ะธ, ะดะปั WebAssembly-ะฟั€ะธะปะพะถะตะฝะธะน ั€ะฐััั‡ะธั‚ั‹ะฒะฐะปะธััŒ 35-ั€ะฐะทั€ัะดะฝั‹ะต ัั„ั„ะตะบั‚ะธะฒะฝั‹ะต ะฐะดั€ะตัะฐ ะฒะผะตัั‚ะพ ั€ะฐะทั€ะตัˆั‘ะฝะฝั‹ั… ะฒ WebAssembly 33-ั€ะฐะทั€ัะดะฝั‹ั… ะฐะดั€ะตัะพะฒ, ั‡ั‚ะพ ัะดะฒะธะณะฐะปะพ ะณั€ะฐะฝะธั†ัƒ ะดะพะฟัƒัั‚ะธะผะพะน ะดะปั ะพะฟะตั€ะฐั†ะธะน ั‡ั‚ะตะฝะธั ะธ ะทะฐะฟะธัะธ ะฒะธั€ั‚ัƒะฐะปัŒะฝะพะน ะฟะฐะผัั‚ะธ ะดะพ 34 ะ“ะ‘, ะฒ ั‚ะพ ะฒั€ะตะผั ะบะฐะบ ะฝะฐัั‚ั€ะพะนะบะธ sandbox-ะพะบั€ัƒะถะตะฝะธั ะฟั€ะตะดะพัั‚ะฐะฒะปััŽั‚ ะทะฐั‰ะธั‚ัƒ ะดะปั 6 ะ“ะ‘ ะพั‚ ะฑะฐะทะพะฒะพะณะพ ะฐะดั€ะตัะฐ. ะ’ ะธั‚ะพะณะต, ะดะธะฐะฟะฐะทะพะฝ ะฒะธั€ั‚ัƒะฐะปัŒะฝะพะน ะฟะฐะผัั‚ะธ ะพั‚ 6 ะดะพ 34 ะ“ะ‘ ะพั‚ ะฑะฐะทะพะฒะพะณะพ ะฐะดั€ะตัะฐ ะพะบะฐะทั‹ะฒะฐะปัั ะดะพัั‚ัƒะฟะตะฝ ะดะปั ั‡ั‚ะตะฝะธั ะธ ะทะฐะฟะธัะธ ะธะท WebAssembly-ะฟั€ะธะปะพะถะตะฝะธะน. ะ’ ะดะฐะฝะฝะพะน ะฟะฐะผัั‚ะธ ะผะพะณัƒั‚ ั€ะฐะทะผะตั‰ะฐั‚ัŒัั ะดั€ัƒะณะธะต ะพะบั€ัƒะถะตะฝะธั WebAssembly ะธะปะธ ะบะพะผะฟะพะฝะตะฝั‚ั‹ WebAssembly runtime.

ะŸั€ะธ ะฝะตะฒะพะทะผะพะถะฝะพัั‚ะธ ะพะฑะฝะพะฒะธั‚ัŒ ะฒะตั€ัะธัŽ Wasmtime ะฒ ะบะฐั‡ะตัั‚ะฒะต ะพะฑั…ะพะดะฝั‹ั… ะฟัƒั‚ะตะน ะดะปั ะฑะปะพะบะธั€ะพะฒะฐะฝะธั ะพัˆะธะฑะบะธ ัƒะฟะพะผะธะฝะฐะตั‚ัั ัƒะบะฐะทะฐะฝะธะต ะพะฟั†ะธะธ ยซConfig::static_memory_maximum_size(0)ยป ะดะปั ะฒะบะปัŽั‡ะตะฝะธั ะพะฑัะทะฐั‚ะตะปัŒะฝะพะน ะพั‚ะดะตะปัŒะฝะพะน ะฟั€ะพะฒะตั€ะบะธ ะณั€ะฐะฝะธั† ะฟั€ะธ ะปัŽะฑะพะผ ะดะพัั‚ัƒะฟะต ะบ ะปะธะฝะตะนะฝะพะน ะฟะฐะผัั‚ะธ (ะฟั€ะธะฒะพะดะธั‚ ะบ ััƒั‰ะตัั‚ะฒะตะฝะฝะพะผัƒ ัะฝะธะถะตะฝะธัŽ ะฟั€ะพะธะทะฒะพะดะธั‚ะตะปัŒะฝะพัั‚ะธ). ะ”ั€ัƒะณะธะผ ะฒะฐั€ะธะฐะฝั‚ะพะผ ัะฒะปัะตั‚ัั ะธัะฟะพะปัŒะทะพะฒะฐะฝะธะต ะฝะฐัั‚ั€ะพะนะบะธ ยซConfig::static_memory_guard_size(1 < 36)ยป ะดะปั ัƒะฒะตะปะธั‡ะตะฝะธั ั‡ะธัะปะฐ ั ัั‚ะพั€ะพะถะตะฒั‹ั… ัั‚ั€ะฐะฝะธั† ะฟะฐะผัั‚ะธ (Guard Page, ะฟั€ะธ ะพะฑั€ะฐั‰ะตะฝะธะธ ะณะตะฝะตั€ะธั€ัƒะตั‚ัั ะธัะบะปัŽั‡ะตะฝะธะต), ั€ะฐะทะผะตั‰ะฐะตะผั‹ั… ะฒ ะฟั€ะพะฑะปะตะผะฝะพะผ ะดะธะฐะฟะฐะทะพะฝะต ะฒะธั€ั‚ัƒะฐะปัŒะฝะพะน ะฟะฐะผัั‚ะธ (ะฟั€ะธะฒะพะดะธั‚ ะบ ั€ะตะทะตั€ะฒะธั€ะพะฒะฐะฝะธัŽ ะฑะพะปัŒัˆะพะณะพ ะพะฑัŠั‘ะผะฐ ะฒะธั€ั‚ัƒะฐะปัŒะฝะพะน ะฟะฐะผัั‚ะธ ะธ ะพะณั€ะฐะฝะธั‡ะตะฝะธัŽ ั‡ะธัะปะฐ ะพะดะฝะพะฒั€ะตะผะตะฝะฝะพ ะฒั‹ะฟะพะปะฝัะตะผั‹ั… WebAssembly-ะฟั€ะธะปะพะถะตะฝะธะน).

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: opennet.ru

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™