162306a36Sopenharmony_ci.. _embargoed_hardware_issues:
262306a36Sopenharmony_ci
362306a36Sopenharmony_ciEmbargoed hardware issues
462306a36Sopenharmony_ci=========================
562306a36Sopenharmony_ci
662306a36Sopenharmony_ciScope
762306a36Sopenharmony_ci-----
862306a36Sopenharmony_ci
962306a36Sopenharmony_ciHardware issues which result in security problems are a different category
1062306a36Sopenharmony_ciof security bugs than pure software bugs which only affect the Linux
1162306a36Sopenharmony_cikernel.
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ciHardware issues like Meltdown, Spectre, L1TF etc. must be treated
1462306a36Sopenharmony_cidifferently because they usually affect all Operating Systems ("OS") and
1562306a36Sopenharmony_citherefore need coordination across different OS vendors, distributions,
1662306a36Sopenharmony_cihardware vendors and other parties. For some of the issues, software
1762306a36Sopenharmony_cimitigations can depend on microcode or firmware updates, which need further
1862306a36Sopenharmony_cicoordination.
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci.. _Contact:
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ciContact
2362306a36Sopenharmony_ci-------
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ciThe Linux kernel hardware security team is separate from the regular Linux
2662306a36Sopenharmony_cikernel security team.
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_ciThe team only handles developing fixes for embargoed hardware security
2962306a36Sopenharmony_ciissues. Reports of pure software security bugs in the Linux kernel are not
3062306a36Sopenharmony_cihandled by this team and the reporter will be guided to contact the regular
3162306a36Sopenharmony_ciLinux kernel security team (:ref:`Documentation/admin-guide/
3262306a36Sopenharmony_ci<securitybugs>`) instead.
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ciThe team can be contacted by email at <hardware-security@kernel.org>. This
3562306a36Sopenharmony_ciis a private list of security officers who will help you to coordinate a
3662306a36Sopenharmony_cifix according to our documented process.
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ciThe list is encrypted and email to the list can be sent by either PGP or
3962306a36Sopenharmony_ciS/MIME encrypted and must be signed with the reporter's PGP key or S/MIME
4062306a36Sopenharmony_cicertificate. The list's PGP key and S/MIME certificate are available from
4162306a36Sopenharmony_cithe following URLs:
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ci  - PGP: https://www.kernel.org/static/files/hardware-security.asc
4462306a36Sopenharmony_ci  - S/MIME: https://www.kernel.org/static/files/hardware-security.crt
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ciWhile hardware security issues are often handled by the affected hardware
4762306a36Sopenharmony_civendor, we welcome contact from researchers or individuals who have
4862306a36Sopenharmony_ciidentified a potential hardware flaw.
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ciHardware security officers
5162306a36Sopenharmony_ci^^^^^^^^^^^^^^^^^^^^^^^^^^
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ciThe current team of hardware security officers:
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci  - Linus Torvalds (Linux Foundation Fellow)
5662306a36Sopenharmony_ci  - Greg Kroah-Hartman (Linux Foundation Fellow)
5762306a36Sopenharmony_ci  - Thomas Gleixner (Linux Foundation Fellow)
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ciOperation of mailing-lists
6062306a36Sopenharmony_ci^^^^^^^^^^^^^^^^^^^^^^^^^^
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ciThe encrypted mailing-lists which are used in our process are hosted on
6362306a36Sopenharmony_ciLinux Foundation's IT infrastructure. By providing this service, members
6462306a36Sopenharmony_ciof Linux Foundation's IT operations personnel technically have the
6562306a36Sopenharmony_ciability to access the embargoed information, but are obliged to
6662306a36Sopenharmony_ciconfidentiality by their employment contract. Linux Foundation IT
6762306a36Sopenharmony_cipersonnel are also responsible for operating and managing the rest of
6862306a36Sopenharmony_cikernel.org infrastructure.
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ciThe Linux Foundation's current director of IT Project infrastructure is
7162306a36Sopenharmony_ciKonstantin Ryabitsev.
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ci
7462306a36Sopenharmony_ciNon-disclosure agreements
7562306a36Sopenharmony_ci-------------------------
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ciThe Linux kernel hardware security team is not a formal body and therefore
7862306a36Sopenharmony_ciunable to enter into any non-disclosure agreements.  The kernel community
7962306a36Sopenharmony_ciis aware of the sensitive nature of such issues and offers a Memorandum of
8062306a36Sopenharmony_ciUnderstanding instead.
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_ci
8362306a36Sopenharmony_ciMemorandum of Understanding
8462306a36Sopenharmony_ci---------------------------
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ciThe Linux kernel community has a deep understanding of the requirement to
8762306a36Sopenharmony_cikeep hardware security issues under embargo for coordination between
8862306a36Sopenharmony_cidifferent OS vendors, distributors, hardware vendors and other parties.
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ciThe Linux kernel community has successfully handled hardware security
9162306a36Sopenharmony_ciissues in the past and has the necessary mechanisms in place to allow
9262306a36Sopenharmony_cicommunity compliant development under embargo restrictions.
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_ciThe Linux kernel community has a dedicated hardware security team for
9562306a36Sopenharmony_ciinitial contact, which oversees the process of handling such issues under
9662306a36Sopenharmony_ciembargo rules.
9762306a36Sopenharmony_ci
9862306a36Sopenharmony_ciThe hardware security team identifies the developers (domain experts) who
9962306a36Sopenharmony_ciwill form the initial response team for a particular issue. The initial
10062306a36Sopenharmony_ciresponse team can bring in further developers (domain experts) to address
10162306a36Sopenharmony_cithe issue in the best technical way.
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_ciAll involved developers pledge to adhere to the embargo rules and to keep
10462306a36Sopenharmony_cithe received information confidential. Violation of the pledge will lead to
10562306a36Sopenharmony_ciimmediate exclusion from the current issue and removal from all related
10662306a36Sopenharmony_cimailing-lists. In addition, the hardware security team will also exclude
10762306a36Sopenharmony_cithe offender from future issues. The impact of this consequence is a highly
10862306a36Sopenharmony_cieffective deterrent in our community. In case a violation happens the
10962306a36Sopenharmony_cihardware security team will inform the involved parties immediately. If you
11062306a36Sopenharmony_cior anyone becomes aware of a potential violation, please report it
11162306a36Sopenharmony_ciimmediately to the Hardware security officers.
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ci
11462306a36Sopenharmony_ciProcess
11562306a36Sopenharmony_ci^^^^^^^
11662306a36Sopenharmony_ci
11762306a36Sopenharmony_ciDue to the globally distributed nature of Linux kernel development,
11862306a36Sopenharmony_ciface-to-face meetings are almost impossible to address hardware security
11962306a36Sopenharmony_ciissues.  Phone conferences are hard to coordinate due to time zones and
12062306a36Sopenharmony_ciother factors and should be only used when absolutely necessary. Encrypted
12162306a36Sopenharmony_ciemail has been proven to be the most effective and secure communication
12262306a36Sopenharmony_cimethod for these types of issues.
12362306a36Sopenharmony_ci
12462306a36Sopenharmony_ciStart of Disclosure
12562306a36Sopenharmony_ci"""""""""""""""""""
12662306a36Sopenharmony_ci
12762306a36Sopenharmony_ciDisclosure starts by contacting the Linux kernel hardware security team by
12862306a36Sopenharmony_ciemail. This initial contact should contain a description of the problem and
12962306a36Sopenharmony_cia list of any known affected hardware. If your organization builds or
13062306a36Sopenharmony_cidistributes the affected hardware, we encourage you to also consider what
13162306a36Sopenharmony_ciother hardware could be affected.
13262306a36Sopenharmony_ci
13362306a36Sopenharmony_ciThe hardware security team will provide an incident-specific encrypted
13462306a36Sopenharmony_cimailing-list which will be used for initial discussion with the reporter,
13562306a36Sopenharmony_cifurther disclosure, and coordination of fixes.
13662306a36Sopenharmony_ci
13762306a36Sopenharmony_ciThe hardware security team will provide the disclosing party a list of
13862306a36Sopenharmony_cidevelopers (domain experts) who should be informed initially about the
13962306a36Sopenharmony_ciissue after confirming with the developers that they will adhere to this
14062306a36Sopenharmony_ciMemorandum of Understanding and the documented process. These developers
14162306a36Sopenharmony_ciform the initial response team and will be responsible for handling the
14262306a36Sopenharmony_ciissue after initial contact. The hardware security team is supporting the
14362306a36Sopenharmony_ciresponse team, but is not necessarily involved in the mitigation
14462306a36Sopenharmony_cidevelopment process.
14562306a36Sopenharmony_ci
14662306a36Sopenharmony_ciWhile individual developers might be covered by a non-disclosure agreement
14762306a36Sopenharmony_civia their employer, they cannot enter individual non-disclosure agreements
14862306a36Sopenharmony_ciin their role as Linux kernel developers. They will, however, agree to
14962306a36Sopenharmony_ciadhere to this documented process and the Memorandum of Understanding.
15062306a36Sopenharmony_ci
15162306a36Sopenharmony_ciThe disclosing party should provide a list of contacts for all other
15262306a36Sopenharmony_cientities who have already been, or should be, informed about the issue.
15362306a36Sopenharmony_ciThis serves several purposes:
15462306a36Sopenharmony_ci
15562306a36Sopenharmony_ci - The list of disclosed entities allows communication across the
15662306a36Sopenharmony_ci   industry, e.g. other OS vendors, HW vendors, etc.
15762306a36Sopenharmony_ci
15862306a36Sopenharmony_ci - The disclosed entities can be contacted to name experts who should
15962306a36Sopenharmony_ci   participate in the mitigation development.
16062306a36Sopenharmony_ci
16162306a36Sopenharmony_ci - If an expert which is required to handle an issue is employed by an
16262306a36Sopenharmony_ci   listed entity or member of an listed entity, then the response teams can
16362306a36Sopenharmony_ci   request the disclosure of that expert from that entity. This ensures
16462306a36Sopenharmony_ci   that the expert is also part of the entity's response team.
16562306a36Sopenharmony_ci
16662306a36Sopenharmony_ciDisclosure
16762306a36Sopenharmony_ci""""""""""
16862306a36Sopenharmony_ci
16962306a36Sopenharmony_ciThe disclosing party provides detailed information to the initial response
17062306a36Sopenharmony_citeam via the specific encrypted mailing-list.
17162306a36Sopenharmony_ci
17262306a36Sopenharmony_ciFrom our experience the technical documentation of these issues is usually
17362306a36Sopenharmony_cia sufficient starting point and further technical clarification is best
17462306a36Sopenharmony_cidone via email.
17562306a36Sopenharmony_ci
17662306a36Sopenharmony_ciMitigation development
17762306a36Sopenharmony_ci""""""""""""""""""""""
17862306a36Sopenharmony_ci
17962306a36Sopenharmony_ciThe initial response team sets up an encrypted mailing-list or repurposes
18062306a36Sopenharmony_cian existing one if appropriate.
18162306a36Sopenharmony_ci
18262306a36Sopenharmony_ciUsing a mailing-list is close to the normal Linux development process and
18362306a36Sopenharmony_cihas been successfully used in developing mitigations for various hardware
18462306a36Sopenharmony_cisecurity issues in the past.
18562306a36Sopenharmony_ci
18662306a36Sopenharmony_ciThe mailing-list operates in the same way as normal Linux development.
18762306a36Sopenharmony_ciPatches are posted, discussed and reviewed and if agreed on applied to a
18862306a36Sopenharmony_cinon-public git repository which is only accessible to the participating
18962306a36Sopenharmony_cidevelopers via a secure connection. The repository contains the main
19062306a36Sopenharmony_cidevelopment branch against the mainline kernel and backport branches for
19162306a36Sopenharmony_cistable kernel versions as necessary.
19262306a36Sopenharmony_ci
19362306a36Sopenharmony_ciThe initial response team will identify further experts from the Linux
19462306a36Sopenharmony_cikernel developer community as needed. Bringing in experts can happen at any
19562306a36Sopenharmony_citime of the development process and needs to be handled in a timely manner.
19662306a36Sopenharmony_ci
19762306a36Sopenharmony_ciIf an expert is employed by or member of an entity on the disclosure list
19862306a36Sopenharmony_ciprovided by the disclosing party, then participation will be requested from
19962306a36Sopenharmony_cithe relevant entity.
20062306a36Sopenharmony_ci
20162306a36Sopenharmony_ciIf not, then the disclosing party will be informed about the experts
20262306a36Sopenharmony_ciparticipation. The experts are covered by the Memorandum of Understanding
20362306a36Sopenharmony_ciand the disclosing party is requested to acknowledge the participation. In
20462306a36Sopenharmony_cicase that the disclosing party has a compelling reason to object, then this
20562306a36Sopenharmony_ciobjection has to be raised within five work days and resolved with the
20662306a36Sopenharmony_ciincident team immediately. If the disclosing party does not react within
20762306a36Sopenharmony_cifive work days this is taken as silent acknowledgement.
20862306a36Sopenharmony_ci
20962306a36Sopenharmony_ciAfter acknowledgement or resolution of an objection the expert is disclosed
21062306a36Sopenharmony_ciby the incident team and brought into the development process.
21162306a36Sopenharmony_ci
21262306a36Sopenharmony_ciList participants may not communicate about the issue outside of the
21362306a36Sopenharmony_ciprivate mailing list. List participants may not use any shared resources
21462306a36Sopenharmony_ci(e.g. employer build farms, CI systems, etc) when working on patches.
21562306a36Sopenharmony_ci
21662306a36Sopenharmony_ci
21762306a36Sopenharmony_ciCoordinated release
21862306a36Sopenharmony_ci"""""""""""""""""""
21962306a36Sopenharmony_ci
22062306a36Sopenharmony_ciThe involved parties will negotiate the date and time where the embargo
22162306a36Sopenharmony_ciends. At that point the prepared mitigations are integrated into the
22262306a36Sopenharmony_cirelevant kernel trees and published. There is no pre-notification process:
22362306a36Sopenharmony_cifixes are published in public and available to everyone at the same time.
22462306a36Sopenharmony_ci
22562306a36Sopenharmony_ciWhile we understand that hardware security issues need coordinated embargo
22662306a36Sopenharmony_citime, the embargo time should be constrained to the minimum time which is
22762306a36Sopenharmony_cirequired for all involved parties to develop, test and prepare the
22862306a36Sopenharmony_cimitigations. Extending embargo time artificially to meet conference talk
22962306a36Sopenharmony_cidates or other non-technical reasons is creating more work and burden for
23062306a36Sopenharmony_cithe involved developers and response teams as the patches need to be kept
23162306a36Sopenharmony_ciup to date in order to follow the ongoing upstream kernel development,
23262306a36Sopenharmony_ciwhich might create conflicting changes.
23362306a36Sopenharmony_ci
23462306a36Sopenharmony_ciCVE assignment
23562306a36Sopenharmony_ci""""""""""""""
23662306a36Sopenharmony_ci
23762306a36Sopenharmony_ciNeither the hardware security team nor the initial response team assign
23862306a36Sopenharmony_ciCVEs, nor are CVEs required for the development process. If CVEs are
23962306a36Sopenharmony_ciprovided by the disclosing party they can be used for documentation
24062306a36Sopenharmony_cipurposes.
24162306a36Sopenharmony_ci
24262306a36Sopenharmony_ciProcess ambassadors
24362306a36Sopenharmony_ci-------------------
24462306a36Sopenharmony_ci
24562306a36Sopenharmony_ciFor assistance with this process we have established ambassadors in various
24662306a36Sopenharmony_ciorganizations, who can answer questions about or provide guidance on the
24762306a36Sopenharmony_cireporting process and further handling. Ambassadors are not involved in the
24862306a36Sopenharmony_cidisclosure of a particular issue, unless requested by a response team or by
24962306a36Sopenharmony_cian involved disclosed party. The current ambassadors list:
25062306a36Sopenharmony_ci
25162306a36Sopenharmony_ci  ============= ========================================================
25262306a36Sopenharmony_ci  AMD		Tom Lendacky <thomas.lendacky@amd.com>
25362306a36Sopenharmony_ci  Ampere	Darren Hart <darren@os.amperecomputing.com>
25462306a36Sopenharmony_ci  ARM		Catalin Marinas <catalin.marinas@arm.com>
25562306a36Sopenharmony_ci  IBM Power	Anton Blanchard <anton@linux.ibm.com>
25662306a36Sopenharmony_ci  IBM Z		Christian Borntraeger <borntraeger@de.ibm.com>
25762306a36Sopenharmony_ci  Intel		Tony Luck <tony.luck@intel.com>
25862306a36Sopenharmony_ci  Qualcomm	Trilok Soni <tsoni@codeaurora.org>
25962306a36Sopenharmony_ci  RISC-V	Palmer Dabbelt <palmer@dabbelt.com>
26062306a36Sopenharmony_ci  Samsung	Javier González <javier.gonz@samsung.com>
26162306a36Sopenharmony_ci
26262306a36Sopenharmony_ci  Microsoft	James Morris <jamorris@linux.microsoft.com>
26362306a36Sopenharmony_ci  Xen		Andrew Cooper <andrew.cooper3@citrix.com>
26462306a36Sopenharmony_ci
26562306a36Sopenharmony_ci  Canonical	John Johansen <john.johansen@canonical.com>
26662306a36Sopenharmony_ci  Debian	Ben Hutchings <ben@decadent.org.uk>
26762306a36Sopenharmony_ci  Oracle	Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
26862306a36Sopenharmony_ci  Red Hat	Josh Poimboeuf <jpoimboe@redhat.com>
26962306a36Sopenharmony_ci  SUSE		Jiri Kosina <jkosina@suse.cz>
27062306a36Sopenharmony_ci
27162306a36Sopenharmony_ci  Google	Kees Cook <keescook@chromium.org>
27262306a36Sopenharmony_ci
27362306a36Sopenharmony_ci  LLVM		Nick Desaulniers <ndesaulniers@google.com>
27462306a36Sopenharmony_ci  ============= ========================================================
27562306a36Sopenharmony_ci
27662306a36Sopenharmony_ciIf you want your organization to be added to the ambassadors list, please
27762306a36Sopenharmony_cicontact the hardware security team. The nominated ambassador has to
27862306a36Sopenharmony_ciunderstand and support our process fully and is ideally well connected in
27962306a36Sopenharmony_cithe Linux kernel community.
28062306a36Sopenharmony_ci
28162306a36Sopenharmony_ciEncrypted mailing-lists
28262306a36Sopenharmony_ci-----------------------
28362306a36Sopenharmony_ci
28462306a36Sopenharmony_ciWe use encrypted mailing-lists for communication. The operating principle
28562306a36Sopenharmony_ciof these lists is that email sent to the list is encrypted either with the
28662306a36Sopenharmony_cilist's PGP key or with the list's S/MIME certificate. The mailing-list
28762306a36Sopenharmony_cisoftware decrypts the email and re-encrypts it individually for each
28862306a36Sopenharmony_cisubscriber with the subscriber's PGP key or S/MIME certificate. Details
28962306a36Sopenharmony_ciabout the mailing-list software and the setup which is used to ensure the
29062306a36Sopenharmony_cisecurity of the lists and protection of the data can be found here:
29162306a36Sopenharmony_cihttps://korg.wiki.kernel.org/userdoc/remail.
29262306a36Sopenharmony_ci
29362306a36Sopenharmony_ciList keys
29462306a36Sopenharmony_ci^^^^^^^^^
29562306a36Sopenharmony_ci
29662306a36Sopenharmony_ciFor initial contact see :ref:`Contact`. For incident specific mailing-lists
29762306a36Sopenharmony_cithe key and S/MIME certificate are conveyed to the subscribers by email
29862306a36Sopenharmony_cisent from the specific list.
29962306a36Sopenharmony_ci
30062306a36Sopenharmony_ciSubscription to incident specific lists
30162306a36Sopenharmony_ci^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
30262306a36Sopenharmony_ci
30362306a36Sopenharmony_ciSubscription is handled by the response teams. Disclosed parties who want
30462306a36Sopenharmony_cito participate in the communication send a list of potential subscribers to
30562306a36Sopenharmony_cithe response team so the response team can validate subscription requests.
30662306a36Sopenharmony_ci
30762306a36Sopenharmony_ciEach subscriber needs to send a subscription request to the response team
30862306a36Sopenharmony_ciby email. The email must be signed with the subscriber's PGP key or S/MIME
30962306a36Sopenharmony_cicertificate. If a PGP key is used, it must be available from a public key
31062306a36Sopenharmony_ciserver and is ideally connected to the Linux kernel's PGP web of trust. See
31162306a36Sopenharmony_cialso: https://www.kernel.org/signature.html.
31262306a36Sopenharmony_ci
31362306a36Sopenharmony_ciThe response team verifies that the subscriber request is valid and adds
31462306a36Sopenharmony_cithe subscriber to the list. After subscription the subscriber will receive
31562306a36Sopenharmony_ciemail from the mailing-list which is signed either with the list's PGP key
31662306a36Sopenharmony_cior the list's S/MIME certificate. The subscriber's email client can extract
31762306a36Sopenharmony_cithe PGP key or the S/MIME certificate from the signature so the subscriber
31862306a36Sopenharmony_cican send encrypted email to the list.
31962306a36Sopenharmony_ci
320