Архив вопросов безопасности¶
Команда разработчиков Django твердо привержена ответственному информированию и раскрытию информации о проблемах, связанных с безопасностью, как указано в Django’s security policies.
В рамках этого обязательства мы поддерживаем следующий исторический список проблем, которые были исправлены и раскрыты. Для каждой проблемы в списке ниже указаны дата, краткое описание, CVE identifier, если применимо, список затронутых версий, ссылка на полное раскрытие информации и ссылки на соответствующие исправления.
К этой информации относятся некоторые важные предостережения:
- Списки пострадавших версий включают только те версии Django, которые имели стабильные, поддерживаемые безопасностью релизы на момент раскрытия информации. Это означает, что старые версии (чья поддержка безопасности истекла) и версии, которые были в предрелизном (альфа/бета/RC) состоянии на момент раскрытия информации, могли быть затронуты, но не включены в список.
- Проект Django иногда выпускает рекомендации по безопасности, указывая на потенциальные проблемы безопасности, которые могут возникнуть из-за неправильной конфигурации или других проблем, не связанных с самим Django. Некоторые из этих рекомендаций получили CVE; когда это так, они перечислены здесь, но поскольку они не имеют сопровождающих патчей или релизов, в списке будет только описание, раскрытие и CVE.
Проблемы, предшествующие процессу обеспечения безопасности Django¶
Некоторые проблемы безопасности были решены до того, как в Django появился формализованный процесс обеспечения безопасности. Для них, возможно, в то время не выпускались новые релизы, и CVE могли быть не присвоены.
Август 16, 2006 - CVE-2007-0404¶
Проблема валидации имен файлов во фреймворке перевода. Full description
21 января 2007 - CVE-2007-0405.¶
Очевидное «кэширование» аутентифицированного пользователя. Full description
Проблемы в процессе обеспечения безопасности Django¶
Все остальные вопросы безопасности были решены в версиях процесса безопасности Django. Они перечислены ниже.
Октябрь 26, 2007 - CVE-2007-5712¶
Отказ в обслуживании через произвольно большой заголовок Accept-Language
. Full description
14 мая 2008 - CVE-2008-2302.¶
XSS через перенаправление входа в систему администратора. Full description
2 сентября 2008 - CVE-2008-3909.¶
CSRF через сохранение POST-данных при входе администратора. Full description
28 июля 2009 - CVE-2009-2659.¶
Обратный путь в каталогах в обработчике медиафайлов сервера разработки. Full description
9 октября 2009 - CVE-2009-3965.¶
Отказ в обслуживании через патологическое выполнение регулярных выражений. Full description
8 сентября 2010 - CVE-2010-3082.¶
XSS через доверие небезопасному значению cookie. Full description
Декабрь 22, 2010 - CVE-2010-4534¶
Утечка информации в административном интерфейсе. Full description
Декабрь 22, 2010 - CVE-2010-4535¶
Отказ в обслуживании в механизме сброса пароля. Full description
8 февраля 2011 - CVE-2011-0696.¶
CSRF через поддельные HTTP-заголовки. Full description
8 февраля 2011 - CVE-2011-0697.¶
XSS через несанированные имена загружаемых файлов. Full description
8 февраля 2011 - CVE-2011-0698.¶
Обход каталога в Windows через неправильную обработку разделителя путей. Full description
9 сентября 2011 - CVE-2011-4136.¶
Манипуляция сессией при использовании сессии с поддержкой кэша памяти. Full description
9 сентября 2011 - CVE-2011-4137.¶
Отказ в обслуживании через URLField.verify_exists
. Full description
9 сентября 2011 - CVE-2011-4138.¶
Утечка информации/выдача произвольного запроса через URLField.verify_exists
. Full description
9 сентября 2011 - CVE-2011-4139.¶
Host
отравление кэша заголовков. Full description
9 сентября 2011 - CVE-2011-4140.¶
Потенциальная CSRF через заголовок Host
. Full description
Затронутые версии¶
Это уведомление носило исключительно рекомендательный характер, поэтому никаких исправлений выпущено не было.
- Django 1.2
- Django 1.3
30 июля 2012 - CVE-2012-3442.¶
XSS через неспособность проверить схему перенаправления. Full description
30 июля 2012 - CVE-2012-3443.¶
Отказ в обслуживании через сжатые файлы изображений. Full description
30 июля 2012 - CVE-2012-3444.¶
Отказ в обслуживании через большие файлы изображений. Full description
17 октября 2012 - CVE-2012-4520.¶
Host
отравление заголовков. Full description
10 декабря 2012 - No CVE 1¶
Дополнительное усиление обработки заголовков Host
. Full description
10 декабря 2012 - No CVE 2¶
Дополнительное усиление проверки перенаправления. Full description
19 февраля 2013 - Без резюме¶
Дополнительное усиление обработки заголовков Host
. Full description
19 февраля 2013 - CVE-2013-1664 / CVE-2013-1665¶
Атаки на основе сущностей против XML-библиотек Python. Full description
19 февраля 2013 - CVE-2013-0305¶
Утечка информации через журнал истории администратора. Full description
19 февраля 2013 - CVE-2013-0306¶
Отказ в обслуживании через обход набора форм max_num
. Full description
Август 13, 2013 - CVE-2013-4249¶
XSS через администратора, доверяющего URLField
значения. Full description
Август 13, 2013 - CVE-2013-6044¶
Возможность XSS через непроверенные схемы перенаправления URL. Full description
Сентябрь 10, 2013 - CVE-2013-4315¶
Обход каталога через тег шаблона ssi
. Full description
Сентябрь 14, 2013 - CVE-2013-1443¶
Отказ в обслуживании через большие пароли. Full description
Затронутые версии¶
- Django 1.4 (patch и Python compatibility fix)
- Django 1.5 (patch).
21 апреля 2014 - CVE-2014-0472.¶
Неожиданное выполнение кода с использованием reverse()
. Full description
21 апреля 2014 - CVE-2014-0473.¶
Кэширование анонимных страниц может раскрыть токен CSRF. Full description
21 апреля 2014 - CVE-2014-0474.¶
Приведение типов в MySQL приводит к неожиданным результатам запросов. Full description
18 мая 2014 - CVE-2014-1418.¶
Кэшам может быть разрешено хранить и обслуживать частные данные. Full description
18 мая 2014 - CVE-2014-3730.¶
Неправильная валидация URL-адресов из пользовательского ввода. Full description
20 августа 2014 - CVE-2014-0480¶
reverse()
может генерировать URL, указывающие на другие хосты. Full description
20 августа 2014 - CVE-2014-0481¶
Отказ в обслуживании при загрузке файлов. Full description
20 августа 2014 - CVE-2014-0482¶
RemoteUserMiddleware
перехват сеанса. Full description
20 августа 2014 - CVE-2014-0483¶
Утечка данных через манипуляцию строкой запроса в админке. Full description
13 января 2015 - CVE-2015-0219¶
Подмена заголовков WSGI через смешение подчеркивания и тире. Full description
13 января 2015 - CVE-2015-0220¶
Устранена возможная XSS-атака через URL-адреса перенаправления, заданные пользователем. Full description
13 января 2015 - CVE-2015-0221¶
Атака на отказ в обслуживании против django.views.static.serve()
. Full description
13 января 2015 - CVE-2015-0222¶
Отказ в обслуживании базы данных с помощью ModelMultipleChoiceField
. Full description
9 марта 2015 - CVE-2015-2241.¶
XSS-атака через свойства в ModelAdmin.readonly_fields
. Full description
18 марта 2015 - CVE-2015-2316.¶
Возможность отказа в обслуживании при strip_tags()
. Full description
18 марта 2015 - CVE-2015-2317.¶
Устранена возможная XSS-атака через URL-адреса перенаправления, заданные пользователем. Full description
20 мая 2015 - CVE-2015-3982.¶
Исправлена очистка сессии в бэкенде cached_db. Full description
8 июля 2015 - CVE-2015-5143.¶
Возможность отказа в обслуживании путем заполнения хранилища сессий. Full description
8 июля 2015 - CVE-2015-5144.¶
Возможность инъекции заголовка, поскольку валидаторы принимают новые строки во входных данных. Full description
8 июля 2015 - CVE-2015-5145.¶
Возможность отказа в обслуживании при проверке URL. Full description
18 августа 2015 - CVE-2015-5963 / CVE-2015-5964¶
Возможность отказа в обслуживании в представлении logout()
путем заполнения хранилища сессий. Full description
24 ноября 2015 - CVE-2015-8213¶
Возможность утечки настроек в фильтре шаблона date
. Full description
1 февраля 2016 - CVE-2016-2048.¶
Пользователь с правом «изменить», но не «добавить» может создавать объекты для ModelAdmin
’s с save_as=True
. Full description
1 марта 2016 - CVE-2016-2512.¶
Вредоносное перенаправление и возможная XSS-атака через URL-адреса перенаправления, содержащие базовый аутентификатор. Full description
1 марта 2016 - CVE-2016-2513.¶
Перечисление пользователей через разницу во времени при обновлении фактора работы хешера паролей. Full description
18 июля 2016 - CVE-2016-6186¶
XSS во всплывающем окне добавления/изменения связанного с администратором. Full description
26 сентября, 2016 - CVE-2016-7401¶
Обход защиты CSRF на сайте с Google Analytics. Full description
1 ноября 2016 - CVE-2016-9013.¶
Пользователь с жестко заданным паролем, созданным при выполнении тестов на Oracle. Full description
1 ноября 2016 - CVE-2016-9014.¶
Уязвимость перепривязки DNS при DEBUG=True
. Full description
4 апреля 2017 - CVE-2017-7233.¶
Открытое перенаправление и возможная XSS-атака через заданные пользователем числовые URL перенаправления. Full description
4 апреля 2017 - CVE-2017-7234.¶
Открытая уязвимость перенаправления в django.views.static.serve()
. Full description
Сентябрь 5, 2017 - CVE-2017-12794¶
Возможный XSS в разделе отслеживания отладочной страницы Technical 500. Full description
1 февраля 2018 - CVE-2018-6188.¶
Утечка информации в AuthenticationForm
. Full description
6 марта 2018 - CVE-2018-7536.¶
Возможность отказа в обслуживании в фильтрах шаблонов urlize
и urlizetrunc
. Full description
6 марта 2018 - CVE-2018-7537.¶
Возможность отказа в обслуживании в фильтрах шаблонов truncatechars_html
и truncatewords_html
. Full description
1 августа 2018 - CVE-2018-14574.¶
Открытая возможность перенаправления в CommonMiddleware
. Full description
1 октября 2018 - CVE-2018-16984.¶
Раскрытие хэша пароля для пользователей администратора «только для просмотра». Full description
4 января 2019 - CVE-2019-3498.¶
Возможность подмены содержимого в стандартной странице 404. 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).
3 июня 2019 - CVE-2019-11358.¶
Загрязнение прототипов в поставляемом jQuery. Full description
3 июня 2019 - CVE-2019-12308.¶
XSS через ссылку «Current URL», генерируемую AdminURLFieldWidget
. Full description
1 июля 2019 - CVE-2019-12781.¶
Неправильное определение HTTP при подключении обратного прокси-сервера через HTTPS. Full description
1 августа 2019 - CVE-2019-14232.¶
Возможность отказа в обслуживании в django.utils.text.Truncator
. Full description
1 августа 2019 - CVE-2019-14233.¶
Возможность отказа в обслуживании в strip_tags()
. Full description
1 августа 2019 - CVE-2019-14234.¶
Возможность SQL-инъекции при поиске ключей и индексов для JSONField
/HStoreField
. Full description
1 августа 2019 - CVE-2019-14235.¶
Потенциальное исчерпание памяти в django.utils.encoding.uri_to_iri()
. Full description
2 декабря 2019 - CVE-2019-19118.¶
Повышение привилегий в админке Django. Full description
18 декабря 2019 - CVE-2019-19844.¶
Потенциальный взлом аккаунта через форму сброса пароля. Full description
3 февраля 2020 - CVE-2020-7471.¶
Потенциальная SQL-инъекция через StringAgg(delimiter)
. Full description
4 марта 2020 - CVE-2020-9402.¶
Потенциальная SQL-инъекция через параметр tolerance
в функциях и агрегатах GIS на Oracle. Full description
3 июня 2020 - CVE-2020-13254.¶
Потенциальная утечка данных через неправильно сформированные ключи memcached. Full description
3 июня 2020 - CVE-2020-13596.¶
Возможен XSS через администратора ForeignKeyRawIdWidget
. Full description
1 сентября 2020 года - CVE-2020-24583.¶
Неправильные разрешения на каталоги промежуточного уровня на Python 3.7+. Full description
1 сентября 2020 года - CVE-2020-24584.¶
Повышение прав доступа в каталогах промежуточного уровня кэша файловой системы на Python 3.7+. Full description
1 февраля 2021 года - CVE-2021-3281.¶
Потенциальный обход каталога через archive.extract()
. Full description
19 февраля 2021 - CVE-2021-23336.¶
Отравление веб-кэша через django.utils.http.limited_parse_qsl()
. Full description
April 6, 2021 - CVE-2021-28658¶
Potential directory-traversal via uploaded files. Full description
May 4, 2021 - CVE-2021-31542¶
Potential directory-traversal via uploaded files. Full description
May 6, 2021 - CVE-2021-32052¶
Header injection possibility since URLValidator
accepted newlines in input
on Python 3.9.5+. Full description
June 2, 2021 - CVE-2021-33203¶
Potential directory traversal via admindocs
. Full description
June 2, 2021 - CVE-2021-33571¶
Possible indeterminate SSRF, RFI, and LFI attacks since validators accepted leading zeros in IPv4 addresses. Full description
December 7, 2021 - CVE-2021-44420¶
Potential bypass of an upstream access control based on URL paths. Full description
January 4, 2022 - CVE-2021-45115¶
Denial-of-service possibility in UserAttributeSimilarityValidator
. Full
description
January 4, 2022 - CVE-2021-45116¶
Potential information disclosure in dictsort
template filter. Full
description
January 4, 2022 - CVE-2021-45452¶
Potential directory-traversal via Storage.save()
. Full description
February 1, 2022 - CVE-2022-22818¶
Possible XSS via {% debug %}
template tag. Full description
February 1, 2022 - CVE-2022-23833¶
Denial-of-service possibility in file uploads. Full description
April 11, 2022 - CVE-2022-28346¶
Potential SQL injection in QuerySet.annotate()
, aggregate()
, and
extra()
. Full description
April 11, 2022 - CVE-2022-28347¶
Potential SQL injection via QuerySet.explain(**options)
on PostgreSQL.
Full description