blob: db6c56bfeee1ec08b7b0f4f0eee008a05515ea47 [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
Amy Ressler4e00f882022-02-24 18:03:4111Any significant mitigating factors will generally reduce an issue's severity by one or
12more levels:
13* Not web accessible, reliant solely on direct UI interaction to trigger.
14* Unusual or unlikely user interaction will normally reduce severity by one
15 level. This means interaction which may sometimes occur, but would not be
16 typical of an average user engaging with Chrome or a particular feature in
17 Chrome, nor could a user be easily convinced to perform by a persuasive web page.
18* Requiring profile destruction or browser shutdown will normally reduce
19 severity by one level.
20
21Bugs that require implausible interaction, interactions a user would not
22realistically be convinced to perform, will generally be downgraded to a
23functional bug and not considered a security bug.
Adrian Taylor44dbdc82020-01-07 01:49:1924
25Conversely, we do not consider it a mitigating factor if a vulnerability applies
26only to a particular group of users. For instance, a Critical vulnerability is
27still considered Critical even if it applies only to Linux or to those users
28running with accessibility features enabled.
29
30Also note that most crashes do not indicate vulnerabilities. Chromium is designed
31to crash in a controlled manner (e.g., with a ```__debugBreak```) when memory is
Varun Khanejadf1bc00e2017-08-10 05:22:4032exhausted or in other exceptional circumstances.
33
34
Chris Palmer32301112019-02-06 00:02:5635## Critical severity {#TOC-Critical-severity}
Varun Khanejadf1bc00e2017-08-10 05:22:4036
Chris Palmer5c330772019-05-24 23:32:4337Critical severity issues allow an attacker to read or write arbitrary resources
38(including but not limited to the file system, registry, network, et c.) on the
39underlying platform, with the user's full privileges.
Varun Khanejadf1bc00e2017-08-10 05:22:4040
41They are normally assigned priority **Pri-0** and assigned to the current stable
42milestone (or earliest milestone affected). For critical severity bugs,
43[SheriffBot](https://www.chromium.org/issue-tracking/autotriage) will
44automatically assign the milestone.
45
Chris Palmer91bab482019-07-17 00:05:3646**For critical severity vulnerabilities, we aim to deploy the patch to all
47Chrome users in under 30 days.**
Varun Khanejadf1bc00e2017-08-10 05:22:4048
49Critical vulnerability details may be made public in 60 days,
50in accordance with Google's general [vulnerability disclosure recommendations](https://security.googleblog.com/2010/07/rebooting-responsible-disclosure-focus.html),
51or [faster (7 days)](https://security.googleblog.com/2013/05/disclosure-timeline-for-vulnerabilities.html)
52if there is evidence of active exploitation.
53
54Example bugs:
55
Daniel Cheng62a44a82019-09-09 22:15:3656* Memory corruption in the browser process ([319125](https://crbug.com/319125#c10)).
Varun Khanejadf1bc00e2017-08-10 05:22:4057* Exploit chains made up of multiple bugs that can lead to code execution
Chris Palmer5c330772019-05-24 23:32:4358 outside of the sandbox ([416449](https://crbug.com/416449)).
59* A bug that enables web content to read local files
60 ([962500](https://crbug.com/962500)).
Varun Khanejadf1bc00e2017-08-10 05:22:4061
62Note that the individual bugs that make up the chain will have lower severity
63ratings.
64
65
Chris Palmer32301112019-02-06 00:02:5666## High severity {#TOC-High-severity}
Varun Khanejadf1bc00e2017-08-10 05:22:4067
68High severity vulnerabilities allow an attacker to execute code in the context
Lukasz Anforowiczcb7b5142019-07-19 23:40:1669of, or otherwise impersonate other origins or read cross-origin data.
70Bugs which would normally be
Varun Khanejadf1bc00e2017-08-10 05:22:4071critical severity with unusual mitigating factors may be rated as high severity.
72For example, renderer sandbox escapes fall into this category as their impact is
73that of a critical severity bug, but they require the precondition of a
Adrian Taylor6f37ff32020-05-01 00:40:1474compromised renderer. (Bugs which involve using [MojoJS](../../mojo/public/js/README.md)
75to trigger an exploitable browser process crash usually fall into this category).
Amy Ressler4e00f882022-02-24 18:03:4176Another example are bugs that result in memory corruption in the browser
77process, which would normally be critical severity, but require browser shutdown
78or profile destruction, which would lower these issues to high severity. A
79bug with the precondition of browser shutdown or profile destruction should be
80considered to have a maximum severity of high and could potentially be
81reduced by other mitigating factors.
Varun Khanejadf1bc00e2017-08-10 05:22:4082
83They are normally assigned priority **Pri-1** and assigned to the current stable
84milestone (or earliest milestone affected). For high severity bugs,
85[SheriffBot](https://www.chromium.org/issue-tracking/autotriage) will
86automatically assign the milestone.
87
Chris Palmer91bab482019-07-17 00:05:3688**For high severity vulnerabilities, we aim to deploy the patch to all Chrome
89users in under 60 days.**
Varun Khanejadf1bc00e2017-08-10 05:22:4090
91Example bugs:
92
93* A bug that allows full circumvention of the same origin policy. Universal XSS
94bugs fall into this category, as they allow script execution in the context of
95an arbitrary origin ([534923](https://crbug.com/534923)).
96* A bug that allows arbitrary code execution within the confines of the sandbox,
Amy Ressler4e00f882022-02-24 18:03:4197such as renderer, network, or GPU process memory corruption
Varun Khanejadf1bc00e2017-08-10 05:22:4098([570427](https://crbug.com/570427), [468936](https://crbug.com/468936)).
99* Complete control over the apparent origin in the omnibox
100([76666](https://crbug.com/76666)).
101* Memory corruption in the browser process that can only be triggered from a
102compromised renderer, leading to a sandbox escape
103([469152](https://crbug.com/469152)).
104* Kernel memory corruption that could be used as a sandbox escape from a
105compromised renderer ([377392](https://crbug.com/377392)).
106* Memory corruption in the browser process that requires specific user
107interaction, such as granting a permission ([455735](https://crbug.com/455735)).
Lukasz Anforowicz33b14352019-09-20 21:57:58108* Site Isolation bypasses:
109 - Cross-site execution contexts unexpectedly sharing a renderer process
110 ([863069](https://crbug.com/863069), [886976](https://crbug.com/886976)).
111 - Cross-site data disclosure
112 ([917668](https://crbug.com/917668), [927849](https://crbug.com/927849)).
Varun Khanejadf1bc00e2017-08-10 05:22:40113
114
Chris Palmer32301112019-02-06 00:02:56115## Medium severity {#TOC-Medium-severity}
Varun Khanejadf1bc00e2017-08-10 05:22:40116
117Medium severity bugs allow attackers to read or modify limited amounts of
118information, or are not harmful on their own but potentially harmful when
119combined with other bugs. This includes information leaks that could be useful
120in potential memory corruption exploits, or exposure of sensitive user
Chris Palmer91bab482019-07-17 00:05:36121information that an attacker can exfiltrate. Bugs that would normally be rated
122at a higher severity level with unusual mitigating factors may be rated as
123medium severity.
Varun Khanejadf1bc00e2017-08-10 05:22:40124
125They are normally assigned priority **Pri-1** and assigned to the current stable
126milestone (or earliest milestone affected). If the fix seems too complicated to
127merge to the current stable milestone, they may be assigned to the next stable
128milestone.
129
130Example bugs:
131
132* An out-of-bounds read in a renderer process
133([281480](https://crbug.com/281480)).
134* An uninitialized memory read in the browser process where the values are
135passed to a compromised renderer via IPC ([469151](https://crbug.com/469151)).
136* Memory corruption that requires a specific extension to be installed
137([313743](https://crbug.com/313743)).
Amy Ressler4e00f882022-02-24 18:03:41138* Memory corruption in the browser process, triggered by a browser shutdown that
139 is not reliably triggered and/or is difficult to trigger ([1230513](https://crbug.com/1230513)).
140* Memory corruption in the browser process, requiring a non-standard flag and
141 user interaction ([1255332](https://crbug.com/1255332)).
Varun Khanejadf1bc00e2017-08-10 05:22:40142* An HSTS bypass ([461481](https://crbug.com/461481)).
143* A bypass of the same origin policy for pages that meet several preconditions
144([419383](https://crbug.com/419383)).
145* A bug that allows web content to tamper with trusted browser UI
146([550047](https://crbug.com/550047)).
147* A bug that reduces the effectiveness of the sandbox
148([338538](https://crbug.com/338538)).
149* A bug that allows arbitrary pages to bypass security interstitials
150([540949](https://crbug.com/540949)).
151* A bug that allows an attacker to reliably read or infer browsing history
152([381808](https://crbug.com/381808)).
153* An address bar spoof where only certain URLs can be displayed, or with other
154mitigating factors ([265221](https://crbug.com/265221)).
155* Memory corruption in a renderer process that requires specific user
156interaction, such as dragging an object ([303772](https://crbug.com/303772)).
157
158
Chris Palmer32301112019-02-06 00:02:56159## Low severity {#TOC-Low-severity}
Varun Khanejadf1bc00e2017-08-10 05:22:40160
161Low severity vulnerabilities are usually bugs that would normally be a higher
162severity, but which have extreme mitigating factors or highly limited scope.
163
164They are normally assigned priority **Pri-2**. Milestones can be assigned to low
165severity bugs on a case-by-case basis, but they are not normally merged to
166stable or beta branches.
167
168Example bugs:
169
170* Bypass requirement for a user gesture ([256057](https://crbug.com/256057)).
171* Partial CSP bypass ([534570](https://crbug.com/534570)).
172* A limited extension permission bypass ([169632](https://crbug.com/169632)).
173* An uncontrolled single-byte out-of-bounds read
174([128163](https://crbug.com/128163)).
175
Adrian Taylorb3f73122020-04-30 00:56:14176
Adrian Taylor364e9fd2020-11-04 22:41:11177## Can't impact Chrome users by default {#TOC-No-impact}
178
179If the bug can't impact Chrome users by default, this is denoted instead by
180the **Security-Impact_None** label. See
181[the security labels document](security-labels.md#TOC-Security_Impact-None)
182for more information. The bug should still have a severity set according
183to these guidelines.
184
185
Adrian Taylorb3f73122020-04-30 00:56:14186## Not a security bug {#TOC-Not-a-security-bug}
187
Varun Khanejadf1bc00e2017-08-10 05:22:40188The [security FAQ](faq.md) covers many of the cases that we do not consider to
Adrian Taylorb3f73122020-04-30 00:56:14189be security bugs, such as [denial of service](faq.md#TOC-Are-denial-of-service-issues-considered-security-bugs-)
190and, in particular, null pointer dereferences with consistent fixed offsets.