Earlier quoted context omitted.
Memory issues and JIT bugs mostly :) https://microsoftedge.github.io/edgevr/posts/Super-Duper-Sec... >Looking at CVE (Common Vulnerabilities and Exposures) data after 2019 shows that roughly 45% of CVEs issued for V8 were related to the JIT engine. Moreover, we know that attackers weaponize and abuse these bugs as well; an analysis from Mozilla shows that over half of the “in the wild” Chrome exploits abused a JIT bu…
How Rust's memory safety can help to solve JIT generating bug code? BTW Chromium is testing rewriting critical parts in Rust ( https://chromium.googlesource.com/chromium/src/+/refs/heads/... )
Google pushes emergency Chrome update to fix 8th zero-day in 2022
31–40 of 51 posts
Re: Google pushes emergency Chrome update to fix 8th zero-day in 2022
#32Earlier quoted context omitted.
I don't know, C, C++, Objective-C, and everything else that might be copy-paste compatible with C semantics regarding strings, arrays, pointers and lack of bounds checking by default? Even if C++ and Objective-C are much better in that regard, as they offer bounds checked versions of those critical data stuctures, many devs just keep coding the good old ways, because performance trumps any attempt for security, until…
Do you know why/if a sanitizer is not enough to catch these bugs at runtime (and during their automated tests)?
Re: Google pushes emergency Chrome update to fix 8th zero-day in 2022
#33Honest question: where do all of the new zero day vulnerabilities come from, new features/code? Just new bug detection techniques? I'd think over time entropy would get us to a point where there's hardly any vulnerabilities at all, but that's clearly not the case.
Memory issues and JIT bugs mostly :) https://microsoftedge.github.io/edgevr/posts/Super-Duper-Sec... >Looking at CVE (Common Vulnerabilities and Exposures) data after 2019 shows that roughly 45% of CVEs issued for V8 were related to the JIT engine. Moreover, we know that attackers weaponize and abuse these bugs as well; an analysis from Mozilla shows that over half of the “in the wild” Chrome exploits abused a JIT bu…
Re: Google pushes emergency Chrome update to fix 8th zero-day in 2022
#34Earlier quoted context omitted.
Memory issues and JIT bugs mostly :) https://microsoftedge.github.io/edgevr/posts/Super-Duper-Sec... >Looking at CVE (Common Vulnerabilities and Exposures) data after 2019 shows that roughly 45% of CVEs issued for V8 were related to the JIT engine. Moreover, we know that attackers weaponize and abuse these bugs as well; an analysis from Mozilla shows that over half of the “in the wild” Chrome exploits abused a JIT bu…
i'd say that most of this code would have to live in unsafe rust
Re: Google pushes emergency Chrome update to fix 8th zero-day in 2022
#35Honest question: where do all of the new zero day vulnerabilities come from, new features/code? Just new bug detection techniques? I'd think over time entropy would get us to a point where there's hardly any vulnerabilities at all, but that's clearly not the case.
https://chromium.googlesource.com/chromium/src.git/+/6b4af5d...
"Fix potential OOB problem with validating command decoder"
If that's truly the one then presumably the fix is rolling out now. From looking over the diff, the problem is likely to be quite old. Originally the rendering engine could talk directly to the GPU but when WebGL was introduced this was changed, supposedly because GPU drivers aren't hardened against malicious input and so WebGL - being a low level API - could have been used to get control over the renderer process from JavaScript by exploiting GL driver bugs.
Since then the renderer talks to a special libGL that serializes the GL command stream and writes it over a socket to the GPU process which then deserializes it, checking the stream for validity along the way before calling the "real" GL driver (which is probably ANGLE and thus another libGL emulation but that's by the by).
The bug in question is to do with insufficient validation of that command stream, specifically, the "level" parameter in a texture call wasn't being checked against the maximum mipmap level, but rather only against a different level limit.
Probably it means that JS using WebGL would have been able to craft an invalid texture and break into the GPU process this way. The GPU process is itself sandboxed but from there the malicious code could then e.g. see the contents of other tabs, and you're probably in a better position to break out of the sandbox entirely.
Although it's possible that the bug was introduced recently, on such a hot codepath and in such a fundamental function of the GPU command stream subsystem it seems much more likely that it was just never realized until now. That said, the GPU subsystem gets a LOT of commits so who knows.
Edit: notice this comment on the commit, so it suggests a design issue in old code that wasn't realized until recently: "this is a known vulnerability pattern that we only recently learned about, so we might not trust all of our validation code yet."
Re: Google pushes emergency Chrome update to fix 8th zero-day in 2022
#36Re: Google pushes emergency Chrome update to fix 8th zero-day in 2022
#37Earlier quoted context omitted.
Memory issues and JIT bugs mostly :) https://microsoftedge.github.io/edgevr/posts/Super-Duper-Sec... >Looking at CVE (Common Vulnerabilities and Exposures) data after 2019 shows that roughly 45% of CVEs issued for V8 were related to the JIT engine. Moreover, we know that attackers weaponize and abuse these bugs as well; an analysis from Mozilla shows that over half of the “in the wild” Chrome exploits abused a JIT bu…
Chrome code size is giant, it's hard to "just" rewrite it to Rust. There seem to be some experiments with adding Rust code slowly, but there seem to be some interop issues.
Re: Google pushes emergency Chrome update to fix 8th zero-day in 2022
#38Earlier quoted context omitted.
Do you know why/if a sanitizer is not enough to catch these bugs at runtime (and during their automated tests)?
Google invests heavily in sanitizers. It funded the development of the ones that ship with LLVM.
Re: Google pushes emergency Chrome update to fix 8th zero-day in 2022
#39Earlier quoted context omitted.
Do you know why/if a sanitizer is not enough to catch these bugs at runtime (and during their automated tests)?
sanitizers don't work because they only check the paths that you actually run them on. vulnerabilities come from the weird combination of edge cases you didn't test.
Re: Google pushes emergency Chrome update to fix 8th zero-day in 2022
#40Honest question: where do all of the new zero day vulnerabilities come from, new features/code? Just new bug detection techniques? I'd think over time entropy would get us to a point where there's hardly any vulnerabilities at all, but that's clearly not the case.
Reading their blog gives insight on how they find these. For example, for CVE-2021-30869 they discovered on a "watering-hole" website (i.e. some group in china hacked a hong kong protesting website and hosted an 0day on it to exploit protestors' devices). I'm guessing Google has methods to scrape the entire web looking for these browser exploits