New Method for Exploiting Chrome v8 Vulnerabilities: Leaking Uninitialized Oddball Implementation for Sandbox Escape

Bypassing Chrome v8 HardenProtect by leaking Sentinel Value

Introduction

A sentinel value is a special value in algorithms, typically used as a termination condition in loops or recursive algorithms. There are many sentinel values in the Chrome source code. Previous research introduced how to achieve arbitrary code execution within the sandbox by leaking the TheHole object. The Google team quickly updated the relevant fixes.

In addition to the TheHole object, there are many other native objects in V8 that should not leak into JS. This article will discuss the Uninitialized Oddball object, which is still applicable in the latest version of V8. It is worth noting that this method has a certain degree of generality and has appeared in multiple vulnerabilities.

Exclusive Reveal on Bypassing Chrome v8 HardenProtect via Leaked Sentinel Value

Sentinel Value in V8

Most of the native objects in v8 are defined in the v8/src/roots/roots.h file, and these objects are arranged sequentially in memory. Once a native object that should not be leaked is leaked into Javascript, arbitrary code execution can be achieved within the sandbox.

To verify this method, we can leak the Uninitialized Oddball into JavaScript by modifying the native function of v8. Specifically, we can modify the offset relative to the isolate in the %TheHole() function.

Exclusive Reveal: Bypassing Chrome v8 HardenProtect through Sentinel Value Leak

Bypass HardenType

Using Uninitialized Oddball can achieve relatively arbitrary read and write. The key is that in the optimized JavaScript read function, it only checks whether the obj's prop attribute is correct, but does not check the value of the key obj.prop. Instead, it directly calculates the offset according to JavaScript semantics to obtain the value of the array. This causes type confusion during the computation, achieving arbitrary read.

Due to Uninitialized Oddball being sorted earlier and being more primitive in v8 memory, it is easier to spoof compared to TheHole object, making it the preferred method to bypass fixes after TheHole mitigation.

The suggested fix is to add a check for the array map when returning array elements from the optimized function, to avoid directly calculating the offset return value.

Exclusive Reveal: Bypassing Chrome v8 HardenProtect through leaked Sentinel Value

Exclusive Reveal: Bypassing Chrome v8 HardenProtect through Leaking Sentinel Value

Exclusive Reveal: Bypassing Chrome v8 HardenProtect Through Leaked Sentinel Value

Exclusive Reveal on Bypassing Chrome v8 HardenProtect through Leaked Sentinel Value

PatchGap Risk Reminder

In addition to paying attention to historical vulnerabilities, one must also be aware of the vulnerabilities that vendors quietly fix in their underlying components. Currently, Skype has not yet patched this vulnerability. The exploitation methods differ slightly between x86 and x64, but both can achieve arbitrary read and write.

This PatchGap not only involves Issue 1352549, but the disclosure of the new method has also significantly reduced the difficulty of exploiting similar vulnerabilities. Hackers can almost complete a full exploitation of the previously leaked Uninitialized Oddball vulnerability without any research.

Exclusive reveal on bypassing Chrome v8 HardenProtect through leaked Sentinel Value

Exclusive Reveal on Bypassing Chrome v8 HardenProtect via Leaked Sentinel Value

Summary

There are many other Sentinel values in v8 that may have similar issues. This gives us some insights:

  1. Are other Uninitialized Oddball leaks also easy to achieve v8 RCE?

  2. Whether such issues should be officially regarded as security issues remains controversial.

  3. During fuzz testing, it may be worth considering adding various Sentinel values as variables.

In any case, such issues will greatly shorten the complete exploitation cycle for hackers. We should remain vigilant about this.

Exclusive Reveal: Bypassing Chrome v8 HardenProtect via Leaked Sentinel Value

SENC-4.74%
View Original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Reward
  • 9
  • Repost
  • Share
Comment
0/400
LiquiditySurfervip
· 08-08 16:54
Is there another small vulnerability in v8? This wave is not small.
View OriginalReply0
SleepTradervip
· 08-08 08:00
I encountered a vulnerability again.
View OriginalReply0
digital_archaeologistvip
· 08-08 04:11
Playing new tricks again tql
View OriginalReply0
MetaMaskVictimvip
· 08-06 23:06
Once again, I got badly caught in the trap of v8.
View OriginalReply0
gas_fee_therapistvip
· 08-05 17:35
v8 has messed up again, security is getting more and more pumped.
View OriginalReply0
GreenCandleCollectorvip
· 08-05 17:34
This vulnerability is quite hardcore, isn't it?
View OriginalReply0
LightningPacketLossvip
· 08-05 17:32
This bug has been fixed again. We need to hurry and repair our server room.
View OriginalReply0
ChainMelonWatchervip
· 08-05 17:32
Ah, this... the Hole Digger has new work again.
View OriginalReply0
ImpermanentLossFanvip
· 08-05 17:31
Wow, v8 actually has this kind of vulnerability.
View OriginalReply0
View More
Trade Crypto Anywhere Anytime
qrCode
Scan to download Gate app
Community
English
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)