No global host permissions (all_urls)
Why it matters
Requesting <all_urls> or *://*/* in host_permissions grants your extension read and write access to every page the user visits — every banking session, every health portal, every private message thread. Chrome's permission-warning system flags this with a maximally alarming install dialog ('Read and change all your data on all websites'), crushing install conversion. Per the Chrome Web Store policy on host permissions, extensions must request only the minimal host access needed. CWE-250 applies: any code executing with <all_urls> access runs at a privilege level that makes a single XSS or supply-chain vulnerability into a total browsing-history exfiltration event.
Severity rationale
High because global host permissions expose all browsing data to the extension process, making any JavaScript compromise within the extension a full browsing-session exfiltration.
Remediation
Replace wildcard host patterns with explicit domains in manifest.json. If you access only GitHub and GitLab, list exactly those.
"host_permissions": [
"https://github.com/*",
"https://gitlab.com/*"
]
If you need user-triggered access to arbitrary pages, use activeTab instead of host permissions — it requires no install-time grant and shows no permission warning.
DetectionPro
The detection method for this pattern is part of AuditBuffet Pro.
The full method (what to look for, pass and fail conditions, and how results get reported) ships inside the Extension Permissions & Security Audit. The pattern definition, severity rationale, and remediation remain openly licensed under CC-BY-4.0.
External references
- cwe · CWE-250 — Execution with Unnecessary Privileges
- owasp:2021 · A01
- external · chrome-host-permissions — Chrome Extensions: Host Permissions
Taxons
History
- 2026-04-18·v1.0.0·Initial import from extension-permissions-security·automated