bpo-39498 Start linking the security warnings in the stdlib modules (GH-18272) (GH-27699)

Co-authored-by: Łukasz Langa <lukasz@langa.pl>
(cherry picked from commit c5c5326d47)

Co-authored-by: Anthony Shaw <anthony.p.shaw@gmail.com>
This commit is contained in:
Miss Islington (bot) 2021-08-10 00:51:33 -07:00 committed by GitHub
parent 395f4c7fbf
commit fcbe8c63d7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 45 additions and 0 deletions

View file

@ -80,6 +80,8 @@ library that Python uses on your platform. On most platforms the
.. versionadded:: 3.6
:func:`blake2b` and :func:`blake2s` were added.
.. _hashlib-usedforsecurity:
.. versionchanged:: 3.9
All hashlib constructors take a keyword-only argument *usedforsecurity*
with default value ``True``. A false value allows the use of insecure and

View file

@ -76,3 +76,4 @@ the `Python Package Index <https://pypi.org>`_.
unix.rst
superseded.rst
undoc.rst
security_warnings.rst

View file

@ -147,6 +147,8 @@ in :mod:`logging` itself) and defining handlers which are declared either in
send it to the socket as a sequence of bytes preceded by a four-byte length
string packed in binary using ``struct.pack('>L', n)``.
.. _logging-eval-security:
.. note::
Because portions of the configuration are passed through

View file

@ -1187,6 +1187,7 @@ For example:
>>> arr2
array('i', [0, 1, 2, 3, 4, 0, 0, 0, 0, 0])
.. _multiprocessing-recv-pickle-security:
.. warning::

View file

@ -0,0 +1,32 @@
.. _security-warnings:
.. index:: single: security considerations
Security Considerations
=======================
The following modules have specific security considerations:
* :mod:`cgi`: :ref:`CGI security considerations <cgi-security>`
* :mod:`hashlib`: :ref:`all constructors take a "usedforsecurity" keyword-only
argument disabling known insecure and blocked algorithms
<hashlib-usedforsecurity>`
* :mod:`http.server` is not suitable for production use, only implementing
basic security checks
* :mod:`logging`: :ref:`Logging configuration uses eval()
<logging-eval-security>`
* :mod:`multiprocessing`: :ref:`Connection.recv() uses pickle
<multiprocessing-recv-pickle-security>`
* :mod:`pickle`: :ref:`Restricting globals in pickle <pickle-restrict>`
* :mod:`random` shouldn't be used for security purposes, use :mod:`secrets`
instead
* :mod:`shelve`: :ref:`shelve is based on pickle and thus unsuitable for
dealing with untrusted sources <shelve-security>`
* :mod:`ssl`: :ref:`SSL/TLS security considerations <ssl-security>`
* :mod:`subprocess`: :ref:`Subprocess security considerations
<subprocess-security>`
* :mod:`tempfile`: :ref:`mktemp is deprecated due to vulnerability to race
conditions <tempfile-mktemp-deprecated>`
* :mod:`xml`: :ref:`XML vulnerabilities <xml-vulnerabilities>`
* :mod:`zipfile`: :ref:`maliciously prepared .zip files can cause disk volume
exhaustion <zipfile-resources-limitations>`

View file

@ -49,6 +49,8 @@ lots of shared sub-objects. The keys are ordinary strings.
with shelve.open('spam') as db:
db['eggs'] = 'eggs'
.. _shelve-security:
.. warning::
Because the :mod:`shelve` module is backed by :mod:`pickle`, it is insecure

View file

@ -683,6 +683,7 @@ Exceptions defined in this module all inherit from :exc:`SubprocessError`.
.. versionadded:: 3.3
The :exc:`SubprocessError` base class was added.
.. _subprocess-security:
Security Considerations
-----------------------

View file

@ -315,6 +315,7 @@ Here are some examples of typical usage of the :mod:`tempfile` module::
>>>
# directory and contents have been removed
.. _tempfile-mktemp-deprecated:
Deprecated functions and variables
----------------------------------

View file

@ -848,6 +848,8 @@ Exceeding limitations on different file systems can cause decompression failed.
Such as allowable characters in the directory entries, length of the file name,
length of the pathname, size of a single file, and number of files, etc.
.. _zipfile-resources-limitations:
Resources limitations
~~~~~~~~~~~~~~~~~~~~~

View file

@ -0,0 +1 @@
Add a "Security Considerations" index which links to standard library modules that have explicitly documented security considerations.