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

A SQL injection issue was discovered in QuerySet.explain() in Django 2.2 before 2.2.28, 3.2 before 3.2.13, and 4.0 before 4.0.4.

A SQL injection issue was discovered in QuerySet.explain() in Django 2.2 before 2.2.28, 3.2 before 3.2.13, and 4.0 before 4.0.4. This occurs by passing a crafted dictionary (with dictionary expansion) as the **options argument, and placing the injection payload in an option name.

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

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

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

JSON

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

40

В плане

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

CVSS
39 / 40 · 9.8 / 10
CISA KEV
0 / 30 · Нет в списке
EPSS
1 / 30 · 2,9 %

Анализ Noroxi

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

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

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

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

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

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

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

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

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

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

ЭкосистемаПакетЗатронутый диапазонИсправление
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
openSUSE:Tumbleweedpython-Djangoдо 5.1.5-1.15.1.5-1.1
openSUSE:Tumbleweedpython-Djangoдо 4.0.4-1.14.0.4-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:rhui:4::el8python-djangoдо 0:3.2.13-2.el8ui0:3.2.13-2.el8ui
Red Hat:rhui:4::el8python-pulpcoreдо 0:3.17.6-3.el8ui0:3.17.6-3.el8ui
Red Hat:rhui:4::el8python38-pulpcoreдо 0:3.17.6-3.el8ui0:3.17.6-3.el8ui
SUSE:Package Hub 15 SP3python-Djangoдо 2.2.28-bp153.2.3.12.2.28-bp153.2.3.1
SUSE:Package Hub 15 SP3python-Djangoдо 2.2.28-bp153.2.3.12.2.28-bp153.2.3.1

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

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.2.28-bp153.2.3.1 · openSUSE:Leap 15.3Реестр пакетов (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-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:python-Django2.2.28-bp153.2.3.1 · SUSE:Package Hub 15 SP3Реестр пакетов (OSV)

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

Публичный эксплойт неизвестен

Публичный эксплойт пока не обнаружен. Это не значит, что вы в безопасности, лишь что порог чуть выше.

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

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

Хронология

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

Кроме публикации датированных событий нет.

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. Исправление✗ → ✓

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

Источники

Все записи