blob: 06d01668889a249f5608293d32883bda8f9bb702 [file] [log] [blame] [view]
Varun Khanejadf1bc00e2017-08-10 05:22:401# Severity Guidelines for Security Issues
2
3[TOC]
4
5Vendors shipping products based on Chromium might wish to rate the severity of
6security issues in the products they release. This document contains guidelines
7for how to rate these issues. Check out our
8[security release management page](https://www.chromium.org/Home/chromium-security/security-release-management)
9for guidance on how to release fixes based on severity.
10
11Any significant mitigating factors, such as unusual or additional user
12interaction, or running Chrome with a specific command line flag or non-default
Adrian Taylor44dbdc82020-01-07 01:49:1913feature enabled, may reduce an issues severity by one or more levels.
14
15Conversely, we do not consider it a mitigating factor if a vulnerability applies
16only to a particular group of users. For instance, a Critical vulnerability is
17still considered Critical even if it applies only to Linux or to those users
18running with accessibility features enabled.
19
20Also note that most crashes do not indicate vulnerabilities. Chromium is designed
21to crash in a controlled manner (e.g., with a ```__debugBreak```) when memory is
Varun Khanejadf1bc00e2017-08-10 05:22:4022exhausted or in other exceptional circumstances.
23
24
Chris Palmer32301112019-02-06 00:02:5625## Critical severity {#TOC-Critical-severity}
Varun Khanejadf1bc00e2017-08-10 05:22:4026
Chris Palmer5c330772019-05-24 23:32:4327Critical severity issues allow an attacker to read or write arbitrary resources
28(including but not limited to the file system, registry, network, et c.) on the
29underlying platform, with the user's full privileges.
Varun Khanejadf1bc00e2017-08-10 05:22:4030
31They are normally assigned priority **Pri-0** and assigned to the current stable
32milestone (or earliest milestone affected). For critical severity bugs,
33[SheriffBot](https://www.chromium.org/issue-tracking/autotriage) will
34automatically assign the milestone.
35
Chris Palmer91bab482019-07-17 00:05:3636**For critical severity vulnerabilities, we aim to deploy the patch to all
37Chrome users in under 30 days.**
Varun Khanejadf1bc00e2017-08-10 05:22:4038
39Critical vulnerability details may be made public in 60 days,
40in accordance with Google's general [vulnerability disclosure recommendations](https://security.googleblog.com/2010/07/rebooting-responsible-disclosure-focus.html),
41or [faster (7 days)](https://security.googleblog.com/2013/05/disclosure-timeline-for-vulnerabilities.html)
42if there is evidence of active exploitation.
43
44Example bugs:
45
Daniel Cheng62a44a82019-09-09 22:15:3646* Memory corruption in the browser process ([319125](https://crbug.com/319125#c10)).
Varun Khanejadf1bc00e2017-08-10 05:22:4047* Exploit chains made up of multiple bugs that can lead to code execution
Chris Palmer5c330772019-05-24 23:32:4348 outside of the sandbox ([416449](https://crbug.com/416449)).
49* A bug that enables web content to read local files
50 ([962500](https://crbug.com/962500)).
Varun Khanejadf1bc00e2017-08-10 05:22:4051
52Note that the individual bugs that make up the chain will have lower severity
53ratings.
54
55
Chris Palmer32301112019-02-06 00:02:5656## High severity {#TOC-High-severity}
Varun Khanejadf1bc00e2017-08-10 05:22:4057
58High severity vulnerabilities allow an attacker to execute code in the context
Lukasz Anforowiczcb7b5142019-07-19 23:40:1659of, or otherwise impersonate other origins or read cross-origin data.
60Bugs which would normally be
Varun Khanejadf1bc00e2017-08-10 05:22:4061critical severity with unusual mitigating factors may be rated as high severity.
62For example, renderer sandbox escapes fall into this category as their impact is
63that of a critical severity bug, but they require the precondition of a
Adrian Taylor6f37ff32020-05-01 00:40:1464compromised renderer. (Bugs which involve using [MojoJS](../../mojo/public/js/README.md)
65to trigger an exploitable browser process crash usually fall into this category).
Varun Khanejadf1bc00e2017-08-10 05:22:4066
67They are normally assigned priority **Pri-1** and assigned to the current stable
68milestone (or earliest milestone affected). For high severity bugs,
69[SheriffBot](https://www.chromium.org/issue-tracking/autotriage) will
70automatically assign the milestone.
71
Chris Palmer91bab482019-07-17 00:05:3672**For high severity vulnerabilities, we aim to deploy the patch to all Chrome
73users in under 60 days.**
Varun Khanejadf1bc00e2017-08-10 05:22:4074
75Example bugs:
76
77* A bug that allows full circumvention of the same origin policy. Universal XSS
78bugs fall into this category, as they allow script execution in the context of
79an arbitrary origin ([534923](https://crbug.com/534923)).
80* A bug that allows arbitrary code execution within the confines of the sandbox,
81such as renderer or GPU process memory corruption
82([570427](https://crbug.com/570427), [468936](https://crbug.com/468936)).
83* Complete control over the apparent origin in the omnibox
84([76666](https://crbug.com/76666)).
85* Memory corruption in the browser process that can only be triggered from a
86compromised renderer, leading to a sandbox escape
87([469152](https://crbug.com/469152)).
88* Kernel memory corruption that could be used as a sandbox escape from a
89compromised renderer ([377392](https://crbug.com/377392)).
90* Memory corruption in the browser process that requires specific user
91interaction, such as granting a permission ([455735](https://crbug.com/455735)).
Lukasz Anforowicz33b14352019-09-20 21:57:5892* Site Isolation bypasses:
93 - Cross-site execution contexts unexpectedly sharing a renderer process
94 ([863069](https://crbug.com/863069), [886976](https://crbug.com/886976)).
95 - Cross-site data disclosure
96 ([917668](https://crbug.com/917668), [927849](https://crbug.com/927849)).
Varun Khanejadf1bc00e2017-08-10 05:22:4097
98
Chris Palmer32301112019-02-06 00:02:5699## Medium severity {#TOC-Medium-severity}
Varun Khanejadf1bc00e2017-08-10 05:22:40100
101Medium severity bugs allow attackers to read or modify limited amounts of
102information, or are not harmful on their own but potentially harmful when
103combined with other bugs. This includes information leaks that could be useful
104in potential memory corruption exploits, or exposure of sensitive user
Chris Palmer91bab482019-07-17 00:05:36105information that an attacker can exfiltrate. Bugs that would normally be rated
106at a higher severity level with unusual mitigating factors may be rated as
107medium severity.
Varun Khanejadf1bc00e2017-08-10 05:22:40108
109They are normally assigned priority **Pri-1** and assigned to the current stable
110milestone (or earliest milestone affected). If the fix seems too complicated to
111merge to the current stable milestone, they may be assigned to the next stable
112milestone.
113
114Example bugs:
115
116* An out-of-bounds read in a renderer process
117([281480](https://crbug.com/281480)).
118* An uninitialized memory read in the browser process where the values are
119passed to a compromised renderer via IPC ([469151](https://crbug.com/469151)).
120* Memory corruption that requires a specific extension to be installed
121([313743](https://crbug.com/313743)).
122* An HSTS bypass ([461481](https://crbug.com/461481)).
123* A bypass of the same origin policy for pages that meet several preconditions
124([419383](https://crbug.com/419383)).
125* A bug that allows web content to tamper with trusted browser UI
126([550047](https://crbug.com/550047)).
127* A bug that reduces the effectiveness of the sandbox
128([338538](https://crbug.com/338538)).
129* A bug that allows arbitrary pages to bypass security interstitials
130([540949](https://crbug.com/540949)).
131* A bug that allows an attacker to reliably read or infer browsing history
132([381808](https://crbug.com/381808)).
133* An address bar spoof where only certain URLs can be displayed, or with other
134mitigating factors ([265221](https://crbug.com/265221)).
135* Memory corruption in a renderer process that requires specific user
136interaction, such as dragging an object ([303772](https://crbug.com/303772)).
137
138
Chris Palmer32301112019-02-06 00:02:56139## Low severity {#TOC-Low-severity}
Varun Khanejadf1bc00e2017-08-10 05:22:40140
141Low severity vulnerabilities are usually bugs that would normally be a higher
142severity, but which have extreme mitigating factors or highly limited scope.
143
144They are normally assigned priority **Pri-2**. Milestones can be assigned to low
145severity bugs on a case-by-case basis, but they are not normally merged to
146stable or beta branches.
147
148Example bugs:
149
150* Bypass requirement for a user gesture ([256057](https://crbug.com/256057)).
151* Partial CSP bypass ([534570](https://crbug.com/534570)).
152* A limited extension permission bypass ([169632](https://crbug.com/169632)).
153* An uncontrolled single-byte out-of-bounds read
154([128163](https://crbug.com/128163)).
155
Adrian Taylorb3f73122020-04-30 00:56:14156
Adrian Taylor364e9fd2020-11-04 22:41:11157## Can't impact Chrome users by default {#TOC-No-impact}
158
159If the bug can't impact Chrome users by default, this is denoted instead by
160the **Security-Impact_None** label. See
161[the security labels document](security-labels.md#TOC-Security_Impact-None)
162for more information. The bug should still have a severity set according
163to these guidelines.
164
165
Adrian Taylorb3f73122020-04-30 00:56:14166## Not a security bug {#TOC-Not-a-security-bug}
167
Varun Khanejadf1bc00e2017-08-10 05:22:40168The [security FAQ](faq.md) covers many of the cases that we do not consider to
Adrian Taylorb3f73122020-04-30 00:56:14169be security bugs, such as [denial of service](faq.md#TOC-Are-denial-of-service-issues-considered-security-bugs-)
170and, in particular, null pointer dereferences with consistent fixed offsets.