Security is critical to Chrome, and many features protect Chrome users as they browse the web. Google Safe Browsing warns users away from websites known to be dangerous. Chrome’s sandbox and multi-process architecture provide additional layers of defense by helping block malware installation and reducing the severity of vulnerabilities. In Chrome 56, we’ve added yet another layer of defense by fully isolating Chrome extension privileges from web pages.
Chrome has always kept extensions and web pages in different processes where possible, but sometimes extensions host web content in iframes. For example, an extension’s options page may include social network buttons or ads. Until recently, these web iframes ran inside the extension’s process. This is usually safe because security checks inside that process do not allow web iframes to use extension APIs. However, in rare cases malicious web iframes could exploit bugs to bypass these checks and use the same privileged APIs that are available to extensions, like chrome.history.
Chrome now uses out-of-process iframes to ensure that extension-hosted web iframes are never put into their parent extension process. Even if an extension’s web iframe finds a Chrome bug and takes over its own web process, that process won’t have access to extension APIs.
With this launch, web iframes in extension pages now run in a separate process from the extension, adding an extra layer of protection to privileged APIs.
Introducing out-of-process iframes will greatly strengthen Chrome’s security model, though building them required a large change to Chrome’s architecture affecting systems like painting, input events, and navigation. This launch is just the first phase of our Site Isolation project, so stay tuned for even more security improvements that out-of-process iframes make possible.