The Chromium security team recently published the results of an analysis of 912 high or critical severity bugs going back to 2015. The analysis shows that around 70% of these bugs are memory management and safety problems. According to ZDNet, Microsoft reported the same analysis in regards to Windows last year. Both Google and Microsoft point to C and C++ as the source of the problem. These programming languages do not warn or restrict developers from making memory management errors, resulting in code riddled with bugs.
The Chromium security team states that this problem has traditionally been handled through the use of sandboxing:
Chromium’s security architecture has always been designed to assume that these bugs exist, and code is sandboxed to stop them taking over the host machine.
However, the team reports that they are reaching the limits of sandboxing. As a result, they are looking for new strategies to address the memory management errors. One possibility being considered is the development of custom C++ libraries that are less susceptible to memory management bugs.
Another possibility is a switch to safer programming languages. One contender listed by the security team is Rust, which was designed by Mozilla specifically to address memory safety, and is used in Firefox. ZDNet reports that Microsoft has been experimenting with Rust and is working to develop its own “completely memory safe” programming language, currently dubbed “Project Verona.”
That said, for now, Firefox is the only major web browser without memory management errors.