Перейти к содержимому
Noroxi
CVE-2022-28346· NVD / CVE Program· CNA mitre

An issue was discovered in Django 2.2 before 2.2.28, 3.2 before 3.2.13, and 4.0 before 4.0.4.

An issue was discovered in Django 2.2 before 2.2.28, 3.2 before 3.2.13, and 4.0 before 4.0.4. QuerySet.annotate(), aggregate(), and extra() methods are subject to SQL injection in column aliases via a crafted dictionary (with dictionary expansion) as the passed **kwargs.

КритическаяCVSS 9.8 · v3.1—Proof of concept Есть исправление
Опубликовано
12 апр. 2022 г.
Обновлено
17 июн. 2026 г.
EPSS
18,7 % · 97-й процентиль
Следить за этой CVE

Войдите, чтобы следить · Вы получите уведомление, если запись попадёт в KEV, получит эксплойт или обновится.

Инструменты для отчёта

JSON

Оценка срочности

45

В плане

Включите в обычный цикл установки исправлений.

CVSS
39 / 40 · 9.8 / 10
CISA KEV
0 / 30 · Нет в списке
EPSS
6 / 30 · 18,7 %

Анализ Noroxi

Анализа Noroxi для этой записи пока нет

Мы не пишем анализ вручную для сотен тысяч уязвимостей в базе; это было бы нечестно. Для значимых уязвимостей с реальным влиянием наша команда описывает механизм, обнаружение и устранение.

Мы используем этот продукт, нужна помощь

Затронутые системы

ВендорПродукт
djangoprojectdjango
debiandebian linux

Затронутые версии

Диапазоны версий NVD (для продуктов из каталога). Добавьте продукт в стек с версией, и сопоставление будет по ним.

  • debian debian linux11.0
  • debian debian linux9.0
  • djangoproject django2.2 и новее · до 2.2.28
  • djangoproject django3.2 и новее · до 3.2.13
  • djangoproject django4.0 и новее · до 4.0.4

Затронутые пакеты

Данные OSV и GitHub Advisory: экосистема, пакет и диапазон. Сопоставление SBOM использует эту таблицу.

ЭкосистемаПакетЗатронутый диапазонИсправление
Debian:10python-djangoдо 1:1.11.29-1+deb10u31:1.11.29-1+deb10u3
Debian:11python-djangoдо 2:2.2.28-1~deb11u12:2.2.28-1~deb11u1
Debian:12python-djangoдо 2:3.2.13-12:3.2.13-1
Debian:9python-djangoдо 1:1.10.7-2+deb9u161:1.10.7-2+deb9u16
openSUSE:Leap 15.5python-Djangoдо 2.0.7-150000.1.27.12.0.7-150000.1.27.1
openSUSE:Tumbleweedpython-Djangoдо 4.0.4-1.14.0.4-1.1
openSUSE:Tumbleweedpython-Djangoдо 5.1.5-1.15.1.5-1.1
PyPIdjangoс 2.2 · до 2.2.282.2.28
PyPIdjangoс 3.2 · до 3.2.133.2.13
PyPIdjangoс 4.0 · до 4.0.44.0.4
Red Hat:ansible_automation_platform:2.1::el8automation-controllerдо 0:4.1.2-2.el8ap0:4.1.2-2.el8ap
Red Hat:ansible_automation_platform:2.1::el8automation-controller-cliдо 0:4.1.2-2.el8ap0:4.1.2-2.el8ap
Red Hat:ansible_automation_platform:2.1::el8automation-controller-serverдо 0:4.1.2-2.el8ap0:4.1.2-2.el8ap
Red Hat:ansible_automation_platform:2.1::el8automation-controller-uiдо 0:4.1.2-2.el8ap0:4.1.2-2.el8ap
Red Hat:ansible_automation_platform:2.1::el8automation-controller-venv-towerдо 0:4.1.2-2.el8ap0:4.1.2-2.el8ap
Red Hat:ansible_automation_platform:2.1::el8python-djangoдо 0:3.2.13-1.el8pc0:3.2.13-1.el8pc
Red Hat:ansible_automation_platform:2.1::el8python38-djangoдо 0:3.2.13-1.el8pc0:3.2.13-1.el8pc
Red Hat:ansible_automation_platform:4.2::el7python3-djangoдо 0:2.2.28-1.el7pc0:2.2.28-1.el7pc
Red Hat:ansible_automation_platform:4.2::el8python3-djangoдо 0:2.2.28-1.el8pc0:2.2.28-1.el8pc
Red Hat:openstack:16.1::el8python-django20до 0:2.0.13-18.el8ost0:2.0.13-18.el8ost
Red Hat:openstack:16.1::el8python-django20-bash-completionдо 0:2.0.13-18.el8ost0:2.0.13-18.el8ost
Red Hat:openstack:16.1::el8python3-django20до 0:2.0.13-18.el8ost0:2.0.13-18.el8ost
Red Hat:openstack:16.2::el8python-django20до 0:2.0.13-17.el8ost0:2.0.13-17.el8ost
Red Hat:rhui:4::el8python-djangoдо 0:3.2.13-2.el8ui0:3.2.13-2.el8ui

+32

Тот же продукт

djangoproject: все записи

Другие записи с наивысшей оценкой для того же основного продукта.

  • CVE-2022-34265An issue was discovered in Django 3.2 before 3.2.14 and 4.0 before 4.0.6.
    61На этой неделе
  • CVE-2020-7471Django 1.11 before 1.11.28, 2.2 before 2.2.10, and 3.0 before 3.0.3 allows SQL Injection if untrusted data is used as a StringAgg delimiter
    59В плане
  • CVE-2019-19844Django before 1.11.27, 2.x before 2.2.9, and 3.x before 3.0.1 allows account takeover.
    55В плане
  • CVE-2019-14234An issue was discovered in Django 1.11.x before 1.11.23, 2.1.x before 2.1.11, and 2.2.x before 2.2.4.
    53В плане
  • CVE-2021-35042Django 3.1.x before 3.1.13 and 3.2.x before 3.2.5 allows QuerySet.order_by SQL injection if order_by is untrusted input from a client of a w
    52В плане
  • CVE-2023-24580An issue was discovered in the Multipart Request Parser in Django 3.2 before 3.2.18, 4.0 before 4.0.10, and 4.1 before 4.1.7.
    49В плане

Исправление

На какую версию обновиться

Версии с исправлением по данным вендора, реестров пакетов и Microsoft. Перед обновлением сверьтесь с бюллетенем вендора.

Продукт / пакетИсправленная версияИсточник
debian:python-django2:3.2.13-1 · Debian:12Реестр пакетов (OSV)
opensuse:python-Django2.0.7-150000.1.27.1 · openSUSE:Leap 15.5Реестр пакетов (OSV)
PyPI:django2.2.28Реестр пакетов (OSV)
PyPI:django3.2.13Реестр пакетов (OSV)
PyPI:django4.0.4Реестр пакетов (OSV)
red hat:automation-controller0:4.1.2-2.el8ap · Red Hat:ansible_automation_platform:2.1::el8Реестр пакетов (OSV)
red hat:automation-controller-cli0:4.1.2-2.el8ap · Red Hat:ansible_automation_platform:2.1::el8Реестр пакетов (OSV)
red hat:automation-controller-server0:4.1.2-2.el8ap · Red Hat:ansible_automation_platform:2.1::el8Реестр пакетов (OSV)
red hat:automation-controller-ui0:4.1.2-2.el8ap · Red Hat:ansible_automation_platform:2.1::el8Реестр пакетов (OSV)
red hat:automation-controller-venv-tower0:4.1.2-2.el8ap · Red Hat:ansible_automation_platform:2.1::el8Реестр пакетов (OSV)
red hat:python-django0:3.2.13-2.el8ui · Red Hat:rhui:4::el8Реестр пакетов (OSV)
red hat:python-django200:2.0.13-17.el8ost · Red Hat:openstack:16.2::el8Реестр пакетов (OSV)
red hat:python-django20-bash-completion0:2.0.13-18.el8ost · Red Hat:openstack:16.1::el8Реестр пакетов (OSV)
red hat:python-pulpcore0:3.17.6-3.el8ui · Red Hat:rhui:4::el8Реестр пакетов (OSV)
red hat:python3-django0:2.2.28-1.el7pc · Red Hat:ansible_automation_platform:4.2::el7Реестр пакетов (OSV)
red hat:python38-django0:3.2.13-1.el8pc · Red Hat:ansible_automation_platform:2.1::el8Реестр пакетов (OSV)
red hat:python38-pulpcore0:3.17.6-3.el8ui · Red Hat:rhui:4::el8Реестр пакетов (OSV)
suse:ardana-ansible8.0+git.1660773729.3789a6d-3.85.1 · SUSE:HPE Helion OpenStack 8Реестр пакетов (OSV)
suse:ardana-cobbler8.0+git.1660773402.d845a45-3.47.1 · SUSE:HPE Helion OpenStack 8Реестр пакетов (OSV)
suse:grafana6.7.4-4.23.1 · SUSE:HPE Helion OpenStack 8Реестр пакетов (OSV)
suse:openstack-heat-templates0.0.0+git.1654529662.75fa04a-3.27.1 · SUSE:HPE Helion OpenStack 8Реестр пакетов (OSV)
suse:openstack-murano4.0.2~dev3-3.12.1 · SUSE:HPE Helion OpenStack 8Реестр пакетов (OSV)
suse:openstack-murano-doc4.0.2~dev3-3.12.1 · SUSE:HPE Helion OpenStack 8Реестр пакетов (OSV)
suse:python-Django1.11.29-3.42.1 · SUSE:HPE Helion OpenStack 8Реестр пакетов (OSV)
suse:python-Django2.2.28-bp153.2.3.1 · SUSE:Package Hub 15 SP3Реестр пакетов (OSV)
suse:rabbitmq-server3.6.16-3.13.1 · SUSE:HPE Helion OpenStack 8Реестр пакетов (OSV)
suse:venv-openstack-heat9.0.8~dev22-12.45.1 · SUSE:HPE Helion OpenStack 8Реестр пакетов (OSV)
suse:venv-openstack-horizon12.0.5~dev6-14.48.1 · SUSE:OpenStack Cloud 8Реестр пакетов (OSV)
suse:venv-openstack-horizon-hpe12.0.5~dev6-14.48.1 · SUSE:HPE Helion OpenStack 8Реестр пакетов (OSV)
suse:venv-openstack-murano4.0.2~dev3-12.38.1 · SUSE:HPE Helion OpenStack 8Реестр пакетов (OSV)

Статус эксплойта

Есть proof of concept

Существует публичный PoC или сигнатура обнаружения. Знание об эксплойте доступно; не откладывайте установку исправлений.

Доказательство

  • Репозиторий PoC на GitHub ×4

Noroxi не размещает код эксплойтов и не даёт на них ссылок. Показываются имена модулей Metasploit и идентификаторы шаблонов Nuclei (имена, не код); записи Exploit-DB и репозитории PoC даются только числом.

Публичные свидетельства эксплойта
ИсточникТипДата
Репозиторий PoC на GitHubstars:22022-04-25
Репозиторий PoC на GitHubstars:242022-04-26
Репозиторий PoC на GitHubstars:02023-03-04
Репозиторий PoC на GitHubstars:12024-01-19

Контекст для исследователя

Для пентестеров и исследователей: профиль атаки, расхождение оценок, хронология, коммиты исправлений, авторы, кандидаты в варианты и цепочки, охват bug bounty. Всё выводится из имеющихся данных; без кода эксплойтов.

Хронология

От публикации до сегодня: proof of concept, модуль Metasploit, CISA KEV и запись об исправлении. Даты — как сообщают источники.

  1. Публикация
  2. Первый PoC+13 дн.
  3. Сегодня7 окт. 2026 г.+1640 дн.
EPSS за 120 дней

Ежедневная оценка FIRST EPSS; записываются только изменения от 0,01 (ступенчатый график).

Ссылки на патчи и коммиты

Коммиты, PR и diff среди источников. Отправная точка для patch-diff и поиска вариантов; это исправления, не эксплойты.

Среди источников нет ссылок на коммит или PR.

Нашедшие, сообщившие и аналитики, названные в записи CNA. Нажмите имя, чтобы увидеть другие записи исследователя.

В записи CNA нет авторов.

Кандидаты в варианты

Тот же продукт, тот же класс уязвимости, в пределах 18 месяцев. Если патч не закрыл первопричину, родственная ошибка здесь.

Ночной расчёт связей ничего не нашёл.

Кандидаты в цепочки

Обход аутентификации и уязвимость, требующая привилегий, в одном продукте и близко по времени: вместе они могут дать путь без аутентификации.

—

Охват bug bounty

Известной публичной программы нет.

Источник: bounty-targets-data (публичные списки HackerOne, Bugcrowd, Intigriti, YesWeHack).

Технические детали

Условия атаки

  • Может быть вызвана любым, у кого есть доступ через интернет.
  • Учётная запись или пароль не требуются.
  • Действия пользователя не требуются.
  • Особые условия не требуются; воспроизводится стабильно.

В случае успеха

Конфиденциальность
высокое · данные могут быть прочитаны
Целостность
высокое · данные или конфигурация могут быть изменены
Доступность
высокое · работа сервиса может быть нарушена
Вектор атаки
Сеть
Сложность атаки
Низкая
Требуемые привилегии
Не требуются
Взаимодействие с пользователем
Не требуется
Область действия
Не изменяется
Влияние на конфиденциальность
Высокое
Влияние на целостность
Высокое
Влияние на доступность
Высокое

Вектор CVSS

CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

nvd-primary

Первопричина

Текст запроса формируется конкатенацией с пользовательским вводом. СУБД не может определить, где заканчиваются данные и начинается команда.

Ошибка в коде

Весь класс CWE-89

Показательный пример этого класса уязвимостей. Это не исходный код вендора; показан ошибочный шаблон и его исправление.

Уязвимый код

ts
const owner = req.query.owner;const rows = await db.query(  "SELECT * FROM files WHERE owner = '" + owner + "'");

Исправленный код

ts
const owner = req.query.owner;const rows = await db.query(  "SELECT * FROM files WHERE owner = $1",  [owner]);

Журнал изменений

  1. Исправление✗ → ✓

Для отслеживаемых записей эти изменения приходят и как уведомления. →

Источники

Все записи