============================
LLVM Security Response Group
============================

The LLVM Security Response Group has the following goals:

1. Allow LLVM contributors and security researchers to disclose security-related issues affecting the LLVM project to members of the LLVM community.
2. Organize fixes, code reviews, and release management for said issues.
3. Allow distributors time to investigate and deploy fixes before wide dissemination of vulnerabilities or mitigation shortcomings.
4. Ensure timely notification and release to vendors who package and distribute LLVM-based toolchains and projects.
5. Ensure timely notification to users of LLVM-based toolchains whose compiled code is security-sensitive, through the `CVE process`_.

*Note*: these goals ensure timely action, provide disclosure timing when issues are reported, and respect vendors' / packagers' / users' constraints.

The LLVM Security Response Group is private. It is composed of trusted LLVM contributors. Its discussions remain within the LLVM Security Response Group (plus issue reporter and key experts) while an issue is being investigated. After an issue becomes public, the entirety of the group’s discussions pertaining to that issue also become public.

.. _report-security-issue:

How to report a security issue?
===============================

To report a security issue in any of the LLVM projects, please use the `report a vulnerability`_ feature in the `llvm/llvm-security-repo`_ repository on github, under the "Security" tab.

We aim to acknowledge your report within two business days since you first reach out. If you do not receive any response by then, you can escalate by posting on the `Discourse forums`_ asking to get in touch with someone from the LLVM Security Response Group. **The escalation mailing list is public**: avoid discussing or mentioning the specific issue when posting on it.


Group Composition
=================

Security Response Group Members
-------------------------------

The members of the group represent a wide cross-section of the community, and
meet the criteria for inclusion below. The list is in the format
`* ${full_name} (${affiliation}) [${github_username}]`. If a github
username for an individual isn't available, the brackets will be empty.

* Abhay Kanhere (Apple) [@AbhayKanhere]
* Ahmed Bougacha (Apple) [@ahmedbougacha]
* Artur Pilipenko (Azul Systems Inc) []
* Boovaragavan Dasarathan (Nvidia) [@mrragava]
* Dimitry Andric (individual; FreeBSD) [@DimitryAndric]
* Ed Maste (individual; FreeBSD) [@emaste]
* George Burgess IV (Google) [@gburgessiv]
* Josh Stone (Red Hat; Rust) [@cuviper]
* Kristof Beyls (ARM) [@kbeyls]
* Matthew Riley (Google) [@mmdriley]
* Matthew Voss (Sony) [@ormris]
* Nikhil Gupta (Nvidia) []
* Oliver Hunt (Apple) [@ojhunt]
* Peter Smith (ARM) [@smithp35]
* Pietro Albini (Ferrous Systems; Rust) [@pietroalbini]
* Serge Guelton (Mozilla) [@serge-sans-paille]
* Sergey Zverev (Intel) [@offsake]
* Shayne Hiet-Block (Microsoft) [@GreatKeeper]
* Tim Penge (Sony) [@tpenge]
* Tulio Magno Quites Machado Filho (Red Hat) [@tuliom]
* Will Huhn (Intel) [@wphuhn-intel]
* Yvan Roux (ST) [@yroux]

Criteria
--------

* Nominees for LLVM Security Response Group membership should fall in one of these groups:

  - Individual contributors:

    + Specializes in fixing compiler-based security related issues or often participates in their exploration and resolution.
    + Has a track record of finding security vulnerabilities and responsible disclosure of those vulnerabilities.
    + Is a compiler expert who has specific interests in knowing about, resolving, and preventing future security vulnerabilities.
    + Has actively contributed non-trivial code to the LLVM project in the last year.

  - Researchers:

    + Has a track record of finding security vulnerabilities and responsible disclosure of those vulnerabilities.
    + Is a compiler expert who has specific interests in knowing about, resolving, and preventing future security vulnerabilities.

  - Vendor contacts:

    + Represents an organization or company which ships products that include their own copy of LLVM. Due to their position in the organization, the nominee has a reasonable need to know about security issues and disclosure embargoes.

* Additionally, the following are necessary but not sufficient criteria for membership in the LLVM Security Response Group:

  - If already in the LLVM Security Response Group, has actively participated in one (if any) security issue in the last year.
  - If already in the LLVM Security Response Group, has actively participated in most membership discussions in the last year.
  - If already in the LLVM Security Response Group, has actively participated in writing or reviewing a transparency report in the last year.
  - When employed by a company or other entity, the parent entity has no more than three members already in the LLVM Security Response Group.
  - When nominated as a vendor contact, their position with that vendor remains the same as when originally nominated.
  - Nominees are trusted by existing LLVM Security Response Group members to keep communications embargoed while still active.

Nomination process
------------------

Anyone who feels they meet these criteria can nominate themselves, or may be nominated by a third party such as an existing LLVM Security Response Group member. The nomination should state whether the nominee is nominated as an individual, researcher, or as a vendor contact. It should clearly describe the grounds for nomination.

For the moment, nominations are generally proposed, discussed, and voted on using a github pull request. An `example nomination is available here`_. The use of pull requests helps keep membership discussions open, transparent, and easily accessible to LLVM developers in many ways. If, for any reason, a fully-world-readable nomination seems inappropriate, you may reach out to the LLVM Security Response Group via the `report a vulnerability`_ route, and a discussion can be had about the best way to approach nomination, given the constraints that individuals are under.

Choosing new members
--------------------

If a nomination for LLVM Security Response Group membership is supported by a majority of existing LLVM Security Response Group members, then it carries within five business days unless an existing member of the Security Response Group objects. If an objection is raised, the LLVM Security Response Group members should discuss the matter and try to come to consensus; failing this, the nomination will succeed only by a two-thirds supermajority vote of the LLVM Security Response Group.

Accepting membership
--------------------

Before new LLVM Security Response Group membership is finalized, the successful nominee should accept membership and agree to abide by this security policy, particularly `Privileges and Responsibilities of LLVM Security Response Group Members`_ below.

Keeping Membership Current
--------------------------

* At least every six months, the LLVM Security Response Group applies the above criteria. The membership list is pruned accordingly.
* Any LLVM Security Response Group member can ask that the criteria be applied within the next five business days.
* If a member of the LLVM Security Response Group does not act in accordance with the letter and spirit of this policy, then their LLVM Security Response Group membership can be revoked by a majority vote of the members, not including the person under consideration for revocation. After a member calls for a revocation vote, voting will be open for five business days.
* Emergency suspension: an LLVM Security Response Group member who blatantly disregards the LLVM Security Policy may have their membership temporarily suspended on the request of any two members. In such a case, the requesting members should notify the LLVM Security Response Group with a description of the offense. At this point, membership will be temporarily suspended for five business days, pending outcome of the vote for permanent revocation.
* The LLVM Board may remove any member from the LLVM Security Response Group.

Transparency Report
-------------------

Every year, the LLVM Security Response Group must publish a transparency report. The intent of this report is to keep the community informed by summarizing the disclosures that have been made public in the last year. It shall contain a list of all public disclosures, as well as statistics on time to fix issues, length of embargo periods, and so on.

The transparency reports are published at :doc:`SecurityTransparencyReports`.


Privileges and Responsibilities of LLVM Security Response Group Members
=======================================================================

Access
------

LLVM Security Response Group members will be subscribed to a private `Discussion Medium`_. It will be used for technical discussions of security issues, as well as process discussions about matters such as disclosure timelines and group membership. Members have access to all security issues.

Confidentiality
---------------

Members of the LLVM Security Response Group will be expected to treat LLVM security issue information shared with the group as confidential until publicly disclosed:

* Members should not disclose security issue information to non-members unless both members are employed by the same vendor of a LLVM based product, in which case information can be shared within that organization on a need-to-know basis and handled as confidential information normally is within that organization.
* If the LLVM Security Response Group agrees, designated members may share issues with vendors of non-LLVM based products if their product suffers from the same issue. The non-LLVM vendor should be asked to respect the issue’s embargo date, and to not share the information beyond the need-to-know people within their organization.
* If the LLVM Security Response Group agrees, key experts can be brought in to help address particular issues. The key expert should be asked to respect the issue’s embargo date, and to not share the information.

Disclosure
----------

Following the process below, the LLVM Security Response Group decides on embargo date for public disclosure for each Security issue. An embargo may be lifted before the agreed-upon date if all vendors planning to ship a fix have already done so, and if the reporter does not object.

Collaboration
-------------

Members of the LLVM Security Response Group are expected to:

* Promptly share any LLVM vulnerabilities they become aware of.
* Volunteer to drive issues forward.
* Help evaluate the severity of incoming issues.
* Help write and review patches to address security issues.
* Participate in the member nomination and removal processes.


Discussion Medium
=================

The medium used to host LLVM Security Response Group discussions is security-sensitive. It should therefore run on infrastructure which can meet our security expectations.

We use `GitHub's mechanism to privately report security vulnerabilities`_ to have security discussions:

* File security issues.
* Discuss security improvements to LLVM.

We also occasionally need to discuss logistics of the LLVM Security Response Group itself:

* Nominate new members.
* Propose member removal.
* Suggest policy changes.

We often have these discussions publicly, in our :ref:`monthly public sync-up call <online-sync-ups>` and on the Discourse forums.  For internal or confidential discussions, we also use a private mailing list.

Process
=======

The following process occurs on the discussion medium for each reported issue:

* A security issue reporter (not necessarily an LLVM contributor) reports an issue.
* Within two business days, a member of the LLVM Security Response Group is put in charge of driving the issue to an acceptable resolution. This champion doesn’t need to be the same person for each issue. This person can self-nominate.
* Members of the LLVM Security Response Group discuss in which circumstances (if any) an issue is relevant to security, and determine if it is a security issue.
* Negotiate an embargo date for public disclosure, with a default minimum time limit of ninety days.
* LLVM Security Response Group members can recommend that key experts be pulled in to specific issue discussions. The key expert can be pulled in unless there are objections from other LLVM Security Response Group members.
* Patches are written and reviewed.
* Backporting security patches from recent versions to old versions cannot always work. It is up to the LLVM Security Response Group to decide if such backporting should be done, and how far back.
* The LLVM Security Response Group figures out how the LLVM project’s own releases, as well as individual vendors’ releases, can be timed to patch the issue simultaneously.
* Embargo date can be delayed or pulled forward at the LLVM Security Response Group’s discretion.
* The issue champion obtains a CVE entry from MITRE_.
* Once the embargo expires, the patch is posted publicly according to LLVM’s usual code review process.
* All security issues (as well as nomination / removal discussions) become public within approximately fourteen weeks of the fix landing in the LLVM repository. Precautions should be taken to avoid disclosing particularly sensitive data included in the report (e.g. username and password pairs).


Changes to the Policy
=====================

The LLVM Security Policy may be changed by majority vote of the LLVM Security Response Group. Such changes also need to be approved by the LLVM Board.


What is considered a security issue?
====================================

The LLVM Project has a significant amount of code, and not all of it is
considered security-sensitive. This is particularly true because LLVM is used in
a wide variety of circumstances: there are different threat models, untrusted
inputs differ, and the environment LLVM runs in is varied. Therefore, what the
LLVM Project considers a security issue is what its members have signed up to
maintain securely.

As this security process matures, members of the LLVM community can propose that
a part of the codebase be designated as security-sensitive (or no longer
security-sensitive). This requires a rationale, and buy-in from the LLVM
community as for any RFC. In some cases, parts of the codebase could be handled
as security-sensitive but need significant work to get to the stage where that's
manageable. The LLVM community will need to decide whether it wants to invest in
making these parts of the code securable, and maintain these security
properties over time. In all cases the LLVM Security Response Group should be consulted,
since they'll be responding to security issues filed against these parts of the
codebase.

If you're not sure whether an issue is in-scope for this security process or
not, err towards assuming that it is. The Security Response Group might agree or disagree
and will explain its rationale in the report, as well as update this document
through the above process.

The security-sensitive parts of the LLVM Project currently are the following.
Note that this list can change over time.

* None are currently defined. Please don't let this stop you from reporting
  issues to the LLVM Security Response Group that you believe are security-sensitive.

The parts of the LLVM Project which are currently treated as non-security
sensitive are the following. Note that this list can change over time.

* Language front-ends, such as clang, for which a malicious input file can cause
  undesirable behavior. For example, a maliciously crafted C or Rust source file
  can cause arbitrary code to execute in LLVM. These parts of LLVM haven't been
  hardened, and compiling untrusted code usually also includes running utilities
  such as `make` which can more readily perform malicious things.


.. _CVE process: https://cve.mitre.org
.. _report a vulnerability: https://github.com/llvm/llvm-security-repo/security/advisories/new
.. _llvm/llvm-security-repo: https://github.com/llvm/llvm-security-repo/security
.. _GitHub's mechanism to privately report security vulnerabilities: https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing-information-about-vulnerabilities/privately-reporting-a-security-vulnerability
.. _GitHub security: https://help.github.com/en/articles/about-maintainer-security-advisories
.. _Discourse forums: https://discourse.llvm.org
.. _MITRE: https://cve.mitre.org
.. _example nomination is available here: https://github.com/llvm/llvm-project/pull/92174
