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 like tabs, storage, cookies, clipboardRead, or nativeMessaging.
  • 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

  1. Read the store listing's permission disclosure — Chrome and Edge show the short list before install; treat broad host access as the headline risk.
  2. 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.
  3. 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.
  4. Treat nativeMessaging, debugger, and clipboardRead as 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.