Extension security glossary
Browser Extension Permissions: What Each One Actually Grants
What browser extension permissions like host access, tabs, and nativeMessaging actually grant, which ones are dangerous, and how to audit them before installing.
Published September 29, 2026 · Updated September 29, 2026
What extension permissions are
Extension permissions are the access rights a browser extension declares in its manifest and that the browser enforces at runtime. When you install an extension, you approve everything in that manifest at once — there is no runtime prompting for most permissions the way mobile operating systems ask. The two that matter most:
- API permissions (
"permissions"in manifest.json): access to browser capabilities liketabs,storage,cookies,clipboardRead, ornativeMessaging. - Host permissions (
"host_permissions"in Chrome, or match patterns in Firefox): which websites the extension's code may read and modify.<all_urls>means every page you visit, including your bank, your webmail, and your internal admin panels.
Which permissions are actually dangerous
A useful rule: the danger is not the permission name, it is what it grants combined with where it runs.
| Permission | What it grants | Why it matters |
|---|---|---|
<all_urls> / broad host access |
Read and modify every page | Can capture passwords, MFA codes, and session tokens as you type them |
tabs |
Metadata on every tab, incl. titles and URLs | Browsing-history exfiltration; also required for tab injection |
cookies |
Read cookie values for sites in host scope | Direct session theft if scoped to auth domains |
clipboardRead |
Everything you copy | Passwords and keys pass through the clipboard |
nativeMessaging |
Launch a native binary on your machine | Escapes the browser sandbox entirely |
debugger |
Full DevTools protocol access | Can observe any page's network traffic and DOM |
webRequest + host access |
Observe/modify all requests in scope | Combined with <all_urls>, it is a built-in HTTP interceptor |
management |
Enable/disable other extensions | Can switch off security extensions like ad blockers |
Permission creep is the quiet version of the problem: an extension ships with narrow permissions, gains your trust, then requests <all_urls> in a routine update. Firefox and Chrome now surface some permission changes, but users routinely approve them without reading. This is precisely how campaigns like RedDirection monetized existing install bases: the installed base was the asset, and a permission-expanding update was the delivery mechanism.
How to audit permissions before installing
- Read the store listing's permission disclosure — Chrome and Edge show the short list before install; treat broad host access as the headline risk.
- Check whether the permission set matches the product's stated function. An ad blocker legitimately needs broad host access. A to-do list does not.
- Look at the extension's permission history, not just the current manifest — an extension that expanded from "this site" to "all sites" is a different risk proposition than one that was broad from day one.
- Treat
nativeMessaging,debugger, andclipboardReadas red flags requiring a specific, articulable justification.
Risky Plugins performs steps 3 and 4 across the entire catalog automatically: every extension scorecard includes the requested permission set, flags the high-risk ones, and tracks how the manifest changed across versions. Search any extension on the homepage or browse a marketplace like Chrome Web Store extensions to see the current risk picture.
What permissions cannot tell you
A clean permission list is not a clean bill of health. Obfuscated code with modest permissions can still exfiltrate data through allowed channels, and a compromised publisher can ship a malicious update under an unchanged manifest. That is why permissions are one signal among several — see obfuscation and publisher takeover for the other two halves of the picture.