Примечания к выпуску Django 3.0.1 ¶
18 декабря 2019 г.,
Django 3.0.1 исправляет проблему безопасности и несколько ошибок в версии 3.0.
CVE-2019-19844: потенциальный взлом аккаунта с помощью формы для сброса пароля ¶
Отправив для сравнения надлежащим образом созданный адрес электронной почты с использованием символов Unicode, который сравнивается с существующим адресом электронной почты пользователя в нижнем регистре для сравнения, злоумышленнику может быть отправлен токен сброса пароля для соответствующей учетной записи.
Чтобы избежать этой уязвимости, запросы на сброс пароля теперь сравнивают отправленное электронное письмо с использованием более строгого рекомендованного алгоритма без учета регистра двух идентификаторов из Технического отчета Unicode 36, раздел 2.11.2 (B) (2) . После совпадения электронное письмо, содержащее токен сброса, будет отправлено на указанный адрес электронной почты, а не на указанный адрес.
Исправления ¶
- Исправлена регрессия в Django 3.0 путем восстановления возможности использования Django внутри Jupyter и других сред, которые принудительно используют асинхронный контекст, путем добавления опции для отключения механизма безопасности Async с помощью
DJANGO_ALLOW_ASYNC_UNSAFE
переменная окружения ( # 31056 ). - Исправлена регрессия в Django 3.0, когда
RegexPattern
использовалисьre_path()
возвращаемые позиционные аргументы для передачи в представление, когда все необязательные именованные группы отсутствовали ( # 31061 ). - Реализованы, после регрессии в Django 3.0,
Window
выражения, которые будут использоваться в условиях вне фильтров набора запросов , например, вWhen
условиях ( # 31060 ). - Исправлена возможность потери данных в
SplitArrayField
. При использовании withArrayField(BooleanField())
все значения после первогоTrue
значения были отмечены как проверенные вместо сохранения переданных значений ( # 31073 ).