Things to do when doing an out-of-bound security release

NOTE: This is a guide for GitLab developers. If you are trying to install GitLab see the latest stable installation guide and if you are trying to upgrade, see the upgrade guides.

When to do a security release

Do a security release when there is a critical issue that needs to be addresses before the next monthly release. Otherwise include it in the monthly release and note there was a security fix in the release announcement.

Security vulnerability disclosure

Please report suspected security vulnerabilities in private to support@gitlab.com, also see the disclosure section on the GitLab.com website. Please do NOT create publicly viewable issues for suspected security vulnerabilities.

Release Procedure

  1. Verify that the issue can be reproduced
  2. Acknowledge the issue to the researcher that disclosed it
  3. Inform the release manager that there needs to be a security release
  4. Do the steps from patch release document, starting with "Create an issue on private GitLab development server"
  5. The MR with the security fix should get a 'security' label and be assigned to the release manager
  6. Build the package for GitLab.com and do a deploy
  7. Build the package for ci.gitLab.com and do a deploy
  8. Create new AMIs
  9. Create feature branches for the blog post on GitLab.com and link them from the code branch
  10. Merge and publish the blog posts
  11. Send tweets about the release from @gitlabhq
  12. Send out an email to the community google mailing list
  13. Post a signed copy of our complete announcement to oss-security and request a CVE number. CVE is only needed for bugs that allow someone to own the server (Remote Code Execution) or access to code of projects they are not a member of.
  14. Add the security researcher to the Security Researcher Acknowledgments list
  15. Thank the security researcher in an email for their cooperation
  16. Update the blog post and the CHANGELOG when we receive the CVE number

The timing of the code merge into master should be coordinated in advance.

After the merge we strive to publish the announcements within 60 minutes.

Blog post template

XXX Security Advisory for GitLab

A recently discovered critical vulnerability in GitLab allows [unauthenticated API access|remote code execution|unauthorized access to repositories|XXX|PICKSOMETHING]. All users should update GitLab and gitlab-shell immediately. We [have|haven't|XXX|PICKSOMETHING|] heard of this vulnerability being actively exploited.

Version affected

GitLab Community Edition XXX and lower

GitLab Enterprise Edition XXX and lower

Fixed versions

GitLab Community Edition XXX and up

GitLab Enterprise Edition XXX and up

Impact

On GitLab installations which use MySQL as their database backend it is possible for an attacker to assume the identity of any existing GitLab user in certain API calls. This attack can be performed by [unauthenticated|authenticated|XXX|PICKSOMETHING] users.

Workarounds

If you are unable to upgrade you should apply the following patch and restart GitLab.

XXX

Credit

We want to thank XXX of XXX for the responsible disclosure of this vulnerability.

Email template

We just announced a security advisory for GitLab at XXX

Please contact us at support@gitlab.com if you have any questions.

Tweet template

We just announced a security advisory for GitLab at XXX