Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input
[sfrench/cifs-2.6.git] / Documentation / process / embargoed-hardware-issues.rst
1 Embargoed hardware issues
2 =========================
3
4 Scope
5 -----
6
7 Hardware issues which result in security problems are a different category
8 of security bugs than pure software bugs which only affect the Linux
9 kernel.
10
11 Hardware issues like Meltdown, Spectre, L1TF etc. must be treated
12 differently because they usually affect all Operating Systems ("OS") and
13 therefore need coordination across different OS vendors, distributions,
14 hardware vendors and other parties. For some of the issues, software
15 mitigations can depend on microcode or firmware updates, which need further
16 coordination.
17
18 .. _Contact:
19
20 Contact
21 -------
22
23 The Linux kernel hardware security team is separate from the regular Linux
24 kernel security team.
25
26 The team only handles the coordination of embargoed hardware security
27 issues.  Reports of pure software security bugs in the Linux kernel are not
28 handled by this team and the reporter will be guided to contact the regular
29 Linux kernel security team (:ref:`Documentation/admin-guide/
30 <securitybugs>`) instead.
31
32 The team can be contacted by email at <hardware-security@kernel.org>. This
33 is a private list of security officers who will help you to coordinate an
34 issue according to our documented process.
35
36 The list is encrypted and email to the list can be sent by either PGP or
37 S/MIME encrypted and must be signed with the reporter's PGP key or S/MIME
38 certificate. The list's PGP key and S/MIME certificate are available from
39 https://www.kernel.org/....
40
41 While hardware security issues are often handled by the affected hardware
42 vendor, we welcome contact from researchers or individuals who have
43 identified a potential hardware flaw.
44
45 Hardware security officers
46 ^^^^^^^^^^^^^^^^^^^^^^^^^^
47
48 The current team of hardware security officers:
49
50   - Linus Torvalds (Linux Foundation Fellow)
51   - Greg Kroah-Hartman (Linux Foundation Fellow)
52   - Thomas Gleixner (Linux Foundation Fellow)
53
54 Operation of mailing-lists
55 ^^^^^^^^^^^^^^^^^^^^^^^^^^
56
57 The encrypted mailing-lists which are used in our process are hosted on
58 Linux Foundation's IT infrastructure. By providing this service Linux
59 Foundation's director of IT Infrastructure security technically has the
60 ability to access the embargoed information, but is obliged to
61 confidentiality by his employment contract. Linux Foundation's director of
62 IT Infrastructure security is also responsible for the kernel.org
63 infrastructure.
64
65 The Linux Foundation's current director of IT Infrastructure security is
66 Konstantin Ryabitsev.
67
68
69 Non-disclosure agreements
70 -------------------------
71
72 The Linux kernel hardware security team is not a formal body and therefore
73 unable to enter into any non-disclosure agreements.  The kernel community
74 is aware of the sensitive nature of such issues and offers a Memorandum of
75 Understanding instead.
76
77
78 Memorandum of Understanding
79 ---------------------------
80
81 The Linux kernel community has a deep understanding of the requirement to
82 keep hardware security issues under embargo for coordination between
83 different OS vendors, distributors, hardware vendors and other parties.
84
85 The Linux kernel community has successfully handled hardware security
86 issues in the past and has the necessary mechanisms in place to allow
87 community compliant development under embargo restrictions.
88
89 The Linux kernel community has a dedicated hardware security team for
90 initial contact, which oversees the process of handling such issues under
91 embargo rules.
92
93 The hardware security team identifies the developers (domain experts) who
94 will form the initial response team for a particular issue. The initial
95 response team can bring in further developers (domain experts) to address
96 the issue in the best technical way.
97
98 All involved developers pledge to adhere to the embargo rules and to keep
99 the received information confidential. Violation of the pledge will lead to
100 immediate exclusion from the current issue and removal from all related
101 mailing-lists. In addition, the hardware security team will also exclude
102 the offender from future issues. The impact of this consequence is a highly
103 effective deterrent in our community. In case a violation happens the
104 hardware security team will inform the involved parties immediately. If you
105 or anyone becomes aware of a potential violation, please report it
106 immediately to the Hardware security officers.
107
108
109 Process
110 ^^^^^^^
111
112 Due to the globally distributed nature of Linux kernel development,
113 face-to-face meetings are almost impossible to address hardware security
114 issues.  Phone conferences are hard to coordinate due to time zones and
115 other factors and should be only used when absolutely necessary. Encrypted
116 email has been proven to be the most effective and secure communication
117 method for these types of issues.
118
119 Start of Disclosure
120 """""""""""""""""""
121
122 Disclosure starts by contacting the Linux kernel hardware security team by
123 email. This initial contact should contain a description of the problem and
124 a list of any known affected hardware. If your organization builds or
125 distributes the affected hardware, we encourage you to also consider what
126 other hardware could be affected.
127
128 The hardware security team will provide an incident-specific encrypted
129 mailing-list which will be used for initial discussion with the reporter,
130 further disclosure and coordination.
131
132 The hardware security team will provide the disclosing party a list of
133 developers (domain experts) who should be informed initially about the
134 issue after confirming with the developers  that they will adhere to this
135 Memorandum of Understanding and the documented process. These developers
136 form the initial response team and will be responsible for handling the
137 issue after initial contact. The hardware security team is supporting the
138 response team, but is not necessarily involved in the mitigation
139 development process.
140
141 While individual developers might be covered by a non-disclosure agreement
142 via their employer, they cannot enter individual non-disclosure agreements
143 in their role as Linux kernel developers. They will, however, agree to
144 adhere to this documented process and the Memorandum of Understanding.
145
146 The disclosing party should provide a list of contacts for all other
147 entities who have already been, or should be, informed about the issue.
148 This serves several purposes:
149
150  - The list of disclosed entities allows communication accross the
151    industry, e.g. other OS vendors, HW vendors, etc.
152
153  - The disclosed entities can be contacted to name experts who should
154    participate in the mitigation development.
155
156  - If an expert which is required to handle an issue is employed by an
157    listed entity or member of an listed entity, then the response teams can
158    request the disclosure of that expert from that entity. This ensures
159    that the expert is also part of the entity's response team.
160
161 Disclosure
162 """"""""""
163
164 The disclosing party provides detailed information to the initial response
165 team via the specific encrypted mailing-list.
166
167 From our experience the technical documentation of these issues is usually
168 a sufficient starting point and further technical clarification is best
169 done via email.
170
171 Mitigation development
172 """"""""""""""""""""""
173
174 The initial response team sets up an encrypted mailing-list or repurposes
175 an existing one if appropriate.
176
177 Using a mailing-list is close to the normal Linux development process and
178 has been successfully used in developing mitigations for various hardware
179 security issues in the past.
180
181 The mailing-list operates in the same way as normal Linux development.
182 Patches are posted, discussed and reviewed and if agreed on applied to a
183 non-public git repository which is only accessible to the participating
184 developers via a secure connection. The repository contains the main
185 development branch against the mainline kernel and backport branches for
186 stable kernel versions as necessary.
187
188 The initial response team will identify further experts from the Linux
189 kernel developer community as needed. Bringing in experts can happen at any
190 time of the development process and needs to be handled in a timely manner.
191
192 If an expert is employed by or member of an entity on the disclosure list
193 provided by the disclosing party, then participation will be requested from
194 the relevant entity.
195
196 If not, then the disclosing party will be informed about the experts
197 participation. The experts are covered by the Memorandum of Understanding
198 and the disclosing party is requested to acknowledge the participation. In
199 case that the disclosing party has a compelling reason to object, then this
200 objection has to be raised within five work days and resolved with the
201 incident team immediately. If the disclosing party does not react within
202 five work days this is taken as silent acknowledgement.
203
204 After acknowledgement or resolution of an objection the expert is disclosed
205 by the incident team and brought into the development process.
206
207
208 Coordinated release
209 """""""""""""""""""
210
211 The involved parties will negotiate the date and time where the embargo
212 ends. At that point the prepared mitigations are integrated into the
213 relevant kernel trees and published.
214
215 While we understand that hardware security issues need coordinated embargo
216 time, the embargo time should be constrained to the minimum time which is
217 required for all involved parties to develop, test and prepare the
218 mitigations. Extending embargo time artificially to meet conference talk
219 dates or other non-technical reasons is creating more work and burden for
220 the involved developers and response teams as the patches need to be kept
221 up to date in order to follow the ongoing upstream kernel development,
222 which might create conflicting changes.
223
224 CVE assignment
225 """"""""""""""
226
227 Neither the hardware security team nor the initial response team assign
228 CVEs, nor are CVEs required for the development process. If CVEs are
229 provided by the disclosing party they can be used for documentation
230 purposes.
231
232 Process ambassadors
233 -------------------
234
235 For assistance with this process we have established ambassadors in various
236 organizations, who can answer questions about or provide guidance on the
237 reporting process and further handling. Ambassadors are not involved in the
238 disclosure of a particular issue, unless requested by a response team or by
239 an involved disclosed party. The current ambassadors list:
240
241   ============= ========================================================
242   ARM
243   AMD
244   IBM
245   Intel         Tony Luck <tony.luck@intel.com>
246   Qualcomm      Trilok Soni <tsoni@codeaurora.org>
247
248   Microsoft     Sasha Levin <sashal@kernel.org>
249   VMware
250   Xen           Andrew Cooper <andrew.cooper3@citrix.com>
251
252   Canonical     Tyler Hicks <tyhicks@canonical.com>
253   Debian        Ben Hutchings <ben@decadent.org.uk>
254   Oracle        Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
255   Red Hat       Josh Poimboeuf <jpoimboe@redhat.com>
256   SUSE          Jiri Kosina <jkosina@suse.cz>
257
258   Amazon
259   Google        Kees Cook <keescook@chromium.org>
260   ============= ========================================================
261
262 If you want your organization to be added to the ambassadors list, please
263 contact the hardware security team. The nominated ambassador has to
264 understand and support our process fully and is ideally well connected in
265 the Linux kernel community.
266
267 Encrypted mailing-lists
268 -----------------------
269
270 We use encrypted mailing-lists for communication. The operating principle
271 of these lists is that email sent to the list is encrypted either with the
272 list's PGP key or with the list's S/MIME certificate. The mailing-list
273 software decrypts the email and re-encrypts it individually for each
274 subscriber with the subscriber's PGP key or S/MIME certificate. Details
275 about the mailing-list software and the setup which is used to ensure the
276 security of the lists and protection of the data can be found here:
277 https://www.kernel.org/....
278
279 List keys
280 ^^^^^^^^^
281
282 For initial contact see :ref:`Contact`. For incident specific mailing-lists
283 the key and S/MIME certificate are conveyed to the subscribers by email
284 sent from the specific list.
285
286 Subscription to incident specific lists
287 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
288
289 Subscription is handled by the response teams. Disclosed parties who want
290 to participate in the communication send a list of potential subscribers to
291 the response team so the response team can validate subscription requests.
292
293 Each subscriber needs to send a subscription request to the response team
294 by email. The email must be signed with the subscriber's PGP key or S/MIME
295 certificate. If a PGP key is used, it must be available from a public key
296 server and is ideally connected to the Linux kernel's PGP web of trust. See
297 also: https://www.kernel.org/signature.html.
298
299 The response team verifies that the subscriber request is valid and adds
300 the subscriber to the list. After subscription the subscriber will receive
301 email from the mailing-list which is signed either with the list's PGP key
302 or the list's S/MIME certificate. The subscriber's email client can extract
303 the PGP key or the S/MIME certificate from the signature so the subscriber
304 can send encrypted email to the list.
305