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

USN-8537-1: уязвимость в httplib2 может привести к DoS

3 мин чтения

Уязвимость USN-8537-1 в библиотеке httplib2, используемой для работы с HTTP-запросами в Python, может привести к отказу в обслуживании (DoS) из-за неограниченной декомпрессии HTTP-ответов.

Проблема заключается в том, что httplib2 не ограничивает размер данных при декомпрессии ответов с использованием алгоритмов gzip или deflate. Это позволяет удалённому злоумышленнику отправить специально сформированный HTTP-ответ, который вызовет чрезмерное потребление ресурсов и приведёт к DoS.

Кто подвержен риску

Уязвимость затрагивает системы с установленной библиотекой python3-httplib2, особенно те, которые обрабатывают HTTP-запросы от недоверенных источников. Это могут быть веб-серверы, API-шлюзы или любые другие сервисы, использующие httplib2 для работы с HTTP.

Для проверки наличия уязвимой версии библиотеки выполните команду:

dpkg -l python3-httplib2 | grep Version

Если версия ниже 0.19.1-1ubuntu0.1, система уязвима.

Подготовка к обновлению

Перед обновлением рекомендуется:

  • Создать резервную копию важных данных и конфигураций.
  • Определить окно обслуживания, чтобы минимизировать влияние на работу сервисов.
  • Проверить зависимости других пакетов от httplib2, так как обновление может потребовать перезапуска зависимых сервисов.

Как исправить уязвимость

Для исправления проблемы необходимо обновить пакет до версии python3-httplib2 (0.19.1-1ubuntu0.1). Это можно сделать с помощью стандартного обновления системы:

sudo apt update && sudo apt upgrade python3-httplib2

После обновления перезапустите все сервисы, использующие httplib2. Если это веб-сервер или API-шлюз, выполните:

sudo systemctl restart apache2

или

sudo systemctl restart nginx

в зависимости от используемого веб-сервера.

Как проверить результат

Чтобы убедиться, что обновление прошло успешно и уязвимость исправлена, выполните команду проверки версии ещё раз:

dpkg -l python3-httplib2 | grep Version

Если версия изменилась на 0.19.1-1ubuntu0.1, обновление прошло успешно.

Также рекомендуется проверить логи сервисов на наличие ошибок после перезапуска:

sudo journalctl -u apache2 --no-pager -n 50

или

sudo journalctl -u nginx --no-pager -n 50

Дополнительные меры безопасности

Для снижения риска рекомендуется:

  • Ограничивать доступ к сервисам, использующим httplib2, только доверенным источникам.
  • Регулярно обновлять все пакеты системы для предотвращения известных уязвимостей.
  • Использовать средства мониторинга для обнаружения аномального поведения сервисов.

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

Ограничения и типичные ошибки

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

  • Зависимости: Если другие пакеты зависят от старой версии httplib2, обновление может вызвать конфликты. В этом случае необходимо обновить все зависимые пакеты.
  • Перезапуск сервисов: Некоторые сервисы могут не перезапуститься корректно после обновления. В этом случае проверьте логи и попробуйте перезапустить их вручную.
  • Совместимость: Если вы используете кастомные скрипты или приложения, которые зависят от старой версии httplib2, они могут работать некорректно после обновления. В этом случае необходимо протестировать их работу и при необходимости внести изменения.