[sandbox] Sandboxify WasmIndirectFunctionTable The WasmIndirectFunctionTable object used to contain a number of raw pointers to buffers allocated via malloc: the sig_ids and targets fields. As these were raw pointers, they could be abused by an attacker to access memory outside of the sandbox, and thereby break out of it. This CL now simply turns these two buffers into on-heap ByteArrays. In the future, we'll also need to prevent an attacker from manipulating the contents of these arrays (at least of the targets array, which contains function entrypoints), but we'll need additional sandbox infrastructure before we can do so. Bug: v8:10391, chromium:1432210 Change-Id: Ide63b241761d97fc110bc7369032e30bc946f295 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/4418966 Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Samuel Groß <saelo@chromium.org> Cr-Commit-Position: refs/heads/main@{#87084}
V8 is Google's open source JavaScript engine.
V8 implements ECMAScript as specified in ECMA-262.
V8 is written in C++ and is used in Google Chrome, the open source browser from Google.
V8 can run standalone, or can be embedded into any C++ application.
V8 Project page: https://v8.dev/docs
Checkout depot tools, and run
fetch v8
This will checkout V8 into the directory v8 and fetch all of its dependencies. To stay up to date, run
git pull origin
gclient sync
For fetching all branches, add the following into your remote configuration in .git/config:
fetch = +refs/branch-heads/*:refs/remotes/branch-heads/*
fetch = +refs/tags/*:refs/tags/*
Please follow the instructions mentioned at v8.dev/docs/contribute.