Разработчики pgvector выпустили версию 0.8.7. Релиз закрывает уязвимость CVE-2026-103484 в механизме построения индексов IVFFlat: переполнение буфера позволяло записывать данные за пределами выделенной памяти и потенциально выполнять произвольный код.

В чем проблема

Уязвимость находится в коде построения индексов IVFFlat — одного из типов индексов, которые pgvector использует для приближенного поиска ближайших векторов. Пользователь базы данных, у которого есть права на создание IVFFlat-индекса, мог спровоцировать запись данных за пределами выделенного буфера. В худшем случае это могло привести к выполнению произвольного кода.

Таким образом, речь идет не об удаленной атаке на любой сервер с pgvector: потенциальному атакующему необходимо иметь доступ к базе и возможность создавать такие индексы.

Какие версии затронуты

Уязвимость присутствует в pgvector 0.8.6 и более ранних версиях. Исправление включено в pgvector 0.8.7. Разработчики рекомендуют обновиться всем, кто использует затронутые версии.

Проверить установленную версию расширения можно запросом:

SELECT extversion
FROM pg_extension
WHERE extname = 'vector';

После установки новой версии pgvector расширение в нужной базе можно обновить командой:

ALTER EXTENSION vector UPDATE;

Что такое pgvector

pgvector — расширение PostgreSQL для хранения векторов и поиска по векторному сходству. Его используют, в частности, в системах семантического поиска, рекомендациях и приложениях на базе языковых моделей.

Расширение поддерживает как точный поиск ближайших соседей, так и приближенный — с индексами HNSW и IVFFlat. В IVFFlat векторы разбиваются на группы, после чего при поиске проверяется только часть наиболее подходящих групп. Такой индекс обычно быстрее строится и требует меньше памяти, чем HNSW, хотя отличается по соотношению скорости поиска и полноты результатов.

Для пользователей pgvector основной вывод из релиза 0.8.7 простой: если в инфраструктуре установлена версия 0.8.6 или ниже, ее стоит обновить.

Расписание бесплатных IT-вебинаров на октябрь уже доступно в календаре.