Browse Source

Updated security policy according to current practices.

Also added security release date notifications to django-announce.
Tim Graham 8 years ago
parent
commit
af98a0a25e
2 changed files with 45 additions and 33 deletions
  1. 2 2
      docs/internals/mailing-lists.txt
  2. 43 31
      docs/internals/security.txt

+ 2 - 2
docs/internals/mailing-lists.txt

@@ -94,8 +94,8 @@ Django's components.
 ``django-announce``
 ===================
 
-A (very) low-traffic list for announcing new releases of Django and important
-bugfixes.
+A (very) low-traffic list for announcing :ref:`upcoming security releases
+<security-disclosure>`, new releases of Django, and security advisories.
 
 * `django-announce mailing archive`_
 * `django-announce subscription email address`_

+ 43 - 31
docs/internals/security.txt

@@ -25,14 +25,13 @@ Instead, if you believe you've found something in Django which has security
 implications, please send a description of the issue via email to
 ``security@djangoproject.com``. Mail sent to that address reaches a
 :ref:`subset of the core team <security-team-list>`, who can forward security
-issues into the private committers' mailing list for broader discussion if
-needed.
+issues into the private team's mailing list for broader discussion if needed.
 
 Once you've submitted an issue via email, you should receive an acknowledgment
 from a member of the security team within 48 hours, and depending on the
 action to be taken, you may receive further followup emails.
 
-.. note::
+.. admonition:: Sending encrypted reports
 
     If you want to send an encrypted email (*optional*), the public key ID for
     ``security@djangoproject.com`` is ``0xfcb84b8d1d17f80b``, and this public
@@ -48,8 +47,11 @@ Supported versions
 At any given time, the Django team provides official security support
 for several versions of Django:
 
-* The `master development branch`_, hosted on GitHub, which will
-  become the next release of Django, receives security support.
+* The `master development branch`_, hosted on GitHub, which will become the
+  next major release of Django, receives security support. Security issues that
+  only affect the master development branch and not any stable released versions
+  are fixed in public without going through the :ref:`disclosure process
+  <security-disclosure>`.
 
 * The two most recent Django release series receive security
   support. For example, during the development cycle leading to the
@@ -76,11 +78,35 @@ How Django discloses security issues
 Our process for taking a security issue from private discussion to
 public disclosure involves multiple steps.
 
-Approximately one week before full public disclosure, we will send
-advance notification of the issue to a list of people and
-organizations, primarily composed of operating-system vendors and
-other distributors of Django. This notification will consist of an
-email message, signed with the Django release key, containing:
+Approximately one week before public disclosure, we send two notifications:
+
+First, we notify |django-announce| of the date and approximate time of the
+upcoming security release, as well as the severity of the issues. This is to
+aid organizations that need to ensure they have staff available to handle
+triaging our announcement and upgrade Django as needed. Severity levels are:
+
+**High**:
+
+* Remote code execution
+* SQL injection
+
+**Moderate**:
+
+* Cross site scripting (XSS)
+* Cross site request forgery (CSRF)
+* Broken authentication
+
+**Low**:
+
+* Sensitive data exposure
+* Broken session management
+* Unvalidated redirects/forwards
+* Issues requiring an uncommon configuration option
+
+Second, we notify a list of :ref:`people and organizations
+<security-notifications>`, primarily composed of operating-system vendors and
+other distributors of Django. This email is signed with the PGP key of someone
+from :ref:`Django's release team <releasers-list>` and consists of:
 
 * A full description of the issue and the affected versions of Django.
 
@@ -91,15 +117,9 @@ email message, signed with the Django release key, containing:
 * The date on which the Django team will apply these patches, issue
   new releases and publicly disclose the issue.
 
-Simultaneously, the reporter of the issue will receive notification of
-the date on which we plan to take the issue public.
-
 On the day of disclosure, we will take the following steps:
 
-1. Apply the relevant patch(es) to Django's codebase. The commit
-   messages for these patches will indicate that they are for security
-   issues, but will not describe the issue in any detail; instead,
-   they will warn of upcoming disclosure.
+1. Apply the relevant patch(es) to Django's codebase.
 
 2. Issue the relevant release(s), by placing new packages on `the
    Python Package Index`_ and on the Django website, and tagging the
@@ -130,7 +150,6 @@ theirs.
 The Django team also maintains an :doc:`archive of security issues
 disclosed in Django</releases/security>`.
 
-
 .. _security-notifications:
 
 Who receives advance notification
@@ -187,11 +206,12 @@ Your request **must** include the following information:
 * A detailed explanation of how you or your organization fit at least
   one set of criteria listed above.
 
-* A detailed explanation of why you are requesting security
-  notifications. Again, please keep in mind that this is *not* simply
-  a list for users of Django, and the overwhelming majority of users
-  of Django should not request notifications and will not be added to
-  our notification list if they do.
+* A detailed explanation of why you are requesting security notifications.
+  Again, please keep in mind that this is *not* simply a list for users of
+  Django, and the overwhelming majority of users should subscribe to
+  |django-announce| to receive advanced notice of when a security release will
+  happen, without the details of the issues, rather than request detailed
+  notifications.
 
 * The email address you would like to have added to our notification
   list.
@@ -213,11 +233,3 @@ Please also bear in mind that for any individual or organization,
 receiving security notifications is a privilege granted at the sole
 discretion of the Django development team, and that this privilege can
 be revoked at any time, with or without explanation.
-
-If you are added to the notification list, security-related emails
-will be sent to you by Django's release team, and all notification
-emails will be signed with a key authorized to issue Django
-releases. The list of authorized keys is in `the Django releasers
-file`_.
-
-.. _the Django releasers file: https://www.djangoproject.com/m/pgp/django-releasers.txt