[webkit-changes] [WebKit/WebKit] 0db3ed: [Wasm] WasmToJSCallee should hold the boxed as a m...
Keith Miller
noreply at github.com
Wed Jan 8 15:28:43 PST 2025
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 0db3edf9d8018f0a58765d9e27c625739102f04d
https://github.com/WebKit/WebKit/commit/0db3edf9d8018f0a58765d9e27c625739102f04d
Author: Keith Miller <keith_miller at apple.com>
Date: 2025-01-08 (Wed, 08 Jan 2025)
Changed paths:
A JSTests/wasm/stress/table-set-to-js-then-grow.js
M Source/JavaScriptCore/wasm/WasmCallee.cpp
M Source/JavaScriptCore/wasm/WasmCallee.h
M Source/JavaScriptCore/wasm/WasmTable.cpp
M Source/JavaScriptCore/wasm/WasmTable.h
Log Message:
-----------
[Wasm] WasmToJSCallee should hold the boxed as a member for Function Tables
https://bugs.webkit.org/show_bug.cgi?id=285626
rdar://142475225
Reviewed by Yusuke Suzuki and Justin Michaud.
Right now we're using the table's backing store as the boxed callee load location. Tables can grow though
so that address could get realloced and thus be stale leading to a UAF. This patch puts the boxed load
location into the WasmToJSCallee instead. This doesn't increase the effective size of WasmToJSCalle as it's
40 bytes today so there's an extra 8 bytes from our malloc's atom size.
* JSTests/wasm/stress/table-set-to-js-then-grow.js: Added.
(from.string_appeared_here.import.as.assert.from.string_appeared_here.let.wat.module.type.ri.func.result.i32.import.string_appeared_here.string_appeared_here.func.foo.result.i32.export.string_appeared_here.func.foo.table.table.0.funcref.func.export.string_appeared_here.param.funcref.result.i32.table.grow.table.ref.null.func.i32.const.1.drop.table.table.i32.const.0.local.0.table.grow.table.ref.null.func.i32.const.10.drop.call_indirect.table.type.ri.i32.const.0.foo):
* Source/JavaScriptCore/wasm/WasmCallee.cpp:
(JSC::Wasm::WasmToJSCallee::WasmToJSCallee):
* Source/JavaScriptCore/wasm/WasmCallee.h:
* Source/JavaScriptCore/wasm/WasmTable.cpp:
(JSC::Wasm::FuncRefTable::setFunction):
* Source/JavaScriptCore/wasm/WasmTable.h:
Canonical link: https://commits.webkit.org/288618@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list