Skip to the content.
« User Tooling

Process

Essential Components of a Security Disclosure Process

A robust security disclosure process is essential for effectively handling security vulnerabilities in library projects within the BEAM ecosystem. While this document provides an overview of key components, further details and best practices can be found in resources such as the OpenSSF guide, “Guide to implementing a coordinated vulnerability disclosure process for open source projects.” Below are the most essential parts of a security disclosure process:

  1. Publish your vulnerability management process:
    • The first step is to create and publish a clear and comprehensive document outlining the security disclosure process for the library project. This document should detail the steps for reporting vulnerabilities, the expected timeline for response and resolution, and the communication channels to be used.
  2. Accepting User Reports:
    • Establish mechanisms for users to report security vulnerabilities securely. Provide clear instructions on how users can submit reports, including contact information, or dedicated reporting channels such as email addresses or bug tracking systems.
  3. Communicating the State of the Disclosure Back to the Reporter:
    • Upon receiving a vulnerability report, acknowledge the receipt of the report and provide an initial assessment of its validity and severity. Keep the reporter informed about the progress of the disclosure process, including any investigations, mitigations, or fixes implemented.
  4. Implementing & Publishing a Fix:
    • Once a vulnerability is confirmed, work promptly to develop and implement a fix. Ensure that the fix addresses the root cause of the vulnerability and does not introduce regressions or new issues. Once the fix is ready, publish it along with clear instructions for users to update their installations.
  5. Disclosing the Vulnerability (CVE & Hex):
    • After the fix has been implemented and distributed to users, disclose the vulnerability publicly. Assign a Common Vulnerabilities and Exposures (CVE) identifier to the vulnerability, if applicable, to facilitate tracking and referencing. Additionally, update the retirement status ( Elixir / Erlang) of the affected package on Hex, if necessary, to alert users to the presence of the vulnerability.

It’s important to note that while these are the essential components of a security disclosure process, each project may have unique considerations and requirements. Regular review and refinement of the process are recommended to adapt to evolving security landscape and community feedback. For further guidance and detailed best practices, refer to the OpenSSF guide on coordinated vulnerability disclosure processes for open source projects.

Next: GitHub Disclosure »