ΠΠΎΡΠΈΠ³ΠΈΡΠ°ΡΠΈΡΠ΅ Π°ΠΊΡΡΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ 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