Google Working on Improving Memory Safety in Chrome
Google this week shared some details on its long-term plan to improve memory safety in Chrome, while also announcing the first stable release of Chrome 94, which patches a total of 19 vulnerabilities.
Over 70% of the severe bugs identified last year in Chrome were memory safety issues, namely “mistakes with pointers in the C or C++ languages,” and Google decided to tackle the problem before it becomes even more serious.
Of the potential solutions, the Internet search giant decided to focus on two, namely introducing runtime checks to ensure that pointers are correct, and seeking a different memory safe programming language.
“Runtime checks have a performance cost. Checking the correctness of a pointer is an infinitesimal cost in memory and CPU time. But with millions of pointers, it adds up,” Google notes.
Even so, this was deemed a desirable option, and, despite performance loss, Google is experimenting with it alongside attempts to find a suitable replacement for C++, most likely Rust, which is largely compile-time safe.
“[T]he Rust compiler spots mistakes with pointers before the code even gets to your device, and thus there’s no performance penalty,” Google explains.
For the time being, however, the company is only interested in the manner in which it can make C++ and Rust work together, and has already started non-user-facing Rust experiments.
In the meantime, Windows, Mac, and Linux users can now download Chrome 94.0.4606.54, which patches 19 security holes, including 17 externally-reported: five high-severity, ten medium-severity, and two low-severity vulnerabilities.
The most important of the high-severity issues appears to be CVE-2021-37956, a use-after-free flaw in Offline use, for which Google awarded a $15,000 bounty reward.
The company also paid $7,500 for a use-after-free bug in WebGPU, $3,000 for inappropriate implementation in Navigation, and $1,000 for a use-after-free issue in Task Manager.
Google also says it paid high rewards for five medium-severity vulnerabilities: $10,000 each for a use-after-free flaw in Tab Strip and another in Performance Manager, and $3,000 each for side-channel information leakage in DevTools, inappropriate implementation in ChromeOS Networking, and inappropriate implementation in Background Fetch API.
Overall, Google handed out over $56,000 in bounty payouts to the reporting researchers, but the total amount is likely much higher, given that the company has yet to reveal the rewards for seven of the addressed issues.