Опубликованы обновления безопасности для Django
Разработчики Django сообщают о мерах, необходимых для устранения обнаруженной уязвимости.
Описание уязвимости
Django включает лёгкий, работающий через WSGI веб-сервер, для использования при изучении Django и тестирования новых приложений в процессе разработки. Для удобства, этот веб-сервер автоматически составляет карту определённых URL, соответствующих статических медиа-файлов, используемых приложением администрирования Django.
Обработчик, который выполняет эти действия, не проверяет должным образом запрашиваемый URL-адрес, чтобы убедиться, что адрес соответствует медиа-файлу, используемому Django. В результате, специально подготовленный URL может вызвать обработку сервером любого файла, к которому у Django есть доступ на чтение.
По умолчанию, веб-сервер, предназначенный для разработки, не следит за интерфейсами, кроме локальной внутренней IPv4-сети, а в документации Django содержатся предупреждения против использования этого сервера для других задач (например, прослушивание публичных или доступных извне интерфейсов), так как этот веб-сервер недостаточно безопасен и не обладает достаточной производительностью.
Затрагиваемые версии
- Django development trunk
- Django 1.0
- Django 0.96
Решение
Обработчик медиа-файлов сервера был пропатчен, чтобы запрашиваемый URL соответствовал статическому медиа-файлу, который должен быть обслужен, и чтобы при несоответствии выводилась HTTP-ошибка 404 ("Файл не найден").
Патчи применены в следующих наборах изменений:
- Django development trunk: changeset 11351;
- Серия Django 1.0.X: changeset 11353;
- Серия Django 0.96.X: changeset 11354.
Следующие релизы выпущены немедленно:
- Django 0.96.4 (загрузка | контрольные суммы)
- Django 1.0.3 (загрузка | контрольные суммы)
Эти релизы рекомендуются для немедленной установки для всех пользователей упомянутых версий Django.
Финальный релиз Django 1.1 будет включать данный патч.