Фонд программного обеспечения Python выпустил Python 3.9.2 и 3.8.8, в которых исправил две ошибки безопасности. Одну из них можно было использовать удаленно, чтобы вывести устройство из строя.
Фонд просит своих пользователей обновить системы, чтобы устранить уязвимость удаленного исполнения кода. Релиз новых версий ускорили после того, как усилилось давление на фонд со стороны пользователей, которые были недовольны проблемами с безопасностью.
У версии Python от 3.x до 3.9.1 есть ошибка переполнения буфера в PyCArg_repr в ctypes/callproc.c, что может привести к удаленному исполнению кода.
Это влияет на приложения Python, которые принимают числа с плавающей запятой как ненадежные исходные данные, что демонстрируется аргументом 1e300 для c_double.from_param.
Баг возникает, потому что небезопасно используется «sprintf». Последствия значительны из-за того, что Python предустанавливается с множеством дистрибутивов Linux и Windows 10.
Уязвимость является утечкой памяти. Как сообщают специалисты, в буфере стека неправильно проверяются вводные данные, из-за чего происходит его переполнение. Это могло позволить хакерам переполнить буфер и привести приложения к сбою. Однако эксперты также отмечают, что все, что могли сделать злоумышленники, – это осуществить атаку отказа в обслуживании.
Вторая уязвимость касается отравления веб-кэша.