Архив вопросов безопасности¶
Команда разработчиков Django твердо привержена ответственному информированию и раскрытию информации о проблемах, связанных с безопасностью, как указано в Django’s security policies.
В рамках этого обязательства мы поддерживаем следующий исторический список проблем, которые были исправлены и раскрыты. Для каждой проблемы в списке ниже указаны дата, краткое описание, CVE identifier, если применимо, список затронутых версий, ссылка на полное раскрытие информации и ссылки на соответствующие исправления.
К этой информации относятся некоторые важные предостережения:
- Списки пострадавших версий включают только те версии Django, которые имели стабильные, поддерживаемые безопасностью релизы на момент раскрытия информации. Это означает, что старые версии (чья поддержка безопасности истекла) и версии, которые были в предрелизном (альфа/бета/RC) состоянии на момент раскрытия информации, могли быть затронуты, но не включены в список.
- Проект Django иногда выпускает рекомендации по безопасности, указывая на потенциальные проблемы безопасности, которые могут возникнуть из-за неправильной конфигурации или других проблем, не связанных с самим Django. Некоторые из этих рекомендаций получили CVE; когда это так, они перечислены здесь, но поскольку они не имеют сопровождающих патчей или релизов, в списке будет только описание, раскрытие и CVE.
Проблемы в процессе обеспечения безопасности Django¶
Все вопросы безопасности были решены в версиях процесса безопасности Django. Они перечислены ниже.
1 ноября 2023 года - CVE-2023-46695.¶
Потенциальная уязвимость отказа в обслуживании в UsernameField
на Windows. Full description
4 октября 2023 года - CVE-2023-43665.¶
Возможность отказа в обслуживании в django.utils.text.Truncator
. Full description
4 сентября 2023 г. - CVE-2023-41164.¶
Потенциальная уязвимость отказа в обслуживании в django.utils.encoding.uri_to_iri()
. Full description
3 июля 2023 г. - CVE-2023-36053.¶
Потенциальная уязвимость отказа в обслуживании регулярных выражений в EmailValidator
/URLValidator
. Full description
3 мая 2023 г. - CVE-2023-31047.¶
Возможность обхода проверки при загрузке нескольких файлов через одно поле формы. Full description
14 февраля 2023 г. - CVE-2023-24580.¶
Потенциальная уязвимость отказа в обслуживании при загрузке файлов. Full description
1 февраля 2023 г. - CVE-2023-23969.¶
Потенциальный отказ в обслуживании через заголовки Accept-Language
. Full description
4 октября 2022 г. - CVE-2022-41323.¶
Потенциальная уязвимость отказа в обслуживании в интернационализированных URL-адресах. Full description
3 августа 2022 - CVE-2022-36359.¶
Потенциальная уязвимость отраженной загрузки файлов в FileResponse. Full description
4 июля 2022 - CVE-2022-34265.¶
Потенциальная SQL-инъекция через аргументы Trunc(kind)
и Extract(lookup_name)
. Full description
11 апреля 2022 - CVE-2022-28346.¶
Потенциальная SQL-инъекция в QuerySet.annotate()
, aggregate()
и extra()
. Full description
11 апреля 2022 - CVE-2022-28347.¶
Потенциальная SQL-инъекция через QuerySet.explain(**options)
на PostgreSQL. Full description
1 февраля 2022 года - CVE-2022-22818.¶
Возможный XSS через тег шаблона {% debug %}
. Full description
1 февраля 2022 года - CVE-2022-23833.¶
Возможность отказа в обслуживании при загрузке файлов. Full description
4 января 2022 - CVE-2021-45452.¶
Потенциальный обход каталога через Storage.save()
. Full description
4 января 2022 - CVE-2021-45116.¶
Потенциальное раскрытие информации в фильтре шаблона dictsort
. Full description
4 января 2022 - CVE-2021-45115.¶
Возможность отказа в обслуживании в UserAttributeSimilarityValidator
. Full description
7 декабря 2021 - CVE-2021-44420.¶
Потенциальный обход восходящего контроля доступа, основанного на путях URL. Full description
1 июля 2021 года - CVE-2021-35042¶
Потенциальная SQL-инъекция через несанированный вход QuerySet.order_by()
. Full description
2 июня 2021 года - CVE-2021-33203¶
Потенциальный обход каталога через admindocs
. Full description
2 июня 2021 года - CVE-2021-33571¶
Возможность неопределенных атак SSRF, RFI и LFI, поскольку валидаторы принимали ведущие нули в адресах IPv4. Full description
6 мая 2021 г. - CVE-2021-32052¶
Возможность инъекции заголовка, поскольку URLValidator
принимал новые строки во входных данных на Python 3.9.5+. Full description
6 апреля 2021 - CVE-2021-28658¶
Потенциальный обход каталога через загруженные файлы. Full description
19 февраля 2021 - CVE-2021-23336¶
Отравление веб-кэша через django.utils.http.limited_parse_qsl()
. Full description
1 февраля 2021 года - CVE-2021-3281¶
Потенциальный обход каталога через archive.extract()
. Full description
1 сентября 2020 года - CVE-2020-24584¶
Повышение прав доступа в каталогах промежуточного уровня кэша файловой системы на Python 3.7+. Full description
1 сентября 2020 года - CVE-2020-24583¶
Неправильные разрешения на каталоги промежуточного уровня на Python 3.7+. Full description
3 июня 2020 года - CVE-2020-13596¶
Возможен XSS через администратора ForeignKeyRawIdWidget
. Full description
3 июня 2020 года - CVE-2020-13254¶
Потенциальная утечка данных через неправильно сформированные ключи memcached. Full description
4 марта 2020 года - CVE-2020-9402¶
Потенциальная SQL-инъекция через параметр tolerance
в функциях и агрегатах GIS на Oracle. Full description
3 февраля 2020 года - CVE-2020-7471¶
Потенциальная SQL-инъекция через StringAgg(delimiter)
. Full description
18 декабря 2019 - CVE-2019-19844¶
Потенциальный взлом учетной записи через форму сброса пароля. Full description
2 декабря 2019 - CVE-2019-19118¶
Повышение привилегий в администраторе Django. Full description
1 августа 2019 - CVE-2019-14235¶
Потенциальное исчерпание памяти в django.utils.encoding.uri_to_iri()
. Full description
1 августа 2019 - CVE-2019-14234¶
Возможность SQL-инъекции при поиске ключей и индексов для JSONField
/HStoreField
. Full description
1 августа 2019 - CVE-2019-14232¶
Возможность отказа в обслуживании в django.utils.text.Truncator
. Full description
1 июля 2019 года - CVE-2019-12781¶
Неправильное определение HTTP при подключении обратного прокси-сервера через HTTPS. Full description
3 июня 2019 - CVE-2019-12308¶
XSS через ссылку «Текущий URL», генерируемую AdminURLFieldWidget
. Full description
11 февраля 2019 - CVE-2019-6975¶
Истощение памяти в django.utils.numberformat.format()
. Full description
Затронутые версии¶
- Django 2.1 (patch)
- Django 2.0 (patch и correction)
- Django 1.11 (patch)
4 января 2019 - CVE-2019-3498¶
Возможность подмены содержимого в стандартной странице 404. Full description
1 октября 2018 - CVE-2018-16984¶
Раскрытие хэша пароля для пользователей администратора «только для просмотра». Full description
1 августа 2018 - CVE-2018-14574¶
Открыть возможность перенаправления в CommonMiddleware
. Full description
6 марта 2018 - CVE-2018-7537¶
Возможность отказа в обслуживании в фильтрах шаблонов truncatechars_html
и truncatewords_html
. Full description
6 марта 2018 - CVE-2018-7536¶
Возможность отказа в обслуживании в фильтрах шаблонов urlize
и urlizetrunc
. Full description
1 февраля 2018 - CVE-2018-6188¶
Утечка информации в AuthenticationForm
. Full description
5 сентября 2017 - CVE-2017-12794¶
Возможный XSS в разделе трассировки на странице отладки технического 500. Full description
4 апреля 2017 - CVE-2017-7234¶
Открытая уязвимость перенаправления в django.views.static.serve()
. Full description
4 апреля 2017 - CVE-2017-7233¶
Открытое перенаправление и возможная XSS-атака через заданные пользователем числовые URL перенаправления. Full description
1 ноября 2016 - CVE-2016-9014¶
Уязвимость перепривязки DNS при DEBUG=True
. Full description
1 ноября 2016 - CVE-2016-9013¶
Пользователь с жестко заданным паролем, созданным при выполнении тестов на Oracle. Full description
26 сентября 2016 - CVE-2016-7401¶
Обход защиты CSRF на сайте с Google Analytics. Full description
18 июля 2016 - CVE-2016-6186¶
XSS во всплывающем окне добавления/изменения связанного с администратором. Full description
1 марта 2016 - CVE-2016-2513¶
Перечисление пользователей через разницу во времени при обновлении фактора работы хешера паролей. Full description
1 марта 2016 - CVE-2016-2512¶
Вредоносное перенаправление и возможная XSS-атака через URL-адреса перенаправления, содержащие базовый аутентификатор. Full description
1 февраля 2016 - CVE-2016-2048¶
Пользователь с правом «изменить», но не «добавить» может создавать объекты для ModelAdmin
’s с save_as=True
. Full description
24 ноября 2015 - CVE-2015-8213¶
Возможность утечки настроек в фильтре шаблона date
. Full description
18 августа, 2015 - CVE-2015-5963 / CVE-2015-5964¶
Возможность отказа в обслуживании в представлении logout()
путем заполнения хранилища сессий. Full description
8 июля 2015 - CVE-2015-5144¶
Возможность инъекции заголовка, поскольку валидаторы принимают новые строки во входных данных. Full description
8 июля 2015 - CVE-2015-5143¶
Возможность отказа в обслуживании путем заполнения хранилища сессий. Full description
20 мая 2015 - CVE-2015-3982¶
Исправлена очистка сессии в бэкенде cached_db. Full description
18 марта 2015 - CVE-2015-2317¶
Устранена возможная XSS-атака через URL-адреса перенаправления, заданные пользователем. Full description
18 марта 2015 - CVE-2015-2316¶
Возможность отказа в обслуживании с strip_tags()
. Full description
9 марта 2015 - CVE-2015-2241¶
XSS-атака через свойства в ModelAdmin.readonly_fields
. Full description
13 января 2015 - CVE-2015-0222¶
Отказ в обслуживании базы данных с помощью ModelMultipleChoiceField
. Full description
13 января 2015 - CVE-2015-0221¶
Атака на отказ в обслуживании против django.views.static.serve()
. Full description
13 января 2015 - CVE-2015-0220¶
Устранена возможная XSS-атака через URL-адреса перенаправления, заданные пользователем. Full description
13 января 2015 - CVE-2015-0219¶
Подмена заголовков WSGI с помощью смешения подчеркивания и тире. Full description
20 августа 2014 - CVE-2014-0483¶
Утечка данных через манипуляцию строкой запроса в админке. Full description
20 августа 2014 - CVE-2014-0481¶
Отказ в обслуживании при загрузке файлов. Full description
20 августа 2014 - CVE-2014-0480¶
reverse()
может генерировать URL, указывающие на другие хосты. Full description
18 мая 2014 - CVE-2014-3730¶
Неправильная проверка URL-адресов с неправильным пользовательским вводом. Full description
18 мая 2014 - CVE-2014-1418¶
Кэшам может быть разрешено хранить и обслуживать частные данные. Full description
21 апреля 2014 - CVE-2014-0474¶
Приведение типов в MySQL приводит к неожиданным результатам запросов. Full description
21 апреля 2014 - CVE-2014-0473¶
Кэширование анонимных страниц может раскрыть токен CSRF. Full description
21 апреля 2014 - CVE-2014-0472¶
Неожиданное выполнение кода с использованием reverse()
. Full description
14 сентября 2013 - CVE-2013-1443¶
Отказ в обслуживании через большие пароли. Full description
Затронутые версии¶
- Django 1.4 (patch и Python compatibility fix)
- Django 1.5 (patch)
10 сентября 2013 - CVE-2013-4315¶
Обход каталога через тег шаблона ssi
. Full description
13 августа 2013 - CVE-2013-6044¶
Возможный XSS через непроверенные схемы перенаправления URL. Full description
13 августа 2013 - CVE-2013-4249¶
XSS через администратора, доверяющего значениям URLField
. Full description
19 февраля 2013 - CVE-2013-0306¶
Отказ в обслуживании через обход набора форм max_num
. Full description
19 февраля 2013 - CVE-2013-0305¶
Утечка информации через журнал истории администратора. Full description
19 февраля 2013 - CVE-2013-1664 / CVE-2013-1665¶
Атаки на основе сущностей против XML-библиотек Python. Full description
19 февраля 2013 - Без резюме¶
Дополнительное усиление обработки заголовков Host
. Full description
10 декабря 2012 - No CVE 1¶
Дополнительное усиление обработки заголовков Host
. Full description
30 июля 2012 - CVE-2012-3444¶
Отказ в обслуживании через большие файлы изображений. Full description
30 июля 2012 - CVE-2012-3442¶
XSS через отсутствие проверки схемы перенаправления. Full description
9 сентября 2011 - CVE-2011-4140¶
Потенциальная CSRF через заголовок Host
. Full description
Затронутые версии¶
Это уведомление носило исключительно рекомендательный характер, поэтому никаких исправлений выпущено не было.
- Django 1.2
- Django 1.3
9 сентября 2011 - CVE-2011-4139¶
Host
отравление кэша заголовков. Full description
9 сентября 2011 - CVE-2011-4138¶
Утечка информации/выдача произвольных запросов через URLField.verify_exists
. Full description
9 сентября 2011 - CVE-2011-4137¶
Отказ в обслуживании через URLField.verify_exists
. Full description
9 сентября 2011 - CVE-2011-4136¶
Манипулирование сессией при использовании сессии с поддержкой кэша памяти. Full description
8 февраля 2011 - CVE-2011-0698¶
Обход каталога в Windows через неправильную обработку разделителя путей. Full description
8 февраля 2011 - CVE-2011-0696¶
CSRF через поддельные HTTP-заголовки. Full description
22 декабря 2010 - CVE-2010-4534¶
Утечка информации в административном интерфейсе. Full description
9 октября 2009 - CVE-2009-3965¶
Отказ в обслуживании через патологическое выполнение регулярного выражения. Full description
28 июля 2009 - CVE-2009-2659¶
Обратный путь в каталогах в обработчике медиафайлов сервера разработки. Full description
2 сентября 2008 - CVE-2008-3909¶
CSRF через сохранение POST-данных при входе в систему администратора. Full description
14 мая 2008 - CVE-2008-2302¶
XSS через перенаправление входа в систему администратора. Full description
26 октября 2007 - CVE-2007-5712¶
Отказ в обслуживании через произвольно большой заголовок Accept-Language
. Full description
Проблемы, предшествующие процессу обеспечения безопасности Django¶
Некоторые проблемы безопасности были решены до того, как в Django появился формализованный процесс обеспечения безопасности. Для них, возможно, в то время не выпускались новые релизы, и CVE могли быть не присвоены.
21 января 2007 - CVE-2007-0405¶
Очевидное «кэширование» аутентифицированного пользователя. Full description
16 августа 2006 - CVE-2007-0404¶
Проблема проверки имени файла во фреймворке перевода. Full description