Live data from Hacker News

Chrome zero-day released on GitHub – fixed on V8 but still works on latest

github.com

91–100 of 160 posts

Re: Chrome zero-day released on GitHub – fixed on V8 but still works on latest

#91
post #34

https://therecord.media/security-researcher-drops-chrome-and... says this isn't a fully weaponizable exploit because you still need to escape the Chrome sandbox after using this. But, the researcher shows a screenshot of having started calc.exe which seems like something that'd happen outside the sandbox?

I would imagine the researcher showed a screenshot of the exploit being run on a copy of Chrom{e,ium} where he had disabled parts of the sandbox (that, or he has a more complex exploit with another maybe-undisclosed sandbox escape).

Hey I'm the exploit author, just run "chrome.exe --no-sandbox exploit.html" it will work.

Re: Chrome zero-day released on GitHub – fixed on V8 but still works on latest

#92
post #49
post #15

So what does it do? https://github.com/r4j0x00/exploits/blob/7ba55e5ab034d058774...

Visibly, it launches calc.exe on Windows. But only reproes if launches as file:///

Nope, it will also work with a http url. Just run chrome.exe with --no-sandbox flag

Re: Chrome zero-day released on GitHub – fixed on V8 but still works on latest

#93
post #15

So what does it do? https://github.com/r4j0x00/exploits/blob/7ba55e5ab034d058774...

Broadly speaking, the wasm stuff is only there as a method of getting the browser to execute shellcode, its a pretty standard lump of code for turning a memory bug into code execution in v8. What this shellcode does is open calculator when the browser's sandbox is disabled (`--no-sandbox`). In general in v8 exploitation, once you've reached a point where you can read and write arbitrary memory, you find that v8 will only create either RW or RX pages for you when the JIT compilation happens. WASM is a neat little trick for getting a handle to a RWX page.

At first glance to me, the core bug is actually in abusing an array enough to get an unsigned int into a function that expects them all to be signed, causing an off-by-one error and leveraging that into a memory leak (to get the pointer to a FixedArray for floats and a pointer to a FixedArray of objects) and then replacing one with another to create a type confusion and read/write arbitrary memory through that. r4j will probably correct me on the subtlety here though!

Source: extremely similar to HackTheBox RopeTwo, which I spent more time than I am prepared to admit solving.

Disclaimer: am noob at v8 exploitation, but have done enough of it to know some of the tricks.

See also, an article that helped me previously, much of the code is similar (eg: the WASM stuff, the addrof() and fakeobj() methods): https://faraz.faith/2019-12-13-starctf-oob-v8-indepth/

Re: Chrome zero-day released on GitHub – fixed on V8 but still works on latest

#94
post #40

Can someone please explain how this hack works? (I am CS major so I know basic stuff but not a hacker)

It uses WebAssembly VM bug to get arbitrary memory address write/read capability within Chromium sandbox.

The actual bug is much before this though, WASM is just used to get a RWX page of memory, as v8 won't give JS that the other side of the JIT process.

Re: Chrome zero-day released on GitHub – fixed on V8 but still works on latest

#95
post #16

Interesting how it's firing up a wasm instance to gain access to rwx memory. See also https://news.ycombinator.com/item?id=26737803

We've had multiple exploit chains so far thanks to wasm in v8. IIRC someone developed a full exploit chain to get persistent root on chromebooks with a bug in v8's wasm implementation as the starting point, got a big bug bounty out of that one. That particular exploit also involved some holes in the chrome extensions security model (I believe they addressed them)

Re: Chrome zero-day released on GitHub – fixed on V8 but still works on latest

#96
post #44

my patch: delete WebAssembly injected with uBlock into every browser context before page loads.

Considering that JS is JIT'd (and V8 has had JS based RCEs in the past), is there any reason to believe webasm is a significant security hole?

WebAssembly (and asm.js) add additional attack surface to V8, and multiple attacks (including this one) are not possible without that

Re: Chrome zero-day released on GitHub – fixed on V8 but still works on latest

#97

So WebAssembly is basically Flash in terms of security?

Not at all. Flash was pretty much built insecure, WebAssembly runs in a sandbox by default (and this exploit does not break out of it).

Kind of a dishonest characterization - Flash was sandboxed too. WASM is simply easier to sandbox and has additional constraints that make it easier to keep code from trying to break out.

Re: Chrome zero-day released on GitHub – fixed on V8 but still works on latest

#98

Do not casually browse the web with JavaScript enabled. The idea of trustless secure computing is compelling but it’s ultimately not reality. There is a new browser engine rce vulnerability on a regular basis, whether it’s chrome or mobilesafari

Or, you know, simply do whatever you want in a VM.

Re: Chrome zero-day released on GitHub – fixed on V8 but still works on latest

#99
post #57

Earlier quoted context omitted.

The pr adding this says that you need to run chrome with —no-sandbox to get the exploit chain (since they don’t have a sandbox buster right now). Kinda feel like the PR to metasploit is more interesting as a link

Couldn't find the PR you're referring to, unless it was this one https://github.com/rapid7/metasploit-framework/pull/15007 which was added by the same author as the OP, but looks like a different exploit as far as I can tell?

I believe it's the same exploit, check out this reference here [0], and you should see the JS snippet

https://github.com/rapid7/metasploit-framework/pull/15007/fi...

Re: Chrome zero-day released on GitHub – fixed on V8 but still works on latest

#100
See also this interesting series by Google Project Zero https://googleprojectzero.blogspot.com/2021/01/introducing-i... about some recent Chrome 0-days that seem to have been exploited by “Western government operatives actively conducting a counterterrorism operation”.

This is to say that with enough time, a sufficiently sophisticated and motivated actor can always find 0-days and achieve their goals.

The related article was discussed recently: https://news.ycombinator.com/item?id=26590862

Post reply on HN