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