From 6b51c61f5e50573f672916a7df953a2704b823f4 Mon Sep 17 00:00:00 2001 From: YAMAMOTO Takashi Date: Wed, 6 Aug 2025 11:40:56 +0900 Subject: [PATCH] wasi-nn: fix set_input memory address validation for the legacy abi (#4534) cf. https://github.com/bytecodealliance/wasm-micro-runtime/issues/3223 --- .../libraries/wasi-nn/src/utils/wasi_nn_app_native.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/core/iwasm/libraries/wasi-nn/src/utils/wasi_nn_app_native.c b/core/iwasm/libraries/wasi-nn/src/utils/wasi_nn_app_native.c index 4d56fed93..b44f45aac 100644 --- a/core/iwasm/libraries/wasi-nn/src/utils/wasi_nn_app_native.c +++ b/core/iwasm/libraries/wasi-nn/src/utils/wasi_nn_app_native.c @@ -108,9 +108,18 @@ tensor_data_app_native(wasm_module_inst_t instance, uint32_t total_elements, #define data_size total_elements #endif + uint64 data_size_in_bytes = data_size; +#if WASM_ENABLE_WASI_EPHEMERAL_NN == 0 + data_size_in_bytes *= sizeof(float); + if (data_size_in_bytes / sizeof(float) != data_size) { + /* overflow */ + return invalid_argument; + } +#endif + if (!wasm_runtime_validate_app_addr(instance, (uint64)input_tensor_wasm->data_offset, - (uint64)data_size)) { + data_size_in_bytes)) { NN_ERR_PRINTF("input_tensor_wasm->data_offset is invalid"); return invalid_argument; }