blob: 0c8d3cb1e07385b9149f48016534c3c7f65d0bbc [file] [log] [blame] [view]
Chris Palmer554c66e2017-07-29 01:02:561# Chrome Security FAQ
2
3[TOC]
4
5<a name="TOC-Why-are-security-bugs-hidden-in-the-Chromium-issue-tracker-"></a>
6## Why are security bugs hidden in the Chromium issue tracker?
7
8We must balance a commitment to openness with a commitment to avoiding
9unnecessary risk for users of widely-used open source libraries.
10
11<a name="TOC-Can-you-please-un-hide-old-security-bugs-"></a>
12## Can you please un-hide old security bugs?
13
14Our goal is to open security bugs to the public once the bug is fixed and the
15fix has been shipped to a majority of users. However, many vulnerabilities
16affect products besides Chromium, and we don’t want to put users of those
17products unnecessarily at risk by opening the bug before fixes for the other
18affected products have shipped.
19
20Therefore, we make all security bugs public within approximately 14 weeks of the
21fix landing in the Chromium repository. The exception to this is in the event of
22the bug reporter or some other responsible party explicitly requesting anonymity
23or protection against disclosing other particularly sensitive data included in
24the vulnerability report (e.g. username and password pairs).
25
26<a name="TOC-Can-I-get-advance-notice-about-security-bugs-"></a>
27## Can I get advance notice about security bugs?
28
29Vendors of products based on Chromium, distributors of operating systems that
30bundle Chromium, and individuals and organizations that significantly contribute
31to fixing security bugs can be added to a list for earlier access to these bugs.
32You can email us at [email protected] to request to join the list if you
33meet the above criteria. In particular, vendors of anti-malware, IDS/IPS,
34vulnerability risk assessment, and similar products or services do not meet this
35bar.
36
37Please note that the safest version of Chrome/Chromium is always the latest
38stable version — there is no good reason to wait to upgrade, so enterprise
39deployments should always track the latest stable release. When you do this,
40there is no need to further assess the risk of Chromium vulnerabilities: we
41strive to fix vulnerabilities quickly and release often.
42
43<a name="TOC-Can-I-see-these-security-bugs-so-that-I-can-back-port-the-fixes-to-my-downstream-project-"></a>
44## Can I see these security bugs so that I can back-port the fixes to my downstream project?
45
46Many developers of other projects use V8, Chromium, and sub-components of
47Chromium in their own projects. This is great! We are glad that Chromium and V8
48suit your needs.
49
50We want to open up fixed security bugs (as described in the previous answer),
51and will generally give downstream developers access sooner. **However, please
52be aware that backporting security patches from recent versions to old versions
53cannot always work.** (There are several reasons for this: The patch won't apply
54to old versions; the solution was to add or remove a feature or change an API;
55the issue may seem minor until it's too late; and so on.) We believe the latest
56stable versions of Chromium and V8 are the most stable and secure. We also
57believe that tracking the latest stable upstream is usually less work for
58greater benefit in the long run than backporting. We strongly recommend that you
59track the latest stable branches, and we support only the latest stable branch.
60
Eric Lawrence122e86882017-12-07 22:53:0561<a name="TOC-Severity-Guidelines"></a>
62## How does the Chrome team determine severity of security bugs?
63
64See the [severity guidelines](severity-guidelines.md) for more information.
Tom Sepeze8fb33202018-11-01 19:31:3265Only security issues are considered under the security vulnerability rewards
66program. Other types of bugs, which we call "functional bugs", are not.
Eric Lawrence122e86882017-12-07 22:53:0567
Chris Palmer554c66e2017-07-29 01:02:5668<a name="TOC-Are-privacy-issues-considered-security-bugs-"></a>
69## Are privacy issues considered security bugs?
70
Tom Sepeze8fb33202018-11-01 19:31:3271No. The Chrome Privacy team treats privacy issues, such as leaking information
72from Incognito, fingerprinting, and bugs related to deleting browsing data as
73functional bugs.
74
75Privacy issues are not considered under the security vulnerability rewards
76program; the [severity guidelines](severity-guidelines.md) outline the types of
77bugs that are considered security vulnerabilities in more detail.
Chris Palmer554c66e2017-07-29 01:02:5678
Eric Lawrence15fdea252017-08-09 19:37:4179<a name="TOC-Timing-Attacks"></a>
80## Are timing attacks considered security vulnerabilities?
81
82Some timing attacks are considered security vulnerabilities, and some are
83considered privacy vulnerabilities. Timing attacks vary significantly in terms
84of impact, reliability, and exploitability.
85
86Some timing attacks weaken mitigations like ASLR (e.g.
87[Issue 665930](https://crbug.com/665930)). Others attempt to circumvent the same
88origin policy, for instance, by using SVG filters to read pixels
89cross-origin (e.g. [Issue 686253](https://crbug.com/686253) and
90[Issue 615851](https://crbug.com/615851)).
91
92Many timing attacks rely upon the availability of high-resolution timing
93information [Issue 508166](https://crbug.com/508166); such timing data often has
94legitimate usefulness in non-attack scenarios making it unappealing to remove.
95
96Timing attacks against the browser's HTTP Cache (like
97[Issue 74987](https://crbug.com/74987)) can potentially leak information about
98which sites the user has previously loaded. The browser could attempt to protect
99against such attacks (e.g. by bypassing the cache) at the cost of performance
100and thus user-experience. To mitigate against such timing attacks, end-users can
101delete browsing history and/or browse sensitive sites using Chrome's Incognito
102or Guest browsing modes.
103
104Other timing attacks can be mitigated via clever design changes. For instance,
105[Issue 544765](https://crbug.com/544765) describes an attack whereby an attacker
106can probe for the presence of HSTS rules (set by prior site visits) by timing
Eric Lawrence29ca2722018-02-22 19:04:05107the load of resources with URLs "fixed-up" by HSTS. Prior to Chrome 64, HSTS
108rules [were shared](https://crbug.com/774643) between regular browsing and
109Incognito mode, making the attack more interesting. The attack was mitigated by
110changing Content-Security-Policy such that secure URLs will match rules
111demanding non-secure HTTP urls, a fix that has also proven useful to help to
112unblock migrations to HTTPS. Similarly, [Issue 707071](https://crbug.com/707071)
113describes a timing attack in which an attacker could determine what Android
114applications are installed; the attack was mitigated by introducing randomness
115in the execution time of the affected API.
Eric Lawrence15fdea252017-08-09 19:37:41116
Chris Palmer554c66e2017-07-29 01:02:56117<a name="TOC-What-are-the-security-and-privacy-guarantees-of-Incognito-mode-"></a>
118## What are the security and privacy guarantees of Incognito mode?
119
120Bugs in Incognito mode are tracked as privacy bugs, not security bugs.
121
Chris Palmer9839ce42017-08-16 20:59:15122The [Help Center](https://support.google.com/chrome/?p=cpn_incognito) explains
123what privacy protections Incognito mode attempts to enforce. In particular,
124please note that Incognito is not a “do not track” mode, and it does not hide
125aspects of your identity from web sites. Chrome does offer a way to send Do Not
126Track request to servers; see chrome://settings/?search=do+not+track
Chris Palmer554c66e2017-07-29 01:02:56127
128When in Incognito mode, Chrome does not store any new history, cookies, or other
129state in non-volatile storage. However, Incognito windows will be able to access
130some previously-stored state, such as browsing history.
131
132<a name="TOC-Are-denial-of-service-issues-considered-security-bugs-"></a>
133## Are denial of service issues considered security bugs?
134
Tom Sepeze8fb33202018-11-01 19:31:32135No. Denial of Service (DoS) issues are treated as **abuse** or **stability**
136issues rather than security vulnerabilities.
Chris Palmer554c66e2017-07-29 01:02:56137
138* If you find a reproducible crash, we encourage you to [report
139 it](https://bugs.chromium.org/p/chromium/issues/entry?template=Crash%20Report).
140* If you find a site that is abusing the user experience (e.g. preventing you
141 from leaving a site), we encourage you to [report
142 it](https://crbug.com/new).
143
144DoS issues are not considered under the security vulnerability rewards program;
Varun Khanejadf1bc00e2017-08-10 05:22:40145the [severity guidelines](severity-guidelines.md) outline the types of bugs that
146are considered security vulnerabilities in more detail.
Chris Palmer554c66e2017-07-29 01:02:56147
148<a name="TOC-Are-XSS-filter-bypasses-considered-security-bugs-"></a>
149## Are XSS filter bypasses considered security bugs?
150
Eric Lawrence81dba4452019-08-21 14:28:20151No. Chromium once contained a reflected XSS filter called the [XSSAuditor](https://www.chromium.org/developers/design-documents/xss-auditor)
152that was a best-effort second line of defense against reflected XSS flaws found
153in web sites. The XSS Auditor was [removed in Chrome 78](https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/TuYw-EZhO9g/blGViehIAwAJ).
Tom Sepeze8fb33202018-11-01 19:31:32154
Alex Gougha98378c2020-07-08 16:31:55155<a name="TOC-What-if-a-Chrome-component-breaks-an-OS-security-boundary-"</a>
156## What if a Chrome component breaks an OS security boundary?
157
158If Chrome or any of its components (e.g. updater) can be abused to
159perform a local privilege escalation, then it may be treated as a
160valid security vulnerability.
161
162Running any Chrome component with higher privileges than intended is
163not a security bug and we do not recommend running Chrome as an
164Administrator on Windows, or as root on POSIX.
165
Chris Palmer554c66e2017-07-29 01:02:56166<a name="TOC-Why-aren-t-physically-local-attacks-in-Chrome-s-threat-model-"></a>
167## Why aren't physically-local attacks in Chrome's threat model?
168
169People sometimes report that they can compromise Chrome by installing a
170malicious DLL in a place where Chrome will load it, by hooking APIs (e.g. [Issue
171130284](https://crbug.com/130284)), or by otherwise altering the configuration
Tom Sepezf6b2e782020-04-06 23:08:55172of the device.
Chris Palmer554c66e2017-07-29 01:02:56173
174We consider these attacks outside Chrome's threat model, because there is no way
175for Chrome (or any application) to defend against a malicious user who has
Tom Sepezf6b2e782020-04-06 23:08:55176managed to log into your device as you, or who can run software with the
Chris Palmer554c66e2017-07-29 01:02:56177privileges of your operating system user account. Such an attacker can modify
178executables and DLLs, change environment variables like `PATH`, change
179configuration files, read any data your user account owns, email it to
Tom Sepezf6b2e782020-04-06 23:08:55180themselves, and so on. Such an attacker has total control over your device,
Chris Palmer554c66e2017-07-29 01:02:56181and nothing Chrome can do would provide a serious guarantee of defense. This
182problem is not special to Chrome ­— all applications must trust the
183physically-local user.
184
185There are a few things you can do to mitigate risks from people who have
186physical control over **your** computer, in certain circumstances.
187
188* To stop people from reading your data in cases of device theft or loss, use
189 full disk encryption (FDE). FDE is a standard feature of most operating
190 systems, including Windows Vista and later, Mac OS X Lion and later, and
191 some distributions of Linux. (Some older versions of Mac OS X had partial
192 disk encryption: they could encrypt the user’s home folder, which contains
193 the bulk of a user’s sensitive data.) Some FDE systems allow you to use
194 multiple sources of key material, such as the combination of both a
195 password and a key file on a USB token. When available, you should use
196 multiple sources of key material to achieve the strongest defense. Chrome
197 OS encrypts users’ home directories.
198* If you share your computer with other people, take advantage of your
199 operating system’s ability to manage multiple login accounts, and use a
200 distinct account for each person. For guests, Chrome OS has a built-in
201 Guest account for this purpose.
202* Take advantage of your operating system’s screen lock feature.
203* You can reduce the amount of information (including credentials like
204 cookies and passwords) that Chrome will store locally by using Chrome's
205 Content Settings (chrome://settings/content) and turning off the form
206 auto-fill and password storage features
207 ([chrome://settings/search#password](chrome://settings/search#password)).
208
209There is almost nothing you can do to mitigate risks when using a **public**
210computer.
211
212* Assume everything you do on a public computer will become, well, public.
213 You have no control over the operating system or other software on the
214 machine, and there is no reason to trust the integrity of it.
Eric Lawrence29ca2722018-02-22 19:04:05215* If you must use such a computer, use Incognito mode and close all Incognito
216 windows when you are done browsing to limit the amount of data you leave
217 behind. Note that Incognito mode **provides no protection** if the system has
218 already been compromised as described above.
Chris Palmer554c66e2017-07-29 01:02:56219
220<a name="TOC-Why-aren-t-compromised-infected-machines-in-Chrome-s-threat-model-"></a>
221## Why aren't compromised/infected machines in Chrome's threat model?
222
Tom Sepez279d9f42020-11-30 21:58:58223Although the attacker may now be remote, the consequences are essentially the
224same as with physically-local attacks. The attacker's code, when it runs as
225your user account on your machine, can do anything you can do. (See also
226[Microsoft's Ten Immutable Laws Of
Eric Lawrence5e1a9c712018-09-12 20:55:19227Security](https://web.archive.org/web/20160311224620/https://technet.microsoft.com/en-us/library/hh278941.aspx).)
Chris Palmer554c66e2017-07-29 01:02:56228
Tom Sepez279d9f42020-11-30 21:58:58229Other cases covered by this section include leaving a debugger port open to
230the world, remote shells, and so forth.
231
Chris Palmer554c66e2017-07-29 01:02:56232<a name="TOC-What-about-unmasking-of-passwords-with-the-developer-tools-"></a>
233## What about unmasking of passwords with the developer tools?
234
235One of the most frequent reports we receive is password disclosure using the
236Inspect Element feature (see [Issue 126398](https://crbug.com/126398) for an
237example). People reason that "If I can see the password, it must be a bug."
238However, this is just one of the [physically-local attacks described in the
239previous
240section](#TOC-Why-aren-t-physically-local-attacks-in-Chrome-s-threat-model-),
241and all of those points apply here as well.
242
243The reason the password is masked is only to prevent disclosure via
244"shoulder-surfing" (i.e. the passive viewing of your screen by nearby persons),
245not because it is a secret unknown to the browser. The browser knows the
246password at many layers, including JavaScript, developer tools, process memory,
247and so on. When you are physically local to the computer, and only when you are
248physically local to the computer, there are, and always will be, tools for
249extracting the password from any of these places.
250
251<a name="TOC-Does-entering-JavaScript:-URLs-in-the-URL-bar-or-running-script-in-the-developer-tools-mean-there-s-an-XSS-vulnerability-"></a>
Avi Drissman36d4e2e2017-07-31 20:54:39252## Does entering JavaScript: URLs in the URL bar or running script in the developer tools mean there's an XSS vulnerability?
Chris Palmer554c66e2017-07-29 01:02:56253
Eric Lawrence29ca2722018-02-22 19:04:05254[No](https://crbug.com/81697). Chrome does not attempt to prevent the user from
255knowingly running script against loaded documents, either by entering script in
256the Developer Tools console or by typing a JavaScript: URI into the URL bar.
257Chrome and other browsers do undertake some efforts to prevent *paste* of script
258URLs in the URL bar (to limit
Chris Palmer554c66e2017-07-29 01:02:56259[social-engineering](https://blogs.msdn.microsoft.com/ieinternals/2011/05/19/socially-engineered-xss-attacks/))
260but users are otherwise free to invoke script against pages using either the URL
261bar or the DevTools console.
262
Tom Sepez5b700482020-04-06 20:07:21263<a name="TOC-Does-executing-JavaScript-from-a-bookmark-mean-there-s-an-XSS-vulnerability-"></a>
264## Does executing JavaScript from a bookmark mean there's an XSS vulnerability?
265
266No. Chromium allows users to create bookmarks to JavaScript URLs that will run
Chris Palmer554c66e2017-07-29 01:02:56267on the currently-loaded page when the user clicks the bookmark; these are called
268[bookmarklets](https://en.wikipedia.org/wiki/Bookmarklet).
269
Tom Sepezfeca2de2020-04-01 22:58:29270<a name="TOC-Does-executing-JavaScript-in-a-PDF-file-mean-there-s-an-XSS-vulnerability-"></a>
271## Does executing JavaScript in a PDF file mean there's an XSS vulnerability?
272
273No. PDF files have the ability to run JavaScript, usually to facilitate field
274validation during form fill-out. Note that the set of bindings provided to
275the PDF are more limited than those provided by the DOM to HTML documents (e.g.
276no document.cookie).
277
Chris Palmer554c66e2017-07-29 01:02:56278<a name="TOC-Is-Chrome-s-support-for-userinfo-in-HTTP-URLs-e.g.-http:-user:password-example.com-considered-a-vulnerability-"></a>
279## Is Chrome's support for userinfo in HTTP URLs (e.g. http://user:[email protected]) considered a vulnerability?
280
281[Not at this time](https://crbug.com/626951). Chrome supports HTTP and HTTPS
282URIs with username and password information embedded within them for
283compatibility with sites that require this feature. Notably, Chrome will
284suppress display of the username and password information after navigation in
285the URL box to limit the effectiveness of spoofing attacks that may try to
286mislead the user. For instance, navigating to
287`http://[email protected]` will show an address of
288`http://evil.example.com` after the page loads.
289
290<a name="TOC-Why-isn-t-passive-browser-fingerprinting-including-passive-cookies-in-Chrome-s-threat-model-"></a>
Chris Palmer8d95482a2019-08-28 22:48:45291<a name="TOC-What-is-Chrome-s-threat-model-for-fingerprinting-"></a>
292## What is Chrome's threat model for fingerprinting?
Chris Palmer554c66e2017-07-29 01:02:56293
Chris Palmer8d95482a2019-08-28 22:48:45294> **Update, August 2019:** Please note that this answer has changed. We have
295> updated our threat model to include fingerprinting.
Chris Palmer554c66e2017-07-29 01:02:56296
Chris Palmer8d95482a2019-08-28 22:48:45297Although [we do not consider fingerprinting issues to be *security
298vulnerabilities*](#TOC-Are-privacy-issues-considered-security-bugs-), we do now
299consider them to be privacy bugs that we will try to resolve. We distinguish two
300forms of fingerprinting.
Chris Palmer554c66e2017-07-29 01:02:56301
Chris Palmer8d95482a2019-08-28 22:48:45302* **Passive fingerprinting** refers to fingerprinting techniques that do not
303require a JavaScript API call to achieve. This includes (but is not limited to)
304mechanisms like [ETag
305cookies](https://en.wikipedia.org/wiki/HTTP_ETag#Tracking_using_ETags) and [HSTS
306cookies](https://security.stackexchange.com/questions/79518/what-are-hsts-super-cookies).
307* **Active fingerprinting** refers to fingerprinting techniques that do require
308a JavaScript API call to achieve. Examples include most of the techniques in
309[EFF's Panopticlick proof of concept](https://panopticlick.eff.org).
Chris Palmer554c66e2017-07-29 01:02:56310
Chris Palmer8d95482a2019-08-28 22:48:45311For passive fingerprinting, our ultimate goal is (to the extent possible) to
312reduce the information content available to below the threshold for usefulness.
313
314For active fingerprinting, our ultimate goal is to establish a [privacy
315budget](https://github.com/bslassey/privacy-budget) and to keep web origins
316below the budget (such as by rejecting some API calls when the origin exceeds
317its budget). To avoid breaking rich web applications that people want to use,
318Chrome may increase an origin's budget when it detects that a person is using
319the origin heavily. As with passive fingerprinting, our goal is to set the
320default budget below the threshold of usefulness for fingerprinting.
321
322These are both long-term goals. As of this writing (August 2019) we do not
323expect that Chrome will immediately achieve them.
324
325For background on fingerprinting and the difficulty of stopping it, see [Arvind
326Narayanan's site](https://33bits.wordpress.com/about/) and [Peter Eckersley's
327discussion of the information theory behind
328Panopticlick](https://www.eff.org/deeplinks/2010/01/primer-information-theory-and-privacy).
329There is also [a pretty good analysis of in-browser fingerprinting
330vectors](https://dev.chromium.org/Home/chromium-security/client-identification-mechanisms).
Chris Palmer554c66e2017-07-29 01:02:56331
332<a name="TOC-Where-are-the-security-indicators-located-in-the-browser-window-"></a>
333## Where are the security indicators located in the browser window?
334
335The topmost portion of the browser window, consisting of the **Omnibox** (or
336**Location Bar**), navigation icons, menu icon, and other indicator icons, is
337sometimes called the browser **chrome** (not to be confused with the Chrome
338Browser itself). Actual security indicators can only appear in this section of
339the window. There can be no trustworthy security indicators elsewhere.
340
341Furthermore, Chrome can only guarantee that it is correctly representing URLs
342and their origins at the end of all navigation. Quirks of URL parsing, HTTP
343redirection, and so on are not security concerns unless Chrome is
344misrepresenting a URL or origin after navigation has completed.
345
346Browsers present a dilemma to the user since the output is a combination of
347information coming from both trustworthy sources (the browser itself) and
348untrustworthy sources (the web page), and the untrustworthy sources are allowed
349virtually unlimited control over graphical presentation. The only restriction on
350the page's presentation is that it is confined to the large rectangular area
351directly underneath the chrome, called the **viewport**. Things like hover text
352and URL preview(s), shown in the viewport, are entirely under the control of the
353web page itself. They have no guaranteed meaning, and function only as the page
354desires. This can be even more confusing when pages load content that looks like
355chrome. For example, many pages load images of locks, which look similar to the
356meaningful HTTPS lock in the Omnibox, but in fact do not convey any meaningful
357information about the transport security of that page.
358
359When the browser needs to show trustworthy information, such as the bubble
360resulting from a click on the lock icon, it does so by making the bubble overlap
361chrome. In the case of the lock bubble, it is a small triangular bump in the
362border of the bubble that overlays the chrome. This visual detail can't be
363imitated by the page itself since the page is confined to the viewport.
364
365<a name="TOC-Why-does-Chrome-show-a-green-lock-even-if-my-HTTPS-connection-is-being-proxied-"></a>
366## Why does Chrome show a green lock, even if my HTTPS connection is being proxied?
367
368Some types of software intercept HTTPS connections. Examples include anti-virus
369software, corporate network monitoring tools, and school censorship software. In
370order for the interception to work, you need to install a private trust anchor
371(root certificate) onto your computer. This may have happened when you installed
372your anti-virus software, or when your company's network administrator set up
373your computer. If that has occurred, your HTTPS connections can be viewed or
374modified by the software.
375
376Since you have allowed the trust anchor to be installed onto your computer,
377Chrome assumes that you have consented to HTTPS interception. Anyone who can add
378a trust anchor to your computer can make other changes to your computer, too,
379including changing Chrome. (See also [Why aren't physically-local attacks in
Avi Drissman36d4e2e2017-07-31 20:54:39380Chrome's threat model?](#TOC-Why-aren-t-physically-local-attacks-in-Chrome-s-threat-model-).)
Chris Palmer554c66e2017-07-29 01:02:56381
382<a name="TOC-Why-can-t-I-select-Proceed-Anyway-on-some-HTTPS-error-screens-"></a>
383## Why can’t I select Proceed Anyway on some HTTPS error screens?
384
385A key guarantee of HTTPS is that Chrome can be relatively certain that it is
386connecting to the true web server and not an impostor. Some sites request an
387even higher degree of protection for their users (i.e. you): they assert to
388Chrome (via Strict Transport Security —
Xiaoyin Liub7985e52017-09-21 18:07:46389[HSTS](https://tools.ietf.org/html/rfc6797) — or by other means) that any
Chris Palmer554c66e2017-07-29 01:02:56390server authentication error should be fatal, and that Chrome must close the
391connection. If you encounter such a fatal error, it is likely that your network
392is under attack, or that there is a network misconfiguration that is
393indistinguishable from an attack.
394
395The best thing you can do in this situation is to raise the issue to your
396network provider (or corporate IT department).
397
398Chrome shows non-recoverable HTTPS errors only in cases where the true server
399has previously asked for this treatment, and when it can be relatively certain
400that the current server is not the true server.
401
402<a name="TOC-How-does-key-pinning-interact-with-local-proxies-and-filters-"></a>
403## How does key pinning interact with local proxies and filters?
404
405To enable certificate chain validation, Chrome has access to two stores of trust
Adam Langleyc078ba82018-12-17 17:25:46406anchors (i.e. certificates that are empowered as issuers). One trust anchor
407store is the system or public trust anchor store, and the other other is the
408local or private trust anchor store. The public store is provided as part of
409the operating system, and intended to authenticate public internet servers. The
Chris Palmer554c66e2017-07-29 01:02:56410private store contains certificates installed by the user or the administrator
411of the client machine. Private intranet servers should authenticate themselves
412with certificates issued by a private trust anchor.
413
414Chrome’s key pinning feature is a strong form of web site authentication that
415requires a web server’s certificate chain not only to be valid and to chain to a
416known-good trust anchor, but also that at least one of the public keys in the
417certificate chain is known to be valid for the particular site the user is
418visiting. This is a good defense against the risk that any trust anchor can
419authenticate any web site, even if not intended by the site owner: if an
420otherwise-valid chain does not include a known pinned key (“pin”), Chrome will
421reject it because it was not issued in accordance with the site operator’s
422expectations.
423
424Chrome does not perform pin validation when the certificate chain chains up to a
425private trust anchor. A key result of this policy is that private trust anchors
426can be used to proxy (or
Xiaoyin Liub7985e52017-09-21 18:07:46427[MITM](https://en.wikipedia.org/wiki/Man-in-the-middle_attack)) connections, even
Chris Palmer554c66e2017-07-29 01:02:56428to pinned sites. “Data loss prevention” appliances, firewalls, content filters,
429and malware can use this feature to defeat the protections of key pinning.
430
431We deem this acceptable because the proxy or MITM can only be effective if the
432client machine has already been configured to trust the proxy’s issuing
433certificate — that is, the client is already under the control of the person who
434controls the proxy (e.g. the enterprise’s IT administrator). If the client does
435not trust the private trust anchor, the proxy’s attempt to mediate the
436connection will fail as it should.
437
Adam Langleyc078ba82018-12-17 17:25:46438<a name="TOC-When-is-key-pinning-enabled-"></a>
439## When is key pinning enabled?
440
441Key pinning is enabled for Chrome-branded, non-mobile builds when the local
442clock is within ten weeks of the embedded build timestamp. Key pinning is a
443useful security measure but it tightly couples client and server configurations
444and completely breaks when those configurations are out of sync. In order to
445manage that risk we need to ensure that we can promptly update pinning clients
Chris Palmer59877ec2019-11-22 01:28:09446in an emergency and ensure that non-emergency changes can be deployed in a
Adam Langleyc078ba82018-12-17 17:25:46447reasonable timeframe.
448
449Each of the conditions listed above helps ensure those properties:
450Chrome-branded builds are those that Google provides and they all have an
451auto-update mechanism that can be used in an emergency. However, auto-update on
452mobile devices is significantly less effective thus they are excluded. Even in
453cases where auto-update is generally effective, there are still non-trivial
454populations of stragglers for various reasons. The ten-week timeout prevents
455those stragglers from causing problems for regular, non-emergency changes and
456allows stuck users to still, for example, conduct searches and access Chrome's
457homepage to hopefully get unstuck.
458
459In order to determine whether key pinning is active, try loading
460[https://pinningtest.appspot.com](https://pinningtest.appspot.com). If key
461pinning is active the load will _fail_ with a pinning error.
462
Chris Palmer38d751d002017-08-23 17:37:35463<a name="TOC-How-does-certificate-transparency-interact-with-local-proxies-and-filters-"></a>
464## How does Certificate Transparency interact with local proxies and filters?
465
Chris Palmer413f3c02017-08-23 17:47:54466Just as [pinning only applies to publicly-trusted trust
467anchors](#TOC-How-does-key-pinning-interact-with-local-proxies-and-filters-),
468Chrome only evaluates Certificate Transparency (CT) for publicly-trusted trust
469anchors. Thus private trust anchors, such as for enterprise middle-boxes and AV
470proxies, do not need to be publicly logged in a CT log.
Chris Palmer38d751d002017-08-23 17:37:35471
Chris Palmer554c66e2017-07-29 01:02:56472<a name="TOC-Can-I-use-EMET-to-help-protect-Chrome-against-attack-on-Microsoft-Windows-"></a>
473## Can I use EMET to help protect Chrome against attack on Microsoft Windows?
474
475There are [known compatibility
476problems](https://sites.google.com/a/chromium.org/dev/Home/chromium-security/chromium-and-emet)
477between Microsoft's EMET anti-exploit toolkit and some versions of Chrome. These
478can prevent Chrome from running in some configurations. Moreover, the Chrome
479security team does not recommend the use of EMET with Chrome because its most
480important security benefits are redundant with or superseded by built-in attack
481mitigations within the browser. For users, the very marginal security benefit is
482not usually a good trade-off for the compatibility issues and performance
483degradation the toolkit can cause.
484
485<a name="TOC-Why-are-some-web-platform-features-only-available-in-HTTPS-page-loads-"></a>
486## Why are some web platform features only available in HTTPS page-loads?
487
488The full answer is here: we [Prefer Secure Origins For Powerful New
489Features](https://www.chromium.org/Home/chromium-security/prefer-secure-origins-for-powerful-new-features).
490In short, many web platform features give web origins access to sensitive new
491sources of information, or significant power over a user's experience with their
Eric Romaned127b672018-01-23 19:36:38492computer/phone/watch/etc., or over their experience with it. We would therefore
Chris Palmer554c66e2017-07-29 01:02:56493like to have some basis to believe the origin meets a minimum bar for security,
494that the sensitive information is transported over the Internet in an
Eric Romaned127b672018-01-23 19:36:38495authenticated and confidential way, and that users can make meaningful choices
Chris Palmer554c66e2017-07-29 01:02:56496to trust or not trust a web origin.
497
498Note that the reason we require secure origins for WebCrypto is slightly
499different: An application that uses WebCrypto is almost certainly using it to
500provide some kind of security guarantee (e.g. encrypted instant messages or
501email). However, unless the JavaScript was itself transported to the client
502securely, it cannot actually provide any guarantee. (After all, a MITM attacker
503could have modified the code, if it was not transported securely.)
504
505<a name="TOC-Which-origins-are-secure-"></a>
506## Which origins are "secure"?
507
508Secure origins are those that match at least one of the following (scheme, host,
509port) patterns:
510
511* (https, *, *)
512* (wss, *, *)
513* (*, localhost, *)
514* (*, 127/8, *)
515* (*, ::1/128, *)
516* (file, *, —)
517* (chrome-extension, *, —)
518
519That is, secure origins are those that load resources either from the local
520machine (necessarily trusted) or over the network from a
521cryptographically-authenticated server. See [Prefer Secure Origins For Powerful
522New
523Features](https://sites.google.com/a/chromium.org/dev/Home/chromium-security/prefer-secure-origins-for-powerful-new-features)
524for more details.
525
526<a name="TOC-What-s-the-story-with-certificate-revocation-"></a>
527## What's the story with certificate revocation?
528
529Chrome's primary mechanism for checking the revocation status of HTTPS
530certificates is
Xiaoyin Liub7985e52017-09-21 18:07:46531[CRLsets](https://dev.chromium.org/Home/chromium-security/crlsets).
Chris Palmer554c66e2017-07-29 01:02:56532
533Chrome also supports Online Certificate Status Protocol (OCSP). However, the
534effectiveness of OCSP is is essentially 0 unless the client fails hard (refuses
535to connect) if it cannot get a live, valid OCSP response. No browser has OCSP
536set to hard-fail by default, for good reasons explained by Adam Langley (see
537[https://www.imperialviolet.org/2014/04/29/revocationagain.html](https://www.imperialviolet.org/2014/04/29/revocationagain.html) and
538[https://www.imperialviolet.org/2014/04/19/revchecking.html](https://www.imperialviolet.org/2014/04/19/revchecking.html)).
539
540Stapled OCSP with the Must Staple option (hard-fail if a valid OCSP response is
541not stapled to the certificate) is a much better solution to the revocation
542problem than non-stapled OCSP. CAs and browsers are working toward that solution
543(see the
Xiaoyin Liub7985e52017-09-21 18:07:46544[Internet-Draft](https://tools.ietf.org/html/draft-hallambaker-tlssecuritypolicy-03)).
Chris Palmer554c66e2017-07-29 01:02:56545
546Additionally, non-stapled OCSP poses a privacy problem: in order to check the
547status of a certificate, the client must query an OCSP responder for the status
548of the certificate, thus exposing a user's HTTPS browsing history to the
549responder (a third party).
550
551That said, you can use enterprise policies to [enable soft-fail
Felipe Andrade239aaf3c2019-09-11 12:31:58552OCSP](https://cloud.google.com/docs/chrome-enterprise/policies/?policy=EnableOnlineRevocationChecks)
Chris Palmer554c66e2017-07-29 01:02:56553and hard-fail OCSP for [local trust
Felipe Andrade239aaf3c2019-09-11 12:31:58554anchors](https://cloud.google.com/docs/chrome-enterprise/policies/?policy=RequireOnlineRevocationChecksForLocalAnchors).
Chris Palmer554c66e2017-07-29 01:02:56555
556Chrome performs online checking for [Extended
557Validation](https://cabforum.org/about-ev-ssl/) certificates if it does not
558already have a non-expired CRLSet entry covering the domain. If Chrome does not
559get a response, it simply downgrades the security indicator to Domain Validated.
560
561See also [Issue 361820](https://crbug.com/361820) for more discussion of the
562user-facing UX.
563
564<a name="TOC-Why-does-the-Password-Manager-ignore-autocomplete-off-for-password-fields-"></a>
565## Why does the Password Manager ignore `autocomplete='off'` for password fields?
566
567Ignoring `autocomplete='off'` for password fields allows the password manager to
568give more power to users to manage their credentials on websites. It is the
569security team's view that this is very important for user security by allowing
570users to have unique and more complex passwords for websites. As it was
571originally implemented, autocomplete='off' for password fields took control away
572from the user and gave control to the web site developer, which was also a
573violation of the [priority of
574constituencies](http://www.schemehostport.com/2011/10/priority-of-constituencies.html).
575For a longer discussion on this, see the [mailing list
576announcement](https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/zhhj7hCip5c).
577
Eric Lawrence122e86882017-12-07 22:53:05578<a name="TOC-Signout-of-Chrome"></a>
579## Signing out of Chrome does not delete previously-synced data?
580
581If you have signed into Chrome and subsequently sign out of Chrome, previously
582saved passwords and other data are not deleted from your device unless you
583select that option when signing out of Chrome.
584
585If you change your Google password, synced data will no longer be updated in
586Chrome instances until you provide the new password to Chrome on each device
587configured to sync. However, previously synced data [remains available](https://crbug.com/792967)
588on each previously-syncing device unless manually removed.
589
Chris Palmer554c66e2017-07-29 01:02:56590<a name="TOC-Why-doesn-t-the-Password-Manager-save-my-Google-password-if-I-am-using-Chrome-Sync-"></a>
591## Why doesn't the Password Manager save my Google password if I am using Chrome Sync?
592
593In its default mode, Chrome Sync uses your Google password to protect all the
594other passwords in the Chrome Password Manager.
595
596In general, it is a bad idea to store the credential that protects an asset in
597the same place as the asset itself. An attacker who could temporarily compromise
598the Chrome Password Manager could, by stealing your Google password, obtain
599continuing access to all your passwords. Imagine you store your valuables in a
600safe, and you accidentally forget to close the safe. If a thief comes along,
601they might steal all of your valuables. That’s bad, but imagine if you had also
602left the combination to the safe inside as well. Now the bad guy has access to
603all of your valuables and all of your future valuables, too. The password
604manager is similar, except you probably would not even know if a bad guy
605accessed it.
606
607To prevent this type of attack, Chrome Password Manager does not save the Google
608password for the account you sync with Chrome. If you have multiple Google
609accounts, the Chrome Password Manager will save the passwords for accounts other
610than the one you are syncing with.
611
612<a name="TOC-Does-the-Password-Manager-store-my-passwords-encrypted-on-disk-"></a>
613## Does the Password Manager store my passwords encrypted on disk?
614
615Chrome generally tries to use the operating system's user storage mechanism
616wherever possible and stores them encrypted on disk, but it is platform
617specific:
618
619* On Windows, Chrome uses the [Data Protection API
620 (DPAPI)](https://msdn.microsoft.com/en-us/library/ms995355.aspx) to bind
621 your passwords to your user account and store them on disk encrypted with
622 a key only accessible to processes running as the same logged on user.
623* On macOS, Chrome previously stored credentials directly in the user's
624 Keychain, but for technical reasons, it has switched to storing the
625 credentials in "Login Data" in the Chrome users profile directory, but
626 encrypted on disk with a key that is then stored in the user's Keychain.
627 See [Issue 466638](https://crbug.com/466638) for further explanation.
Christos Froussios2a02cc52019-07-30 07:04:46628* On Linux, Chrome previously stored credentials directly in the user's
629 Gnome Keyring or KWallet, but for technical reasons, it has switched to
630 storing the credentials in "Login Data" in the Chrome user's profile directory,
631 but encrypted on disk with a key that is then stored in the user's Gnome
632 Keyring or KWallet. If there is no available Keyring or KWallet, the data is
633 not encrypted when stored.
Chris Palmer554c66e2017-07-29 01:02:56634* On iOS, passwords are currently stored directly in the iOS Keychain and
635 referenced from the rest of the metadata stored in a separate DB. The plan
636 there is to just store them in plain text in the DB, because iOS gives
637 strong guarantees about only Chrome being able to access its storage. See
638 [Issue 520437](https://crbug.com/520437) to follow this migration.
639
640<a name="TOC-I-found-a-phishing-or-malware-site-not-blocked-by-Safe-Browsing.-Is-this-a-security-vulnerability-"></a>
641## I found a phishing or malware site not blocked by Safe Browsing. Is this a security vulnerability?
642
643Malicious sites not yet blocked by Safe Browsing can be reported via
644[https://www.google.com/safebrowsing/report_phish/](https://www.google.com/safebrowsing/report_phish/).
645Safe Browsing is primarily a blocklist of known-unsafe sites; the feature warns
646the user if they attempt to navigate to a site known to deliver phishing or
647malware content. You can learn more about this feature in these references:
648
649* [https://developers.google.com/safe-browsing/](https://developers.google.com/safe-browsing/)
650* [https://www.google.com/transparencyreport/safebrowsing/](https://www.google.com/transparencyreport/safebrowsing/)
651
652In general, it is not considered a security bug if a given malicious site is not
653blocked by the Safe Browsing feature, unless the site is on the blocklist but is
654allowed to load anyway. For instance, if a site found a way to navigate through
655the blocking red warning page without user interaction, that would be a security
656bug. A malicious site may exploit a security vulnerability (for instance,
657spoofing the URL in the **Location Bar**). This would be tracked as a security
658vulnerability in the relevant feature, not Safe Browsing itself.
659
660<a name="TOC-What-is-the-security-story-for-Service-Workers-"></a>
661## What is the security story for Service Workers?
662
663See our dedicated [Service Worker Security
Eric Lawrence15fdea252017-08-09 19:37:41664FAQ](https://chromium.googlesource.com/chromium/src/+/master/docs/security/service-worker-security-faq.md).
Chris Palmer554c66e2017-07-29 01:02:56665
Mustafa Emre Acerfbff231b2019-07-01 19:28:59666<a name="TOC-What-about-URL-spoofs-using-Internationalized-Domain-Names-IDN-"></a>
667## What about URL spoofs using Internationalized Domain Names (IDN)?
668
669We try to balance the needs of our international userbase while protecting users
670against confusable homograph attacks. Despite this, there are a list of known
671IDN display issues we are still working on.
672
673* Please see [this document](https://docs.google.com/document/d/1_xJz3J9kkAPwk3pma6K3X12SyPTyyaJDSCxTfF8Y5sU)
674for a list of known issues and how we handle them.
675* [This document](https://www.chromium.org/developers/design-documents/idn-in-google-chrome)
676describes Chrome's IDN policy in detail.
677
Emily Starkb1f9f7f2020-03-27 00:25:31678<a name="TOC-Chrome-silently-syncs-extensions-across-devices.-Is-this-a-security-vulnerability-"></a>
679## Chrome silently syncs extensions across devices. Is this a security vulnerability?
680
681If an attacker has access to one of a victim's devices, the attacker can install
682an extension which will be synced to the victim's other sync-enabled
683devices. Similarly, an attacker who phishes a victim's Google credentials can
684sign in to Chrome as the victim and install an extension, which will be synced
685to the victim's other sync-enabled devices. Sync thereby enables an attacker to
686elevate phished credentials or physical access to persistent access on all of a
687victim's sync-enabled devices.
688
689To mitigate this issue, Chrome only syncs extensions that have been installed
690from the Chrome Web Store. Extensions in the Chrome Web Store are monitored for
691abusive behavior.
692
693In the future, we may pursue further mitigations. However, because an attacker
694must already have the victim's Google credentials and/or [physical access to a
695device](#TOC-Why-aren-t-physically-local-attacks-in-Chrome-s-threat-model), we
696don't consider this attack a security vulnerability.
697
698We **do** consider it a vulnerability if an attacker can get an extension to
699sync to a victim's device without either of the above preconditions. For
700example, we consider it a vulnerability if an attacker could craft a request to
701Google's sync servers that causes an extension to be installed to a user's
702device, or if an attacker could entice a victim to visit a webpage that causes
703an extension to be installed on their device(s). Please report such bugs via
704https://bugs.chromium.org/p/chromium/issues/entry?template=Security+Bug.
705
Tom Sepezfeca2de2020-04-01 22:58:29706<a name="TOC-Are-PDF-files-static-content-in-Chromium-"></a>
707## Are PDF files static content in Chromium?
708
709No. PDF files have some powerful capabilities including invoking printing or
710posting form data. To mitigate abuse of these capabiliies, such as beaconing
711upon document open, we require interaction with the document (a "user gesture")
712before allowing their use.
Adrian Taylorb3f73122020-04-30 00:56:14713
714<a name="TOC-Why-arent-null-pointer-dereferences-considered-security-bugs-"></a>
715## Why aren't null pointer dereferences considered security bugs?
716
717Null pointer dereferences with consistent, small, fixed offsets are not considered
718security bugs. A read or write to the NULL page results in a non-exploitable crash.
719If the offset is larger than a page, or if there's uncertainty about whether the
720offset is controllable, it is considered a security bug.