Обработчик Apply pgologic не проверяет в достаточной степени длину определенных полей во входящих сообщениях протокола репликации перед их копированием, что приводит к чтению за пределами допустимого диапазона. Сторона, выступающая в качестве издателя подписки, например конечная точка, не поддерживающая PostgreSQL, которая использует протокол pgologic репликации, может возвращать созданные сообщения, которые заставляют обработчик Apply подписчика читать за пределами выделенного буфера, раскрывая память соседнего процесса или приводя к сбою обработчика. Чтобы воспользоваться этой проблемой, злоумышленник должен иметь возможность направить подписку на конечную точку, которую он контролирует.
В установках по умолчанию для этого требуются привилегии, обычно зарезервированные для суперпользователя, поэтому эта проблема наиболее актуальна для управляемых развертываний, где возможность создания подписок делегирована ролям, не являющимся суперпользователями.
Показать оригинальное описание (EN)
pglogical's apply worker does not sufficiently validate the length of certain fields in incoming replication protocol messages before copying them, resulting in an out-of-bounds read. A party acting as the publisher for a subscription, for example a non-PostgreSQL endpoint that speaks the pglogical replication protocol, can return crafted messages that cause the subscriber's apply worker to read beyond the bounds of an allocated buffer, disclosing adjacent process memory or crashing the worker. To exploit the issue an attacker must be able to direct a subscription at an endpoint they control. In default installations this requires privileges normally reserved for a superuser, so the issue is most relevant to managed deployments where the ability to create subscriptions has been delegated to non-superuser roles.
Характеристики атаки
Последствия
Строка CVSS v4.0
Тип уязвимости (CWE)
Уязвимые продукты 1
| Конфигурация | От (включительно) | До (исключительно) |
|---|---|---|
|
Enterprisedb Pglogical
cpe:2.3:a:enterprisedb:pglogical:*:*:*:*:*:postgresql:*:*
|
2.0.0
|
2.4.8
|