Уязвимость в терминале PostgreSQL позволяет удаленно выполнять код

Недавно исследователи в области кибербезопасности обнаружили серьезную уязвимость SQL-инъекции (SQL Injection) в интерактивном терминале PostgreSQL – psql. Данная уязвимость, обозначенная как CVE-2025-1094, позволяет злоумышленникам удаленно выполнять произвольный код.

Эта уязвимость была выявлена в ходе исследования CVE-2024-12356 – уязвимости удаленного выполнения кода (RCE) в продуктах BeyondTrust Privileged Remote Access (PRA) и Remote Support (RS). Исследователи установили, что эти две уязвимости взаимосвязаны: для успешной эксплуатации CVE-2024-12356 использование CVE-2025-1094 было обязательным.

Этот случай показывает, что уязвимости в разных системах могут быть связаны между собой, и одна из них может служить «мостом» для эксплуатации другой.

🔍 Технические детали уязвимости

Уязвимость CVE-2025-1094 связана с ошибочным предположением разработчиков PostgreSQL о безопасности экранированных (escaped) данных. Они считали, что корректно отформатированный ввод не может привести к SQL-инъекции.

Однако исследования показали, что если psql обрабатывает неправильно закодированные символы UTF-8, злоумышленники могут использовать этот недостаток для внедрения вредоносных SQL-запросов.

Кроме того, злоумышленники могут использовать мета-команды psql (!), которые позволяют выполнять команды операционной системы из терминала. Это делает возможным полный захват системы через PostgreSQL.

Уязвимость получила оценку 8.1 по системе CVSS 3.1, что указывает на высокий уровень угрозы.

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

Уязвимость CVE-2025-1094 затрагивает следующие версии PostgreSQL:

🚨 PostgreSQL 17.2 и более ранние версии
🚨 PostgreSQL 16.6 и более ранние версии
🚨 PostgreSQL 15.10 и более ранние версии
🚨 PostgreSQL 14.15 и более ранние версии
🚨 PostgreSQL 13.18 и более ранние версии

Злоумышленники могут преждевременно завершать SQL-запросы и вставлять дополнительные вредоносные команды, что приводит к серьезным угрозам:

Несанкционированный доступ к базе данных – атакующие могут получить полный контроль над данными.
Удаленное выполнение кода (RCE) – через мета-команды psql можно выполнять команды на уровне системы.
Полный захват системы – если атакующий выполнит команды с высокими привилегиями, он сможет полностью управлять сервером.

Проблема с исправлениями безопасности

Хотя BeyondTrust выпустила исправление CVE-2024-12356 в декабре 2024 года, оно не устранило CVE-2025-1094. Это оставило уязвимость в статусе «zero-day» до момента ее раскрытия компанией Rapid7.

🛠 Исправления и обновления

Для устранения уязвимости PostgreSQL выпустила обновленные версии:

🔹 PostgreSQL 17.3
🔹 PostgreSQL 16.7
🔹 PostgreSQL 15.11
🔹 PostgreSQL 14.16
🔹 PostgreSQL 13.19

🔐 Рекомендации по защите

Немедленно обновите PostgreSQL – загрузите последнюю версию с официального сайта или через систему обновлений.
Ограничьте административные права – предоставляйте доступ только необходимым пользователям.
Используйте защиту от SQL-инъекций – настройте WAF (Web Application Firewall) или специальные инструменты анализа SQL-запросов.
Отключите мета-команды в psql, если они не требуются – это можно сделать в файле .psqlrc.
Настройте мониторинг системы – регулярно проверяйте логи на предмет подозрительных команд.

🚨 Выводы

Уязвимость CVE-2025-1094 представляет серьезную угрозу, поскольку позволяет злоумышленникам удаленно выполнять произвольный код. Она напрямую связана с CVE-2024-12356, эксплуатация которой невозможна без PostgreSQL.

Администраторам и пользователям PostgreSQL необходимо немедленно обновить свои системы, усилить защиту от SQL-инъекций и ограничить использование мета-команд.

Кибератаки становятся все более сложными, а уязвимости в популярных приложениях могут привести к масштабным взломам. Регулярное обновление программного обеспечения и усиление мер безопасности – ключевые шаги для защиты ваших данных! 🔒

Перейти к содержимому