Risk Scoring
Risk scoring assigns a numeric risk score to every discovered browser extension. The score gives administrators a quick way to prioritize review and helps auditors understand why a particular extension was flagged. This page describes exactly how the score is calculated so that every number on a report can be traced back to specific extension characteristics.
How the Score Is Calculated
An extension's risk score is the sum of two components: Score = Permission Points + Modifiers
-
Each permission declared in the extension's manifest is looked up in the permission point table and assigned a point value.
-
All permission points are summed.
-
Modifier adjustments are applied based on the extension's install source, AI classification, and manifest version.
The final number determines the extension's risk level.
Permission Classification
Before scoring, every permission declared in the extension manifest is classified into one of four types. The type determines how it is weighted and displayed in the extension detail view.
| Type | Source |
Examples |
|---|---|---|
| RequiredApi | Non-URL entries in permissions | tabs, cookies, nativeMessaging |
| RequiredHost URL | patterns in host_permissions |
(Manifest V3) or URL patterns in permissions (Manifest V2) https://*.google.com/*, <all_urls> |
| OptionalApi | Non-URL entries in optional_permissions | bookmarks, history |
| OptionalHost | URL patterns in optional_host_permissions |
(Manifest V3) or URL patterns in optional_permissions (Manifest V2) https://*.example.com/* |
Host permissions (RequiredHost and OptionalHost) carry higher risk weight than their API counterparts because they control which websites an extension can read and modify. An extension with <all_urls> host access can interact with every page the user visits, including banking sites, corporate portals, and email.
Permission Point Table
The following table lists every scored permission and the points it contributes to the total. Permissions not listed here contribute zero points.
When both webRequest and webRequestBlocking are declared together, they contribute 25 points total, not 25 each. If only webRequest is declared without webRequestBlocking, it is scored at 10 points because the extension can observe but not modify traffic.
| Permission | Points | Rationale |
|---|---|---|
| <all_urls> | 30 | Can read and modify content on every website the user visits |
| debugger | 30 | Grants full Chrome DevTools Protocol access, equivalent to browser-level debugging |
| webRequest + webRequestBlocking | 25 |
Can intercept, inspect, and modify all HTTP traffic before the browser processes it |
| nativeMessaging | 20 |
Can communicate with native applications installed on the endpoint |
| management | 20 |
Can manage, enable, disable, and uninstall other browser extensions |
| proxy | 20 |
Can redirect all browser traffic through an arbitrary proxy server |
| cookies | 15 | Can read and write cookies for any site, including session tokens |
| clipboardRead | 15 | Can read the contents of the system clipboard, which may contain passwords or sensitive data |
| tabs | 10 | Can see the URL, title, and favicon of every open tab |
| webNavigation | 10 |
Can observe every navigation event across all tabs |
| history | 10 | Can read and modify the user's full browsing history |
| downloads | 10 | Can initiate and manage file downloads |
| contentSettings | 10 |
Can modify per-site browser settings such as JavaScript, cookies, and plugin behavior |
| clipboardWrite | 5 | Can write to the system clipboard |
| activeTab | 5 | Can access the active tab when the user explicitly clicks the extension |
| bookmarks | 5 | Can read and modify all bookmarks |
| geolocation | 5 | Can access the user's physical location |
| storage | 0 |
Extension-private storage only, no risk to user data |
| alarms | 0 | Scheduling mechanism internal to the extension |
| contextMenus | 0 |
Adds items to the browser right-click menu |
| notifications | 0 | Can display desktop notifications |
Modifiers
After the permission points are totaled, the following modifiers are added or subtracted based on the extension's meta data.
Install Source Modifiers
Install source modifiers are cumulative. A side-loaded extension that is also not from the web store receives +20 and +10 for a total modifier of +30.
| Condition | Modifier | Rationale |
|---|---|---|
| Sideloaded | +20 | Extension was installed from a local file, bypassing store review |
| Developer mode | +20 | Extension is running as an unpacked developer extension |
| Not from the official web store | +10 | Extension was installed from an alternative source without store vetting |
| Enterprise-deployed | -10 | Extension was pushed through enterprise policy, indicating organizational approval |
AI Classification Modifier
See AI Detection for details on how Delinea classifies extensions as AI-related.
| Condition | Modifier |
|---|---|
| Confirmed AI extension | +10 |
| Suspected AI extension | +5 |
Manifest Version Modifier
| Condition | Modifier | Rationale |
|---|---|---|
| Manifest V2 | +5 | Manifest V2 extensions have broader access patterns and weaker permission boundaries than Manifest V3 |
Risk Levels
The final score maps to one of four risk levels. These levels appear throughout reports and the extension detail view.
Password managers, ad blockers, and other widely used corporate extensions commonly score at the Critical level due to legitimate broad permissions. For example, a password manager needs <all_urls> and cookies access to fill credentials on any site, and an ad blocker needs webRequest with webRequestBlocking to intercept network requests. A Critical risk score does not mean an extension is malicious. It means the extension has powerful capabilities that warrant review and explicit approval through an enforcement policy.
| Score Range | Risk Level | Color |
|---|---|---|
| 0–15 | Low | Green |
| 16–35 | Medium | Yellow |
| 36–60 | High | Orange |
| 61+ | Critical | Red |
Distribution Across Pre-Staged Extensions
Privilege Manager provides a set of 60 pre-staged extensions that represent common enterprise software. Their risk score distribution illustrates the spread administrators can expect to see in a typical environment.
This distribution shows that roughly one-third of commonly used extensions score at Critical, reinforcing that Critical is not synonymous with malicious.
| Risk Level | Count |
|---|---|
| Low |
9 |
| Medium | 14 |
| High | 18 |
| Critical | 19 |
Worked Examples
The following examples walk through the full calculation for three well-known extensions.
Example 1: Microsoft Single Sign-On (SSO)
Microsoft SSO is a lightweight enterprise extension that facilitates Windows authentication in the browser. It ships as a Manifest V3 Chrome extension in the pre-staged set.
Microsoft SSO scores 20 and is classified as Medium risk. Although it declares a single permission, nativeMessaging is weighted heavily because it grants the extension a communication channel to a native Windows process. When deployed through enterprise policy, the -10 Enterprise-deployed modifier lowers the score to 10 (Low).
| Component | Vaue | Points |
|---|---|---|
| nativeMessaging (RequiredApi) | Communicates with the Windows SSO native host to exchange auth tokens | 20 |
| Permission subtotal | 20 | |
| No install source modifiers | Installed from Chrome Web Store | 0 |
| No AI modifier | Not an AI extension | 0 |
| Manifest V3 | No MV2 modifier applies | 0 |
| Modifier subtotal | 0 | |
| Total | 20 |
Example 2: uBlock Origin
uBlock Origin is a popular open-source ad and content blocker. It ships as a Manifest V2 extension (the classic build).
uBlock Origin scores 80 and is classified as Critical risk. The score reflects the powerful permissions required for ad blocking, not any malicious intent.
uBlock Origin Lite (the Manifest V3 variant in the pre-staged set) scores materially lower because it uses declarativeNetRequest instead of webRequest/webRequestBlocking and does not request <all_urls> as a broad host permission.
| Component | Value | Points |
|---|---|---|
| <all_urls> (RequiredHost) | Must access all sites to block ads | 30 |
| webRequest + webRequestBlocking (RequiredApi) | Inercepts and blocks network requests | 25 |
| tabs (RequiredApi) | Observes tab URLs for per-site filtering | 10 |
| webNavigation (RequiredApi) | Hooks navigation events to apply filters early | 10 |
| Permission subtotal | 75 | |
| No install source modifiers | Installed from web store | 0 |
| No AI modifier | Not and AI extension | 0 |
| Manifest V2 | uBlock Origin classic uses MV2 |
+5 |
| Modifier subtotal | +5 | |
| Total | 80 |
Example 3: Grammarly
Grammarly is a writing assistant that checks grammar and spelling on web pages. It ships as a Manifest V3 Chrome extension in the pre-staged set and appears on the curated AI list.
Grammarly (Chrome, MV3) scores 35 and is classified as Medium risk. Although it is a Confirmed AI extension, its declared permission set is narrower than extensions that request <all_urls> outright, so it does not reach the High or Critical band on Chrome. The Firefox build of Grammarly scores materially higher (60, High) because it declares additional permissions on that platform.
| Component | Value | Points |
|---|---|---|
| cookies (RequiredApi) | Maintains session state with the Grammarly service | 15 |
| tabs (RequiredApi) | Detects tab context for on-page suggestions | 10 |
|
scripting, sidePanel, notifications, identify, storage (RequiredApi) |
Standard MV3 APIs not weighted by the scorer | 0 |
http://*/*, https://*/* (RequiredHost) |
Not matched by the scorer's wildcard / broad / specific patterns | 0 |
| Permission subtotal | 25 | |
| Confirmed AI extension | Grammarly appears on the curated AI list | +10 |
| No install source modifiers | Installed from Chrome Web Store | 0 |
| Manifest V3 | No MV2 modifier applies | 0 |
| Modifier subtotal | +10 | |
| Total | 35 |
Using Risk Scores in Practice
Risk scores are most valuable when combined with enforcement policies.
-
Triage new extensions - Sort the Browser Extension Inventory Report by risk score to focus review on the highest-scoring extensions first.
-
Set policy thresholds - Use risk levels to guide Allow List and Deny List decisions. Many organizations start by explicitly allowing all Critical-scoring extensions they have vetted and blocking the rest.
-
Audit trail - The score breakdown is available in the Extension Resource Detail View for each extension. Auditors can inspect the exact permissions and modifiers that produced the score.
-
Track changes over time - When an extension updates and adds new permissions, it risk score changes. The inventory report reflects the current score based on the latest discovered manifest.