diff --git a/Userland/Libraries/LibWasm/AbstractMachine/AbstractMachine.cpp b/Userland/Libraries/LibWasm/AbstractMachine/AbstractMachine.cpp index 73d46f8d844..0e7fc3bb431 100644 --- a/Userland/Libraries/LibWasm/AbstractMachine/AbstractMachine.cpp +++ b/Userland/Libraries/LibWasm/AbstractMachine/AbstractMachine.cpp @@ -345,7 +345,9 @@ InstantiationResult AbstractMachine::instantiate(Module const& module, Vector instance->size()) { + Checked checked_offset = data.init.size(); + checked_offset += offset; + if (checked_offset.has_overflow() || checked_offset > instance->size()) { instantiation_result = InstantiationError { ByteString::formatted("Data segment attempted to write to out-of-bounds memory ({}) in memory of size {}", offset, instance->size())