mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 19:34:08 +00:00 
			
		
		
		
	bpo-39498 Start linking the security warnings in the stdlib modules (GH-18272)
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
This commit is contained in:
		
							parent
							
								
									058fb35b57
								
							
						
					
					
						commit
						c5c5326d47
					
				
					 10 changed files with 45 additions and 0 deletions
				
			
		| 
						 | 
				
			
			@ -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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -75,3 +75,4 @@ the `Python Package Index <https://pypi.org>`_.
 | 
			
		|||
   unix.rst
 | 
			
		||||
   superseded.rst
 | 
			
		||||
   undoc.rst
 | 
			
		||||
   security_warnings.rst
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -152,6 +152,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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1187,6 +1187,7 @@ For example:
 | 
			
		|||
    >>> arr2
 | 
			
		||||
    array('i', [0, 1, 2, 3, 4, 0, 0, 0, 0, 0])
 | 
			
		||||
 | 
			
		||||
.. _multiprocessing-recv-pickle-security:
 | 
			
		||||
 | 
			
		||||
.. warning::
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										32
									
								
								Doc/library/security_warnings.rst
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								Doc/library/security_warnings.rst
									
										
									
									
									
										Normal 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>`
 | 
			
		||||
| 
						 | 
				
			
			@ -54,6 +54,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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -710,6 +710,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
 | 
			
		||||
-----------------------
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -344,6 +344,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
 | 
			
		||||
----------------------------------
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -886,6 +886,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
 | 
			
		||||
~~~~~~~~~~~~~~~~~~~~~
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Add a "Security Considerations" index which links to standard library modules that have explicitly documented security considerations.
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue