Перейти к содержимому
Noroxi
CVE-2024-1597· NVD / CVE Program· CNA PostgreSQL

pgjdbc SQL Injection via line comment generation

pgjdbc, the PostgreSQL JDBC Driver, allows attacker to inject SQL if using PreferQueryMode=SIMPLE. Note this is not the default. In the default mode there is no vulnerability. A placeholder for a numeric value must be immediately preceded by a minus. There must be a second placeholder for a string value after the first placeholder; both must be on the same line. By constructing a matching string payload, the attacker can inject SQL to alter the query,bypassing the protections that parameterized queries bring against SQL Injection attacks. Versions before 42.7.2, 42.6.1, 42.5.5, 42.4.4, 42.3.9, and 42.2.28 are affected.

КритическаяCVSS 9.8 · v3.1—Эксплойта нет Есть исправление
Опубликовано
19 февр. 2024 г.
Обновлено
17 июн. 2026 г.
EPSS
4,8 % · 92-й процентиль
Следить за этой CVE

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

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

JSON

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

40

В плане

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

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

Решение CISA SSVC

Эксплуатация
proof of concept
Автоматизируемо
да
Техническое влияние
полное

Vulnrichment: входные данные дерева решений CISA.

Оценка CNA и NVD

NVD
9,8
CNA · PostgreSQL
10,0
разница 0,2 балла

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

Оценка присваивающего органа и независимая оценка NVD. Разрыв означает, что критичность спорна.

Анализ Noroxi

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

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

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

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

ВендорПродукт
postgresqlpostgresql jdbc driver
fedoraprojectfedora

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

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

  • fedoraproject fedora40
  • postgresql postgresql jdbc driver42.3.0 и новее · до 42.3.9
  • postgresql postgresql jdbc driver42.4.0 и новее · до 42.4.4
  • postgresql postgresql jdbc driverдо 42.2.28
  • postgresql postgresql jdbc driver42.6.0 и новее · до 42.6.1
  • postgresql postgresql jdbc driver42.7.0 и новее · до 42.7.2
  • postgresql postgresql jdbc driver42.5.0 и новее · до 42.5.5

Версии, заявленные вендором

Диапазоны затронутых версий, заявленные назначающей организацией (PostgreSQL). Не зависят от анализа CPE в NVD и обычно опережают его.

  • pgjdbc pgjdbc

    • < 42.7.2, < 42.6.1, < 42.5.5, < 42.4.4, < 42.3.9, < 42.2.28затронута

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

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

ЭкосистемаПакетЗатронутый диапазонИсправление
AlmaLinux:8postgresql-jdbcдо 42.2.14-3.el8_942.2.14-3.el8_9
AlmaLinux:8postgresql-jdbc-javadocдо 42.2.14-3.el8_942.2.14-3.el8_9
AlmaLinux:9postgresql-jdbcдо 42.2.28-1.el9_342.2.28-1.el9_3
Debian:10libpgjavaдо 42.2.5-2+deb10u442.2.5-2+deb10u4
Debian:11libpgjavaдо 42.2.15-1+deb11u242.2.15-1+deb11u2
Debian:12libpgjavaдо 42.5.5-0+deb12u142.5.5-0+deb12u1
Debian:13libpgjavaдо 42.7.2-142.7.2-1
Mavenorg.postgresql:postgresqlс 42.3.0 · до 42.3.942.3.9
Mavenorg.postgresql:postgresqlс 42.4.0 · до 42.4.442.4.4
Mavenorg.postgresql:postgresqlс 42.5.0 · до 42.5.542.5.5
Mavenorg.postgresql:postgresqlс 42.6.0 · до 42.6.142.6.1
Mavenorg.postgresql:postgresqlс 42.7.0 · до 42.7.242.7.2
Mavenorg.postgresql:postgresqlдо 42.2.2842.2.28
Red Hat:enterprise_linux:8::appstreampostgresql-jdbcдо 0:42.2.14-3.el8_90:42.2.14-3.el8_9
Red Hat:enterprise_linux:8::appstreampostgresql-jdbc-javadocдо 0:42.2.14-3.el8_90:42.2.14-3.el8_9
Red Hat:enterprise_linux:9::appstreampostgresql-jdbcдо 0:42.2.28-1.el9_30:42.2.28-1.el9_3
Red Hat:rhel_aus:8.2::appstreampostgresql-jdbcдо 0:42.2.3-5.el8_20:42.2.3-5.el8_2
Red Hat:rhel_aus:8.2::appstreampostgresql-jdbc-javadocдо 0:42.2.3-5.el8_20:42.2.3-5.el8_2
Red Hat:rhel_aus:8.4::appstreampostgresql-jdbcдо 0:42.2.3-7.el8_40:42.2.3-7.el8_4
Red Hat:rhel_aus:8.4::appstreampostgresql-jdbc-javadocдо 0:42.2.3-7.el8_40:42.2.3-7.el8_4
Red Hat:rhel_aus:8.6::appstreampostgresql-jdbcдо 0:42.2.3-5.el8_60:42.2.3-5.el8_6
Red Hat:rhel_aus:8.6::appstreampostgresql-jdbc-javadocдо 0:42.2.3-5.el8_60:42.2.3-5.el8_6
Red Hat:rhel_eus:8.8::appstreampostgresql-jdbcдо 0:42.2.14-5.el8_80:42.2.14-5.el8_8
Red Hat:rhel_eus:8.8::appstreampostgresql-jdbc-javadocдо 0:42.2.14-5.el8_80:42.2.14-5.el8_8

+8

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

postgresql: все записи

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

  • CVE-2022-26520In pgjdbc before 42.3.3, an attacker (who controls the jdbc URL or properties) can call java.util.logging.FileHandler to write to arbitrary
    40В плане
  • CVE-2022-21724Unchecked Class Instantiation when providing Plugin Classes
    40В плане
  • CVE-2022-31197SQL Injection in ResultSet.refreshRow() with malicious column names in pgjdbc
    33Наблюдать
  • CVE-2018-10936A weakness was found in postgresql-jdbc before version 42.2.5.
    33Наблюдать
  • CVE-2026-54291Silent channel-binding authentication downgrade via unsupported certificate algorithms
    32Наблюдать
  • CVE-2026-42198pgjdbc: Unbounded PBKDF2 iterations in SCRAM authentication allows CPU exhaustion DoS
    31Наблюдать

Исправление

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

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

Продукт / пакетИсправленная версияИсточник
almalinux:postgresql-jdbc42.2.14-3.el8_9 · AlmaLinux:8Реестр пакетов (OSV)
almalinux:postgresql-jdbc-javadoc42.2.14-3.el8_9 · AlmaLinux:8Реестр пакетов (OSV)
debian:libpgjava42.5.5-0+deb12u1 · Debian:12Реестр пакетов (OSV)
Maven:org.postgresql:postgresql42.2.28Реестр пакетов (OSV)
Maven:org.postgresql:postgresql42.3.9Реестр пакетов (OSV)
Maven:org.postgresql:postgresql42.4.4Реестр пакетов (OSV)
Maven:org.postgresql:postgresql42.5.5Реестр пакетов (OSV)
Maven:org.postgresql:postgresql42.6.1Реестр пакетов (OSV)
Maven:org.postgresql:postgresql42.7.2Реестр пакетов (OSV)
opensuse:postgresql-jdbc42.2.25-150400.3.12.1 · openSUSE:Leap 15.5Реестр пакетов (OSV)
red hat:postgresql-jdbc0:42.2.14-3.el8_9 · Red Hat:enterprise_linux:8::appstreamРеестр пакетов (OSV)
red hat:postgresql-jdbc-javadoc0:42.2.14-3.el8_9 · Red Hat:enterprise_linux:8::appstreamРеестр пакетов (OSV)
rocky linux:postgresql-jdbc0:42.2.14-3.el8_9 · Rocky Linux:8Реестр пакетов (OSV)
suse:postgresql-jdbc42.2.25-150300.3.14.1 · SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSSРеестр пакетов (OSV)
suse:postgresql-jdbc42.2.25-150400.3.12.1 · SUSE:Linux Enterprise Module for Server Applications 15 SP5Реестр пакетов (OSV)

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

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

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

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

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

Хронология

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

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

EPSS за 120 дней

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

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

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

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

Нашедшие, сообщившие и аналитики, названные в записи 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. Исправление✗ → ✓

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

Источники

Все записи