Varun Khaneja | df1bc00e | 2017-08-10 05:22:40 | [diff] [blame] | 1 | # Severity Guidelines for Security Issues |
| 2 | |
| 3 | [TOC] |
| 4 | |
| 5 | Vendors shipping products based on Chromium might wish to rate the severity of |
| 6 | security issues in the products they release. This document contains guidelines |
| 7 | for how to rate these issues. Check out our |
| 8 | [security release management page](https://www.chromium.org/Home/chromium-security/security-release-management) |
| 9 | for guidance on how to release fixes based on severity. |
| 10 | |
| 11 | Any significant mitigating factors, such as unusual or additional user |
| 12 | interaction, or running Chrome with a specific command line flag or non-default |
| 13 | feature enabled, may reduce an issue’s severity by one or more levels. Also note |
| 14 | that most crashes do not indicate vulnerabilities. Chromium is designed to crash |
| 15 | in a controlled manner (e.g., with a ```__debugBreak```) when memory is |
| 16 | exhausted or in other exceptional circumstances. |
| 17 | |
| 18 | |
Chris Palmer | 3230111 | 2019-02-06 00:02:56 | [diff] [blame] | 19 | ## Critical severity {#TOC-Critical-severity} |
Varun Khaneja | df1bc00e | 2017-08-10 05:22:40 | [diff] [blame] | 20 | |
Chris Palmer | 5c33077 | 2019-05-24 23:32:43 | [diff] [blame] | 21 | Critical severity issues allow an attacker to read or write arbitrary resources |
| 22 | (including but not limited to the file system, registry, network, et c.) on the |
| 23 | underlying platform, with the user's full privileges. |
Varun Khaneja | df1bc00e | 2017-08-10 05:22:40 | [diff] [blame] | 24 | |
| 25 | They are normally assigned priority **Pri-0** and assigned to the current stable |
| 26 | milestone (or earliest milestone affected). For critical severity bugs, |
| 27 | [SheriffBot](https://www.chromium.org/issue-tracking/autotriage) will |
| 28 | automatically assign the milestone. |
| 29 | |
Chris Palmer | 91bab48 | 2019-07-17 00:05:36 | [diff] [blame] | 30 | **For critical severity vulnerabilities, we aim to deploy the patch to all |
| 31 | Chrome users in under 30 days.** |
Varun Khaneja | df1bc00e | 2017-08-10 05:22:40 | [diff] [blame] | 32 | |
| 33 | Critical vulnerability details may be made public in 60 days, |
| 34 | in accordance with Google's general [vulnerability disclosure recommendations](https://security.googleblog.com/2010/07/rebooting-responsible-disclosure-focus.html), |
| 35 | or [faster (7 days)](https://security.googleblog.com/2013/05/disclosure-timeline-for-vulnerabilities.html) |
| 36 | if there is evidence of active exploitation. |
| 37 | |
| 38 | Example bugs: |
| 39 | |
Eric Lawrence | e410b0b | 2017-12-11 19:32:07 | [diff] [blame] | 40 | * Memory corruption in the browser process ([564501](https://crbug.com/564501)). |
Varun Khaneja | df1bc00e | 2017-08-10 05:22:40 | [diff] [blame] | 41 | * Exploit chains made up of multiple bugs that can lead to code execution |
Chris Palmer | 5c33077 | 2019-05-24 23:32:43 | [diff] [blame] | 42 | outside of the sandbox ([416449](https://crbug.com/416449)). |
| 43 | * A bug that enables web content to read local files |
| 44 | ([962500](https://crbug.com/962500)). |
Varun Khaneja | df1bc00e | 2017-08-10 05:22:40 | [diff] [blame] | 45 | |
| 46 | Note that the individual bugs that make up the chain will have lower severity |
| 47 | ratings. |
| 48 | |
| 49 | |
Chris Palmer | 3230111 | 2019-02-06 00:02:56 | [diff] [blame] | 50 | ## High severity {#TOC-High-severity} |
Varun Khaneja | df1bc00e | 2017-08-10 05:22:40 | [diff] [blame] | 51 | |
| 52 | High severity vulnerabilities allow an attacker to execute code in the context |
Lukasz Anforowicz | cb7b514 | 2019-07-19 23:40:16 | [diff] [blame^] | 53 | of, or otherwise impersonate other origins or read cross-origin data. |
| 54 | Bugs which would normally be |
Varun Khaneja | df1bc00e | 2017-08-10 05:22:40 | [diff] [blame] | 55 | critical severity with unusual mitigating factors may be rated as high severity. |
| 56 | For example, renderer sandbox escapes fall into this category as their impact is |
| 57 | that of a critical severity bug, but they require the precondition of a |
| 58 | compromised renderer. |
| 59 | |
| 60 | They are normally assigned priority **Pri-1** and assigned to the current stable |
| 61 | milestone (or earliest milestone affected). For high severity bugs, |
| 62 | [SheriffBot](https://www.chromium.org/issue-tracking/autotriage) will |
| 63 | automatically assign the milestone. |
| 64 | |
Chris Palmer | 91bab48 | 2019-07-17 00:05:36 | [diff] [blame] | 65 | **For high severity vulnerabilities, we aim to deploy the patch to all Chrome |
| 66 | users in under 60 days.** |
Varun Khaneja | df1bc00e | 2017-08-10 05:22:40 | [diff] [blame] | 67 | |
| 68 | Example bugs: |
| 69 | |
| 70 | * A bug that allows full circumvention of the same origin policy. Universal XSS |
| 71 | bugs fall into this category, as they allow script execution in the context of |
| 72 | an arbitrary origin ([534923](https://crbug.com/534923)). |
| 73 | * A bug that allows arbitrary code execution within the confines of the sandbox, |
| 74 | such as renderer or GPU process memory corruption |
| 75 | ([570427](https://crbug.com/570427), [468936](https://crbug.com/468936)). |
| 76 | * Complete control over the apparent origin in the omnibox |
| 77 | ([76666](https://crbug.com/76666)). |
| 78 | * Memory corruption in the browser process that can only be triggered from a |
| 79 | compromised renderer, leading to a sandbox escape |
| 80 | ([469152](https://crbug.com/469152)). |
| 81 | * Kernel memory corruption that could be used as a sandbox escape from a |
| 82 | compromised renderer ([377392](https://crbug.com/377392)). |
| 83 | * Memory corruption in the browser process that requires specific user |
| 84 | interaction, such as granting a permission ([455735](https://crbug.com/455735)). |
Lukasz Anforowicz | cb7b514 | 2019-07-19 23:40:16 | [diff] [blame^] | 85 | * Cross-site execution contexts unexpectedly sharing a renderer process despite |
| 86 | Site Isolation ([863069](https://crbug.com/863069)). |
Varun Khaneja | df1bc00e | 2017-08-10 05:22:40 | [diff] [blame] | 87 | |
| 88 | |
Chris Palmer | 3230111 | 2019-02-06 00:02:56 | [diff] [blame] | 89 | ## Medium severity {#TOC-Medium-severity} |
Varun Khaneja | df1bc00e | 2017-08-10 05:22:40 | [diff] [blame] | 90 | |
| 91 | Medium severity bugs allow attackers to read or modify limited amounts of |
| 92 | information, or are not harmful on their own but potentially harmful when |
| 93 | combined with other bugs. This includes information leaks that could be useful |
| 94 | in potential memory corruption exploits, or exposure of sensitive user |
Chris Palmer | 91bab48 | 2019-07-17 00:05:36 | [diff] [blame] | 95 | information that an attacker can exfiltrate. Bugs that would normally be rated |
| 96 | at a higher severity level with unusual mitigating factors may be rated as |
| 97 | medium severity. |
Varun Khaneja | df1bc00e | 2017-08-10 05:22:40 | [diff] [blame] | 98 | |
| 99 | They are normally assigned priority **Pri-1** and assigned to the current stable |
| 100 | milestone (or earliest milestone affected). If the fix seems too complicated to |
| 101 | merge to the current stable milestone, they may be assigned to the next stable |
| 102 | milestone. |
| 103 | |
| 104 | Example bugs: |
| 105 | |
| 106 | * An out-of-bounds read in a renderer process |
| 107 | ([281480](https://crbug.com/281480)). |
| 108 | * An uninitialized memory read in the browser process where the values are |
| 109 | passed to a compromised renderer via IPC ([469151](https://crbug.com/469151)). |
| 110 | * Memory corruption that requires a specific extension to be installed |
| 111 | ([313743](https://crbug.com/313743)). |
| 112 | * An HSTS bypass ([461481](https://crbug.com/461481)). |
| 113 | * A bypass of the same origin policy for pages that meet several preconditions |
| 114 | ([419383](https://crbug.com/419383)). |
| 115 | * A bug that allows web content to tamper with trusted browser UI |
| 116 | ([550047](https://crbug.com/550047)). |
| 117 | * A bug that reduces the effectiveness of the sandbox |
| 118 | ([338538](https://crbug.com/338538)). |
| 119 | * A bug that allows arbitrary pages to bypass security interstitials |
| 120 | ([540949](https://crbug.com/540949)). |
| 121 | * A bug that allows an attacker to reliably read or infer browsing history |
| 122 | ([381808](https://crbug.com/381808)). |
| 123 | * An address bar spoof where only certain URLs can be displayed, or with other |
| 124 | mitigating factors ([265221](https://crbug.com/265221)). |
| 125 | * Memory corruption in a renderer process that requires specific user |
| 126 | interaction, such as dragging an object ([303772](https://crbug.com/303772)). |
| 127 | |
| 128 | |
Chris Palmer | 3230111 | 2019-02-06 00:02:56 | [diff] [blame] | 129 | ## Low severity {#TOC-Low-severity} |
Varun Khaneja | df1bc00e | 2017-08-10 05:22:40 | [diff] [blame] | 130 | |
| 131 | Low severity vulnerabilities are usually bugs that would normally be a higher |
| 132 | severity, but which have extreme mitigating factors or highly limited scope. |
| 133 | |
| 134 | They are normally assigned priority **Pri-2**. Milestones can be assigned to low |
| 135 | severity bugs on a case-by-case basis, but they are not normally merged to |
| 136 | stable or beta branches. |
| 137 | |
| 138 | Example bugs: |
| 139 | |
| 140 | * Bypass requirement for a user gesture ([256057](https://crbug.com/256057)). |
| 141 | * Partial CSP bypass ([534570](https://crbug.com/534570)). |
| 142 | * A limited extension permission bypass ([169632](https://crbug.com/169632)). |
| 143 | * An uncontrolled single-byte out-of-bounds read |
| 144 | ([128163](https://crbug.com/128163)). |
| 145 | |
| 146 | The [security FAQ](faq.md) covers many of the cases that we do not consider to |
| 147 | be security bugs, such as [denial of service](faq.md#TOC-Are-denial-of-service-issues-considered-security-bugs-). |