ืคื’ื™ืขื•ืช ืงืจื™ื˜ื™ืช ื‘- Wasmtime, ื–ืžืŸ ืจื™ืฆื” ืขื‘ื•ืจ ื™ื™ืฉื•ืžื™ WebAssembly

ื”ืขื“ื›ื•ื ื™ื ื”ืžืชืงื ื™ื Wasmtime 6.0.1, 5.0.1 ื•-4.0.1 ืชื™ืงื ื• ืืช ื”ืคื’ื™ืขื•ืช (CVE-2023-26489), ืฉื”ื•ืงืฆื” ืœื” ืจืžืช ืกื›ื ื” ืงืจื™ื˜ื™ืช. ื”ืคื’ื™ืขื•ืช ืžืืคืฉืจืช ื›ืชื™ื‘ืช ื ืชื•ื ื™ื ืœืื–ื•ืจ ื–ื™ื›ืจื•ืŸ ืžื—ื•ืฅ ืœื’ื‘ื•ืœื•ืช ื”ืžื•ืชืจื™ื ืœืงื•ื“ WebAssembly ืžื‘ื•ื“ื“, ืฉืขืœื•ืœ ืœืฉืžืฉ ืชื•ืงืฃ ื›ื“ื™ ืœื‘ืฆืข ืืช ื”ืงื•ื“ ืฉืœื• ืžื—ื•ืฅ ืœืกื‘ื™ื‘ืช WASI ื”ืžื‘ื•ื“ื“ืช.

Wasmtime ื”ื•ื ื–ืžืŸ ืจื™ืฆื” ืœื”ืคืขืœืช ื™ื™ืฉื•ืžื™ WebAssembly ืขื ื”ืจื—ื‘ื•ืช WASI (WebAssembly System Interface) ื›ื™ื™ืฉื•ืžื™ื ืขืฆืžืื™ื™ื ืจื’ื™ืœื™ื. ืขืจื›ืช ื”ื›ืœื™ื ื›ืชื•ื‘ื” ื‘ืฉืคืช Rust, ื•ื”ืคื’ื™ืขื•ืช ื ื’ืจืžืช ืžืฉื’ื™ืื” ืœื•ื’ื™ืช ื‘ื”ื’ื“ืจืช ื›ืœืœื™ ื›ืชื•ื‘ืช ื–ื™ื›ืจื•ืŸ ืœื™ื ื™ืืจื™ื™ื ื‘ืžื—ื•ืœืœ ื”ืงื•ื“ ืฉืœ Cranelift, ื”ืžืชืจื’ืžืช ื™ื™ืฆื•ื’ ื‘ื™ื ื™ื™ื ื‘ืœืชื™ ืชืœื•ื™ ื‘ืืจื›ื™ื˜ืงื˜ื•ืจื•ืช ื—ื•ืžืจื” ืœืงื•ื“ ืžื›ื•ื ื” ื‘ืจ ื”ืคืขืœื” ืขื‘ื•ืจ ืืจื›ื™ื˜ืงื˜ื•ืจืช x86_64.

ื‘ืคืจื˜, ืขื‘ื•ืจ ื™ื™ืฉื•ืžื™ WebAssembly, ื›ืชื•ื‘ื•ืช ืืคืงื˜ื™ื‘ื™ื•ืช ืฉืœ 35 ืกื™ื‘ื™ื•ืช ื—ื•ืฉื‘ื• ื‘ืžืงื•ื ื›ืชื•ื‘ื•ืช 33 ืกื™ื‘ื™ื•ืช ื”ืžื•ืชืจื•ืช ื‘-WebAssembly, ืžื” ืฉื”ืขื‘ื™ืจ ืืช ืžื’ื‘ืœืช ื”ื–ื™ื›ืจื•ืŸ ื”ื•ื•ื™ืจื˜ื•ืืœื™ ื”ืžื•ืชืจ ืœืคืขื•ืœื•ืช ืงืจื™ืื” ื•ื›ืชื™ื‘ื” ืœ-34 GB, ื‘ืขื•ื“ ืฉื”ื’ื“ืจื•ืช ืกื‘ื™ื‘ืช ืืจื’ื– ื”ื—ื•ืœ ืžืกืคืงื•ืช ื”ื’ื ื” ืขื‘ื•ืจ 6 GB ืžื›ืชื•ื‘ืช ื”ื‘ืกื™ืก. ื›ืชื•ืฆืื” ืžื›ืš, ื˜ื•ื•ื— ื”ื–ื™ื›ืจื•ืŸ ื”ื•ื™ืจื˜ื•ืืœื™ ื‘ื™ืŸ 6 ืœ-34 GB ืžื›ืชื•ื‘ืช ื”ื‘ืกื™ืก ื”ื™ื” ื–ืžื™ืŸ ืœืงืจื™ืื” ื•ื›ืชื™ื‘ื” ืžื™ื™ืฉื•ืžื™ WebAssembly. ื–ื™ื›ืจื•ืŸ ื–ื” ื™ื›ื•ืœ ืœืืจื— ืกื‘ื™ื‘ื•ืช WebAssembly ืื—ืจื•ืช ืื• ืจื›ื™ื‘ื™ ื–ืžืŸ ืจื™ืฆื” ืฉืœ WebAssembly.

ืื ืœื ื ื™ืชืŸ ืœืขื“ื›ืŸ ืืช ื’ืจืกืช Wasmtime, ืคืชืจื•ืŸ ืขื•ืงืฃ ืœื—ืกื™ืžืช ื”ืฉื’ื™ืื” ื”ื•ื ืœืฆื™ื™ืŸ ืืช ื”ืืคืฉืจื•ืช "Config::static_memory_maximum_size(0)" ื›ื“ื™ ืœืืคืฉืจ ื‘ื“ื™ืงืช ื’ื‘ื•ืœื•ืช ื ืคืจื“ืช ื‘ื›ืœ ื”ื’ื™ืฉื” ืœื–ื™ื›ืจื•ืŸ ื”ืœื™ื ื™ืืจื™ (ื›ืชื•ืฆืื” ืžื›ืš ืœืงื ืก ืžืฉืžืขื•ืชื™ ื‘ื‘ื™ืฆื•ืขื™ื) . ืืคืฉืจื•ืช ื ื•ืกืคืช ื”ื™ื ืœื”ืฉืชืžืฉ ื‘ื”ื’ื“ืจื” "Config::static_memory_guard_size(1 < 36)" ื›ื“ื™ ืœื”ื’ื“ื™ืœ ืืช ืžืกืคืจ ื“ืคื™ ื”ืฉืžื™ืจื” (ื—ืจื™ื’ ืฉื ื–ืจืง ื‘ืขืช ื’ื™ืฉื”) ื”ืžืžื•ืงืžื™ื ื‘ื˜ื•ื•ื— ื”ื–ื™ื›ืจื•ืŸ ื”ื•ื•ื™ืจื˜ื•ืืœื™ ื”ื‘ืขื™ื™ืชื™ (ื›ืชื•ืฆืื” ืžื›ืš ืœืฉืžื•ืจ ื›ืžื•ืช ื’ื“ื•ืœื” ืฉืœ ื–ื™ื›ืจื•ืŸ ื•ื™ืจื˜ื•ืืœื™ ื• ื”ื’ื‘ืœืช ื”ืžืกืคืจ ื”ืžืจื™ืฆื™ื ื‘ื•-ื–ืžื ื™ืช ื™ื™ืฉื•ืžื™ WebAssembly).

ืžืงื•ืจ: OpenNet.ru

ื”ื•ืกืคืช ืชื’ื•ื‘ื”