Примечания к выпуску Django 1.11.10 ¶
1 февраля 2018 г.
Django 1.11.10 исправляет проблему безопасности и несколько ошибок в 1.11.9.
CVE-2018-6188: утечка информации в AuthenticationForm
¶
В результате регресса в Django 1.11.8
AuthenticationForm
его confirm_login_allowed()
метод запускался
даже при вводе неверного пароля. Это может привести к утечке информации о пользователе, в зависимости от того, какие сообщения
confirm_login_allowed()
возникают. Если confirm_login_allowed()
не отменено, злоумышленник вводит произвольное имя пользователя и проверяет, установлен ли этот пользователь на is_active=False
. В случае confirm_login_allowed()
переопределения может произойти утечка более важных деталей.
Эта проблема устранена с предупреждением, что AuthenticationForm
больше не может появляться сообщение «Эта учетная запись неактивна». ошибка, если бэкэнд аутентификации отклоняет неактивных пользователей (бэкэнд аутентификации по умолчанию ModelBackend
делал это с Django 1.10). Эта проблема будет повторно рассмотрена для Django 2.1, поскольку исправление для устранения этой оговорки, вероятно, будет слишком агрессивным для включения в более старые версии.
Исправления ¶
- Исправлено некорректное обнуление внешнего ключа, если у модели есть два внешних ключа к одной и той же модели, а целевая модель удалена ( # 29016 ).
- Исправлена регрессия, при которой происходит
contrib.auth.authenticate()
сбой, если серверная часть аутентификации не принимает,request
а более поздняя - принимает ( # 29071 ). - Исправлен сбой при вводе недопустимого uuid в
ModelAdmin.raw_id_fields
( # 29094 ).