Перейти к содержанию

JP1221C

Проверка вызова модуля subprocess c параметром shell. Расширенный список вызовов

Static Badge Static Badge


Особенности: Shell=True

Создание внешних процессов через утилиты операционной системы с параметром shell=True требует повышенного контроля экранирования входных параметров. Вызов оболочки вызывает программу по выбору пользователя и зависит от платформы. В общем случае вызовов через оболочку c параметром shell=True следует избегать.

Для вызова команд с параметром shell=False отключено большинство стандартных функций оболочки shell, что снижает вероятность уязвимости с внедрением сторонних команд.

Пример небезопасного использования

1
2
3
4
from subprocess import Popen

def call_gcc(param: str):
    Popen(f"bin/gcc {param}", shell=True)

Проверяемые методы

  • subprocess.Popen
  • subprocess.call
  • subprocess.check_call
  • subprocess.check_output
  • execute_with_timeout

Дополнительная информация