@@ -713,8 +713,8 @@ Exceptions defined in this module all inherit from :exc:`SubprocessError`.
713
713
Security Considerations
714
714
-----------------------
715
715
716
- Unlike some other popen functions, this implementation will never
717
- implicitly call a system shell. This means that all characters,
716
+ Unlike some other popen functions, this library will not
717
+ implicitly choose to call a system shell. This means that all characters,
718
718
including shell metacharacters, can safely be passed to child processes.
719
719
If the shell is invoked explicitly, via ``shell=True ``, it is the application's
720
720
responsibility to ensure that all whitespace and metacharacters are
@@ -726,6 +726,14 @@ When using ``shell=True``, the :func:`shlex.quote` function can be
726
726
used to properly escape whitespace and shell metacharacters in strings
727
727
that are going to be used to construct shell commands.
728
728
729
+ On Windows, batch files (:file: `*.bat ` or :file: `*.cmd `) may be launched by the
730
+ operating system in a system shell regardless of the arguments passed to this
731
+ library. This could result in arguments being parsed according to shell rules,
732
+ but without any escaping added by Python. If you are intentionally launching a
733
+ batch file with arguments from untrusted sources, consider passing
734
+ ``shell=True `` to allow Python to escape special characters. See :gh: `114539 `
735
+ for additional discussion.
736
+
729
737
730
738
Popen Objects
731
739
-------------
0 commit comments