Back to home page

OSCL-LXR

 
 

    


0001 .. _embargoed_hardware_issues:
0002 
0003 Embargoed hardware issues
0004 =========================
0005 
0006 Scope
0007 -----
0008 
0009 Hardware issues which result in security problems are a different category
0010 of security bugs than pure software bugs which only affect the Linux
0011 kernel.
0012 
0013 Hardware issues like Meltdown, Spectre, L1TF etc. must be treated
0014 differently because they usually affect all Operating Systems ("OS") and
0015 therefore need coordination across different OS vendors, distributions,
0016 hardware vendors and other parties. For some of the issues, software
0017 mitigations can depend on microcode or firmware updates, which need further
0018 coordination.
0019 
0020 .. _Contact:
0021 
0022 Contact
0023 -------
0024 
0025 The Linux kernel hardware security team is separate from the regular Linux
0026 kernel security team.
0027 
0028 The team only handles the coordination of embargoed hardware security
0029 issues.  Reports of pure software security bugs in the Linux kernel are not
0030 handled by this team and the reporter will be guided to contact the regular
0031 Linux kernel security team (:ref:`Documentation/admin-guide/
0032 <securitybugs>`) instead.
0033 
0034 The team can be contacted by email at <hardware-security@kernel.org>. This
0035 is a private list of security officers who will help you to coordinate an
0036 issue according to our documented process.
0037 
0038 The list is encrypted and email to the list can be sent by either PGP or
0039 S/MIME encrypted and must be signed with the reporter's PGP key or S/MIME
0040 certificate. The list's PGP key and S/MIME certificate are available from
0041 the following URLs:
0042 
0043   - PGP: https://www.kernel.org/static/files/hardware-security.asc
0044   - S/MIME: https://www.kernel.org/static/files/hardware-security.crt
0045 
0046 While hardware security issues are often handled by the affected hardware
0047 vendor, we welcome contact from researchers or individuals who have
0048 identified a potential hardware flaw.
0049 
0050 Hardware security officers
0051 ^^^^^^^^^^^^^^^^^^^^^^^^^^
0052 
0053 The current team of hardware security officers:
0054 
0055   - Linus Torvalds (Linux Foundation Fellow)
0056   - Greg Kroah-Hartman (Linux Foundation Fellow)
0057   - Thomas Gleixner (Linux Foundation Fellow)
0058 
0059 Operation of mailing-lists
0060 ^^^^^^^^^^^^^^^^^^^^^^^^^^
0061 
0062 The encrypted mailing-lists which are used in our process are hosted on
0063 Linux Foundation's IT infrastructure. By providing this service, members
0064 of Linux Foundation's IT operations personnel technically have the
0065 ability to access the embargoed information, but are obliged to
0066 confidentiality by their employment contract. Linux Foundation IT
0067 personnel are also responsible for operating and managing the rest of
0068 kernel.org infrastructure.
0069 
0070 The Linux Foundation's current director of IT Project infrastructure is
0071 Konstantin Ryabitsev.
0072 
0073 
0074 Non-disclosure agreements
0075 -------------------------
0076 
0077 The Linux kernel hardware security team is not a formal body and therefore
0078 unable to enter into any non-disclosure agreements.  The kernel community
0079 is aware of the sensitive nature of such issues and offers a Memorandum of
0080 Understanding instead.
0081 
0082 
0083 Memorandum of Understanding
0084 ---------------------------
0085 
0086 The Linux kernel community has a deep understanding of the requirement to
0087 keep hardware security issues under embargo for coordination between
0088 different OS vendors, distributors, hardware vendors and other parties.
0089 
0090 The Linux kernel community has successfully handled hardware security
0091 issues in the past and has the necessary mechanisms in place to allow
0092 community compliant development under embargo restrictions.
0093 
0094 The Linux kernel community has a dedicated hardware security team for
0095 initial contact, which oversees the process of handling such issues under
0096 embargo rules.
0097 
0098 The hardware security team identifies the developers (domain experts) who
0099 will form the initial response team for a particular issue. The initial
0100 response team can bring in further developers (domain experts) to address
0101 the issue in the best technical way.
0102 
0103 All involved developers pledge to adhere to the embargo rules and to keep
0104 the received information confidential. Violation of the pledge will lead to
0105 immediate exclusion from the current issue and removal from all related
0106 mailing-lists. In addition, the hardware security team will also exclude
0107 the offender from future issues. The impact of this consequence is a highly
0108 effective deterrent in our community. In case a violation happens the
0109 hardware security team will inform the involved parties immediately. If you
0110 or anyone becomes aware of a potential violation, please report it
0111 immediately to the Hardware security officers.
0112 
0113 
0114 Process
0115 ^^^^^^^
0116 
0117 Due to the globally distributed nature of Linux kernel development,
0118 face-to-face meetings are almost impossible to address hardware security
0119 issues.  Phone conferences are hard to coordinate due to time zones and
0120 other factors and should be only used when absolutely necessary. Encrypted
0121 email has been proven to be the most effective and secure communication
0122 method for these types of issues.
0123 
0124 Start of Disclosure
0125 """""""""""""""""""
0126 
0127 Disclosure starts by contacting the Linux kernel hardware security team by
0128 email. This initial contact should contain a description of the problem and
0129 a list of any known affected hardware. If your organization builds or
0130 distributes the affected hardware, we encourage you to also consider what
0131 other hardware could be affected.
0132 
0133 The hardware security team will provide an incident-specific encrypted
0134 mailing-list which will be used for initial discussion with the reporter,
0135 further disclosure and coordination.
0136 
0137 The hardware security team will provide the disclosing party a list of
0138 developers (domain experts) who should be informed initially about the
0139 issue after confirming with the developers  that they will adhere to this
0140 Memorandum of Understanding and the documented process. These developers
0141 form the initial response team and will be responsible for handling the
0142 issue after initial contact. The hardware security team is supporting the
0143 response team, but is not necessarily involved in the mitigation
0144 development process.
0145 
0146 While individual developers might be covered by a non-disclosure agreement
0147 via their employer, they cannot enter individual non-disclosure agreements
0148 in their role as Linux kernel developers. They will, however, agree to
0149 adhere to this documented process and the Memorandum of Understanding.
0150 
0151 The disclosing party should provide a list of contacts for all other
0152 entities who have already been, or should be, informed about the issue.
0153 This serves several purposes:
0154 
0155  - The list of disclosed entities allows communication across the
0156    industry, e.g. other OS vendors, HW vendors, etc.
0157 
0158  - The disclosed entities can be contacted to name experts who should
0159    participate in the mitigation development.
0160 
0161  - If an expert which is required to handle an issue is employed by an
0162    listed entity or member of an listed entity, then the response teams can
0163    request the disclosure of that expert from that entity. This ensures
0164    that the expert is also part of the entity's response team.
0165 
0166 Disclosure
0167 """"""""""
0168 
0169 The disclosing party provides detailed information to the initial response
0170 team via the specific encrypted mailing-list.
0171 
0172 From our experience the technical documentation of these issues is usually
0173 a sufficient starting point and further technical clarification is best
0174 done via email.
0175 
0176 Mitigation development
0177 """"""""""""""""""""""
0178 
0179 The initial response team sets up an encrypted mailing-list or repurposes
0180 an existing one if appropriate.
0181 
0182 Using a mailing-list is close to the normal Linux development process and
0183 has been successfully used in developing mitigations for various hardware
0184 security issues in the past.
0185 
0186 The mailing-list operates in the same way as normal Linux development.
0187 Patches are posted, discussed and reviewed and if agreed on applied to a
0188 non-public git repository which is only accessible to the participating
0189 developers via a secure connection. The repository contains the main
0190 development branch against the mainline kernel and backport branches for
0191 stable kernel versions as necessary.
0192 
0193 The initial response team will identify further experts from the Linux
0194 kernel developer community as needed. Bringing in experts can happen at any
0195 time of the development process and needs to be handled in a timely manner.
0196 
0197 If an expert is employed by or member of an entity on the disclosure list
0198 provided by the disclosing party, then participation will be requested from
0199 the relevant entity.
0200 
0201 If not, then the disclosing party will be informed about the experts
0202 participation. The experts are covered by the Memorandum of Understanding
0203 and the disclosing party is requested to acknowledge the participation. In
0204 case that the disclosing party has a compelling reason to object, then this
0205 objection has to be raised within five work days and resolved with the
0206 incident team immediately. If the disclosing party does not react within
0207 five work days this is taken as silent acknowledgement.
0208 
0209 After acknowledgement or resolution of an objection the expert is disclosed
0210 by the incident team and brought into the development process.
0211 
0212 
0213 Coordinated release
0214 """""""""""""""""""
0215 
0216 The involved parties will negotiate the date and time where the embargo
0217 ends. At that point the prepared mitigations are integrated into the
0218 relevant kernel trees and published.
0219 
0220 While we understand that hardware security issues need coordinated embargo
0221 time, the embargo time should be constrained to the minimum time which is
0222 required for all involved parties to develop, test and prepare the
0223 mitigations. Extending embargo time artificially to meet conference talk
0224 dates or other non-technical reasons is creating more work and burden for
0225 the involved developers and response teams as the patches need to be kept
0226 up to date in order to follow the ongoing upstream kernel development,
0227 which might create conflicting changes.
0228 
0229 CVE assignment
0230 """"""""""""""
0231 
0232 Neither the hardware security team nor the initial response team assign
0233 CVEs, nor are CVEs required for the development process. If CVEs are
0234 provided by the disclosing party they can be used for documentation
0235 purposes.
0236 
0237 Process ambassadors
0238 -------------------
0239 
0240 For assistance with this process we have established ambassadors in various
0241 organizations, who can answer questions about or provide guidance on the
0242 reporting process and further handling. Ambassadors are not involved in the
0243 disclosure of a particular issue, unless requested by a response team or by
0244 an involved disclosed party. The current ambassadors list:
0245 
0246   ============= ========================================================
0247   AMD           Tom Lendacky <thomas.lendacky@amd.com>
0248   Ampere        Darren Hart <darren@os.amperecomputing.com>
0249   ARM           Catalin Marinas <catalin.marinas@arm.com>
0250   IBM Power     Anton Blanchard <anton@linux.ibm.com>
0251   IBM Z         Christian Borntraeger <borntraeger@de.ibm.com>
0252   Intel         Tony Luck <tony.luck@intel.com>
0253   Qualcomm      Trilok Soni <tsoni@codeaurora.org>
0254 
0255   Microsoft     James Morris <jamorris@linux.microsoft.com>
0256   VMware
0257   Xen           Andrew Cooper <andrew.cooper3@citrix.com>
0258 
0259   Canonical     John Johansen <john.johansen@canonical.com>
0260   Debian        Ben Hutchings <ben@decadent.org.uk>
0261   Oracle        Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
0262   Red Hat       Josh Poimboeuf <jpoimboe@redhat.com>
0263   SUSE          Jiri Kosina <jkosina@suse.cz>
0264 
0265   Amazon
0266   Google        Kees Cook <keescook@chromium.org>
0267 
0268   GCC
0269   LLVM          Nick Desaulniers <ndesaulniers@google.com>
0270   ============= ========================================================
0271 
0272 If you want your organization to be added to the ambassadors list, please
0273 contact the hardware security team. The nominated ambassador has to
0274 understand and support our process fully and is ideally well connected in
0275 the Linux kernel community.
0276 
0277 Encrypted mailing-lists
0278 -----------------------
0279 
0280 We use encrypted mailing-lists for communication. The operating principle
0281 of these lists is that email sent to the list is encrypted either with the
0282 list's PGP key or with the list's S/MIME certificate. The mailing-list
0283 software decrypts the email and re-encrypts it individually for each
0284 subscriber with the subscriber's PGP key or S/MIME certificate. Details
0285 about the mailing-list software and the setup which is used to ensure the
0286 security of the lists and protection of the data can be found here:
0287 https://korg.wiki.kernel.org/userdoc/remail.
0288 
0289 List keys
0290 ^^^^^^^^^
0291 
0292 For initial contact see :ref:`Contact`. For incident specific mailing-lists
0293 the key and S/MIME certificate are conveyed to the subscribers by email
0294 sent from the specific list.
0295 
0296 Subscription to incident specific lists
0297 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
0298 
0299 Subscription is handled by the response teams. Disclosed parties who want
0300 to participate in the communication send a list of potential subscribers to
0301 the response team so the response team can validate subscription requests.
0302 
0303 Each subscriber needs to send a subscription request to the response team
0304 by email. The email must be signed with the subscriber's PGP key or S/MIME
0305 certificate. If a PGP key is used, it must be available from a public key
0306 server and is ideally connected to the Linux kernel's PGP web of trust. See
0307 also: https://www.kernel.org/signature.html.
0308 
0309 The response team verifies that the subscriber request is valid and adds
0310 the subscriber to the list. After subscription the subscriber will receive
0311 email from the mailing-list which is signed either with the list's PGP key
0312 or the list's S/MIME certificate. The subscriber's email client can extract
0313 the PGP key or the S/MIME certificate from the signature so the subscriber
0314 can send encrypted email to the list.
0315