The browser extension permission dictionary

The browser extension permission dictionary

The browser extension permission dictionary

The browser extension permission dictionary

Every permission a browser extension can request, what it actually grants, and the risk if it is abused. A reference to keep open while you read a manifest or review a request.

François-Henri Champagne

Permissions are declared in an extension's manifest.json and softened into friendly language in the install warning. This dictionary gives you the real version: what each one grants, and how we rate it. The scale is the one Ostral's scanner uses, Critical, High, Medium, or Low. Each permission is graded on what it enables if the extension turns, not on the average case, and it is only truly justified if the extension's job needs it.


Host permissions

Read these first. Host permissions decide which sites the extension can reach, which is the blast radius for everything else. Any broad host access is Critical on its own.

Permission

What it grants

Risk

<all_urls>

Reads and modifies data on every website the user visits, the widest reach there is

Critical

*://*/*

Reads and modifies data on every website the user visits

Critical

http://*/*, https://*/*

Every http site and every https site (http being the plaintext half)

Critical

https://*.example.com/*

One named domain and its subdomains, the scoped and expected case

Low

activeTab

Temporary access to the current tab, only when the user clicks the extension

Medium


Critical permissions

These hand an extension deep control: your traffic, your screen, your files, your credentials. Treat any of them as a stop-and-review, whatever the tool claims to be.

Permission

What it grants

Risk

debugger

Full control over browser protocols, for deep monitoring and modification of activity

Critical

proxy

Routes traffic through a third-party server, potentially exposing all browsing

Critical

webRequest

Intercepts and modifies data between the browser and websites before it loads

Critical

webRequestBlocking

Blocks resources from loading or alters content delivered by websites

Critical

pageCapture

Saves complete copies of visited pages, text and images, to a file

Critical

desktopCapture

Records the entire screen, specific apps, or browser tabs

Critical

nativeMessaging

Talks directly to apps on the operating system, bypassing the browser sandbox

Critical

userScripts

Runs custom scripts on webpages, altering their content or behavior

Critical

fileSystem

Reads and writes files on the local drive

Critical

webAuthenticationProxy

Intercepts and modifies authentication requests, potentially compromising credentials

Critical


High-risk permissions

Each of these exposes sensitive data or lets the extension act as the user. High on its own, and often part of a takeover once paired with broad host access.

Permission

What it grants

Risk

cookies

Reads and modifies cookies, which hold sessions and login state

High

identity

Accesses OAuth2 tokens to act on behalf of the user

High

identity.email

Accesses the email address of the signed-in browser account

High

history

Reads, modifies, and deletes the record of visited sites

High

tabs

Reads the titles and URLs of every open tab

High

webNavigation

Monitors navigation between pages in real time

High

downloads

Starts downloads from the internet to local storage

High

clipboardRead

Reads whatever is on the clipboard

High

clipboardWrite

Replaces what is on the clipboard

High

management

Manages, disables, or uninstalls other extensions

High

privacy

Changes browser privacy and security settings

High

contentSettings

Changes per-site access to cookies, JavaScript, and plugins

High

geolocation

Detects the user's precise location

High

tabCapture

Captures the audio and video of the current tab

High

audioCapture

Captures audio from the microphone

High

videoCapture

Captures video from the camera

High

declarativeNetRequest

Blocks or rewrites network requests by rule

High

declarativeNetRequestWithHostAccess

Modifies data sent to or from permitted sites

High

browsingData

Clears history, cookies, and cached files

High

webRequestAuthProvider

Handles HTTP auth prompts, potentially seeing entered credentials

High

bookmarks

Reads, creates, and deletes bookmarks

High

vpnProvider

Implements a VPN client, with full visibility and control of traffic

High

certificateProvider, platformKeys

Expose client certificates for authentication

High

Medium-risk permissions

Meaningful reach, worth a second look when the stated purpose does not obviously call for it.

Permission

What it grants

Risk

activeTab

Temporary access to the current tab, only on user click

Medium

scripting

Injects and runs code on pages to change content or behavior

Medium

storage, unlimitedStorage

Stores extension data locally, with or without a size limit

Medium

sessions

Reads open sessions and tabs, possibly from other devices

Medium

topSites

Reads the list of most-visited sites

Medium

tabGroups

Organizes and modifies tab groups

Medium

background

Runs in the background even with no tabs open

Medium

offscreen

Runs tasks in hidden documents the user never sees

Medium

notifications

Shows pop-up alerts

Medium

contextMenus

Adds items to the right-click menu

Medium

dns

Resolves hostnames, which can reveal browsing habits

Medium

ttsEngine

Implements a text-to-speech engine, seeing the text sent to it

Medium

gcm

Sends and receives push messages via Google Cloud Messaging

Medium

system.storage, fileSystemProvider

Detects external drives, or exposes a file system to the file manager

Medium


Low-risk utilities

Common and low-signal on their own. They add context to the powerful permissions above rather than posing a standalone risk.

Permission

What it grants

Risk

alarms, idle, commands, power

Timers, idle detection, keyboard shortcuts, keep-awake

Low

favicon, fontSettings, search, sidePanel, windows, tts, audio, readingList

Display, fonts, search, side panel, windows, speech, reading list

Low

printing, printerProvider, printingMetrics, documentScan

Printing and document scanning

Low

system.cpu, system.memory, system.display

Basic device hardware and display metadata

Low

declarativeContent, downloads.open, downloads.ui, processes, wallpaper

Other low-signal utilities

Low


The combinations that bite

No single permission is malicious by itself. The danger is a combination that exceeds the stated function. A few to recognize on sight:

  • <all_urls> plus cookies: session hijacking across every site.

  • proxy in anything that is not explicitly a VPN or proxy tool: a way to reroute all traffic.

  • tabCapture or pageCapture in a tool that is not a recorder: silent capture of meetings, screens, and page content.

  • scripting or debugger plus broad host access: arbitrary code on every page the user opens.

  • nativeMessaging plus broad host access: a bridge from a web page to the operating system.

Work top to bottom. Check the host permissions for blast radius, then scan for anything in the Critical or High tables. Then ask the one question that matters: does the stated function need this? For the full method, see Part 3 of the series.

Find the malwares in your browsers, and block them instantly

Most of the fleets we scan are already running a malicious extension. Ostral installs in one click, maps every extension across your company with its risk, and lets you block anything dangerous everywhere in seconds.