SECURITY 4.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. _ _ ____ _
  2. ___| | | | _ \| |
  3. / __| | | | |_) | |
  4. | (__| |_| | _ <| |___
  5. \___|\___/|_| \_\_____|
  6. CURL SECURITY FOR DEVELOPERS
  7. This document is intended to provide guidance to curl developers on how
  8. security vulnerabilities should be handled.
  9. PUBLISHING INFORMATION
  10. All known and public curl or libcurl related vulnerabilities are listed at
  11. http://curl.haxx.se/docs/security.html
  12. Security vulnerabilities should not be entered in the project's public bug
  13. tracker unless the necessary configuration is in place to limit access to the
  14. issue to only the reporter and the project's security team.
  15. VULNERABILITY HANDLING
  16. The typical process for handling a new security vulnerability is as follows.
  17. No information should be made public about a vulnerability until it is
  18. formally announced at the end of this process. That means, for example that a
  19. bug tracker entry must NOT be created to track the issue since that will make
  20. the issue public and it should not be discussed on any of the project's public
  21. mailing lists. Also messages associated with any commits should not make
  22. any reference to the security nature of the commit if done prior to the public
  23. announcement.
  24. - The person discovering the issue, the reporter, reports the vulnerability
  25. privately to curl-security@haxx.se. That's an email alias that reaches a
  26. handful of selected and trusted people.
  27. - Messages that do not relate to the reporting or managing of an undisclosed
  28. security vulnerability in curl or libcurl are ignored and no further action
  29. is required.
  30. - A person in the security team sends an e-mail to the original reporter to
  31. acknowledge the report.
  32. - The security team investigates the report and either rejects it or accepts
  33. it.
  34. - If the report is rejected, the team writes to the reporter to explain why.
  35. - If the report is accepted, the team writes to the reporter to let him/her
  36. know it is accepted and that they are working on a fix.
  37. - The security team discusses the problem, works out a fix, considers the
  38. impact of the problem and suggests a release schedule. This discussion
  39. should involve the reporter as much as possible.
  40. - The release of the information should be "as soon as possible" and is most
  41. often synced with an upcoming release that contains the fix. If the
  42. reporter, or anyone else, thinks the next planned release is too far away
  43. then a separate earlier release for security reasons should be considered.
  44. - Write a security advisory draft about the problem that explains what the
  45. problem is, its impact, which versions it affects, solutions or
  46. work-arounds, when the release is out and make sure to credit all
  47. contributors properly.
  48. - Request a CVE number from distros@openwall.org[1] when also informing and
  49. preparing them for the upcoming public security vulnerability announcement -
  50. attach the advisory draft for information. Note that 'distros' won't accept
  51. an embargo longer than 19 days.
  52. - Update the "security advisory" with the CVE number.
  53. - The security team commits the fix in a private branch. The commit message
  54. should ideally contain the CVE number. This fix is usually also distributed
  55. to the 'distros' mailing list to allow them to use the fix prior to the
  56. public announcement.
  57. - At the day of the next release, the private branch is merged into the master
  58. branch and pushed. Once pushed, the information is accessible to the public
  59. and the actual release should follow suit immediately afterwards.
  60. - The project team creates a release that includes the fix.
  61. - The project team announces the release and the vulnerability to the world in
  62. the same manner we always announce releases. It gets sent to the
  63. curl-announce, curl-library and curl-users mailing lists.
  64. - The security web page on the web site should get the new vulernability
  65. mentioned.
  66. [1] = http://oss-security.openwall.org/wiki/mailing-lists/distros