Google Adds V8 Sandbox To Chrome To Fight Against Browser Attacks


A Sandbox is a protective medium that blocks the entire system from any application accessing vulnerable resources. 

Restrictive environments for web content in browsers called sandboxes reduce the impact that can be caused by browser-based attacks such as malicious programs or infected scripts. 

This helps limit, to some extent, the damage attackers can do to the user’s device or data.

After years of development, the V8 Sandbox—a lightweight, in-process sandbox for the V8 JavaScript engine—has advanced enough to be included in Chrome’s Vulnerability Reward Program, marking an important step towards becoming a strong security boundary. 

Google Adds V8 Sandbox

After years in development, the V8 Sandbox – a lightweight, in-process sandbox for V8 JavaScript engine – has advanced enough to be included in Chrome’s Vulnerability Reward Program, marking an important step towards becoming a strong security boundary. 

Though issues remain before full enforcement, Chrome 123 represents a “beta” release showcasing how the sandbox prevents V8 memory corruptions from spreading within the host process.

When number conversion is performed as part of user-defined callbacks, there might be some hidden vulnerability.

Document

Stop Advanced Phishing Attack With AI

Trustifi’s Advanced threat protection prevents the widest spectrum of sophisticated attacks before they reach a user’s mailbox. Stopping 99% of phishing attacks missed by
other email security solutions. .

However, this demonstrates why modern JavaScript engines are usually attacked by flawed logic rather than memory corruption-style bugs. 

Consequently, memory-safe languages could help in preventing such problems from happening within handwritten runtime code but do nothing to prevent logic bugs due to optimized JIT compilers generating unsafe code.

The inter-object corruption detection in V8 has no space for tag bits because of pointer compression.

While some specific applications have proven their efficiency, they do not work effectively with complicated logic bugs in JavaScript engines.

Using the sandbox approach like in operating systems where there is a separation between user and kernel allows the use of V8’s memory isolation for preventing potential exploits.

However, the current software-based sandbox does not allow memory access outside of the vulnerable data types as it replaces them.

To create a read/write primitive, the attacker has to manipulate either the size or buffer pointer. 

Outcomes (Source – V8)

With the sandbox active, assuming the buffer resides within, the object is transformed to include a sandbox_ptr_t offset and a sandbox-compatible size. 

Sandbox design (Source – V8)

In contrast, if the buffer is external, the object changes with an external_ptr_t that references the buffer through pointer table indirection like those in memory safety mechanisms such as Unix kernels’ file descriptor table or WebAssembly.Table.

The published post states that the V8 Sandbox, which can be enabled or disabled by the v8_enable_sandbox flag, has to use a 64-bit system at build time because it reserves one TB of virtual address space.

For the past two years, Chrome versions have supported it by default to ensure stability and gather performance data.

These had to be bypassed in recent exploits, providing early security feedback.

The current memory safety limitations are not being prevented by something, but this new mechanism prevents V8 memory corruption from affecting other processes required for optimizing the JavaScript engine.

Secure your emails in a heartbeat! To find your ideal email security vendor, Take a Free 30-Second Assessment.



Source link