Системный журнал — практичная база знаний по VPS и Linux
Системный журнал Системный журнал
Linux • Python • Ubuntu • Vulnerability • Безопасность

Уязвимость Python USN-8524-1: защита от XML DoS атак

2 мин чтения

В безопасности системного администрирования критически важно своевременно реагировать на уязвимости в интерпретаторах языков программирования, которые используются в системных скриптах и веб-приложениях. Недавнее уведомление от Ubuntu Security Notices (USN-8524-1) предупреждает об уязвимости в Python, которая может привести к отказу в обслуживании (DoS).

Суть уязвимости: Hash-flooding в XML-парсерах

Проблема заключается в недостаточном использовании энтропии для защиты от атак типа hash-flooding в модулях xml.parsers.expat и xml.etree.ElementTree. Данная уязвимость позволяет злоумышленнику вызвать аварийное завершение работы (crash) интерпретатора Python при обработке специально сформированного XML-документа.

Атаки типа hash-flooding эксплуатируют особенности работы хеш-таблиц. Если входные данные подобраны таким образом, чтобы вызывать коллизии хеш-функции, это приводит к резкому росту нагрузки на процессор и переполнению ресурсов, что делает невозможным дальнейшую работу приложения или всей системы.

Затронутые версии Python

Уязвимость затрагивает следующие версии интерпретатора:

  • Python 2.7
  • Python 3.5

Администраторам необходимо проверить наличие установленных версий этих интерпретаторов в своих системах, особенно если на серверах развернуты устаревшие приложения или скрипты автоматизации, использующие данные версии.

Способы устранения и минимизация рисков

Для устранения уязвимости требуется обновление соответствующих пакетов Python до версий, в которых реализована корректная защита с использованием достаточного объема энтропии. В дистрибутивах семейства Ubuntu стандартным и наиболее безопасным способом является выполнение системного обновления.

Обновление системы

Для обновления пакетов в Ubuntu используйте стандартный менеджер пакетов apt. Перед выполнением операций с системными пакетами рекомендуется убедиться в наличии резервной копии данных.

# Обновление списка пакетов
sudo apt update

# Применение обновлений безопасности
sudo apt upgrade

После завершения процесса обновления рекомендуется перезапустить сервисы, использующие Python, или перезагрузить систему для гарантии применения всех исправлений в оперативной памяти.

Проверка результата

После обновления можно проверить текущую версию установленного Python с помощью команды:

python --version
# или
python3 --version

Однако, поскольку уязвимость связана с внутренними механизмами модулей XML, наиболее надежным способом проверки является подтверждение того, что установленная версия пакета соответствует исправленной версии из репозитория безопасности Ubuntu.

Заключение

Уязвимость в модулях обработки XML представляет серьезную угрозу для доступности сервисов. Рекомендуется не откладывать обновление Python до критических сбоев, особенно если ваши системы обрабатывают XML-данные из внешних, потенциально недоверенных источников.