The Browser Extension Supply Chain
Browser extensions are supply chain components that sit between users and every website they visit. A compromised extension can read and modify web page content, intercept form submissions, access browsing history, read cookies, and redirect network requests. The attack surface is enormous.
Google's Manifest V3 (MV3) is the most significant change to Chrome's extension platform in over a decade. It restricts extension capabilities, replaces persistent background scripts with ephemeral service workers, and limits the power of content blocking APIs. Google positions MV3 as a privacy and security improvement.
The security improvements are real but limited. MV3 reduces some attack vectors while leaving the fundamental supply chain risks of browser extensions largely unchanged.
Key Security Changes in MV3
Service Workers Replace Background Pages
MV3 replaces persistent background pages with service workers that are terminated when idle and restarted when needed. This change has security implications:
Reduced persistence. Malicious extensions can no longer maintain persistent connections to command-and-control servers from background pages. Service workers are terminated by the browser, forcing any persistent communication to restart — which creates more observable network patterns.
Memory safety. Terminating idle service workers frees memory and reduces the window during which a memory corruption vulnerability in extension code could be exploited.
Limitation: Service workers can still make network requests when active. A malicious extension can still exfiltrate data — it just cannot maintain a persistent channel.
Declarative Net Request
MV3 replaces the webRequest API's ability to intercept and modify network requests with the declarativeNetRequest API. Instead of executing JavaScript to evaluate each request (which allows arbitrary logic), extensions declare static rules for request handling.
Security improvement. Extensions can no longer inspect request/response bodies or execute arbitrary code on network traffic. This prevents extensions from silently intercepting credentials, modifying API responses, or injecting tracking into HTTPS connections.
Limitation: The declarativeNetRequest API still allows extensions to block, redirect, and modify headers for requests. A malicious extension can still redirect users to phishing sites or block security-related requests.
Host Permission Changes
MV3 changes how host permissions work. Extensions must declare their host permissions upfront, and users can choose to grant access to all sites, specific sites, or only when clicking the extension.
Security improvement. Users have more granular control over which sites extensions can access. An extension that only needs to run on a specific domain does not need access to all websites.
Limitation: Many extensions legitimately need broad access (ad blockers, password managers, productivity tools). Users who grant broad access are in the same position as MV2.
Remote Code Execution Restrictions
MV3 prohibits extensions from downloading and executing remote code. All code must be bundled in the extension package submitted to the Chrome Web Store.
Security improvement. This prevents attackers who compromise an extension's server infrastructure from pushing malicious code to users without going through the Web Store review process. In MV2, an extension could download JavaScript from any server and execute it.
Limitation: Extension updates published to the Web Store still auto-install. A compromised developer account can push malicious code through the official channel.
Remaining Supply Chain Risks
Developer Account Compromise
The most significant remaining risk is compromised developer accounts. If an attacker gains access to a Chrome Web Store developer account, they can push malicious updates that auto-install on millions of browsers. MV3 does not change this attack vector.
Multiple real-world incidents have involved compromised developer accounts:
- Phishing campaigns targeting extension developers
- Password reuse leading to credential stuffing attacks
- Session hijacking after malware infection
Acquisition of Popular Extensions
Attackers have purchased popular extensions from their original developers, then pushed malicious updates to the installed base. The transition from legitimate to malicious happens in a single update, and users who trusted the original developer have no reason to suspect the new owner.
Supply Chain of Extension Dependencies
Chrome extensions use npm packages and other JavaScript libraries. A compromised npm dependency in an extension affects every user of that extension. MV3's prohibition on remote code does not prevent compromised code from being bundled in the extension package.
Chrome Web Store Review Limitations
Google's review process for Chrome Web Store submissions has improved but is not comprehensive. Sophisticated malicious code can evade automated analysis, and the volume of submissions limits manual review depth.
Organizational Defense
Manage extension installation. Chrome Enterprise policies allow administrators to control which extensions users can install. Use allowlists for approved extensions and block all others in sensitive environments.
Monitor extension behavior. Enterprise browser management tools can monitor extension network traffic and alert on suspicious patterns.
Review extension permissions. Regularly audit the permissions granted to installed extensions. Extensions with broad host permissions, storage access, and network permissions warrant scrutiny.
Disable auto-updates for critical environments. In high-security environments, disable auto-updates for extensions and review updates before deployment.
Limit extension count. Each installed extension is additional attack surface. Encourage users to install only extensions they actively use and remove dormant ones.
How Safeguard.sh Helps
Browser extensions are part of the broader software supply chain ecosystem. While Safeguard focuses on application-level dependencies, the same supply chain principles apply: visibility, monitoring, and policy enforcement. Safeguard ensures that the applications your browser extensions interact with are built on secure, monitored dependency chains — complementing browser-level security controls with application-level supply chain protection.