Уязвимость в PostgreSQL, позволяющая выполнить код с правами рабочего процесса

Сформированы корректирующие обновления для всех поддерживаемых веток PostgreSQL 17.1, 16.5, 15.9, 14.14, 13.17 и 12.21, в которых исправлены 35 ошибок и устранены 3 уязвимости - одна опасная и две неопасных. Также объявлено о прекращении поддержки ветки PostgreSQL 12, обновления для которой больше формироваться не будут.

Опасная уязвимость (CVE-2024-10979), который присвоен уровень опасности 8.8 из 10, позволяет локальному пользователю СУБД, обладающему правами на создание функций PL/Perl, добиться выполнения кода с правами пользователя, под которым работает СУБД. Уязвимость вызвана тем, что в функциях PL/Perl можно изменить переменные окружения рабочего процесса, включая переменную PATH, определяющую пути к исполняемым файлам, и специфичные для PostgreSQL переменные окружения. Отмечается, что для совершения атаки достаточно доступа к СУБД и не требуется наличие учётной записи в системе.

   CREATE OR REPLACE FUNCTION plperl_set_env_var()
   RETURNS void AS
   $$
    $ENV{'ENV_VAR'} = 'testval';
   $$ LANGUAGE plperl;

   SELECT plperl_set_env_var();


Источник: https://www.opennet.ru/opennews/art.shtml?num=62238