Разработчики pgvector выпустили версию 0.8.7. Релиз закрывает уязвимость CVE-2026-103484 в механизме построения индексов IVFFlat: переполнение буфера позволяло записывать данные за пределами выделенной памяти и потенциально выполнять произвольный код.
В чем проблема
Уязвимость находится в коде построения индексов IVFFlat — одного из типов индексов, которые pgvector использует для приближенного поиска ближайших векторов. Пользователь базы данных, у которого есть права на создание IVFFlat-индекса, мог спровоцировать запись данных за пределами выделенного буфера. В худшем случае это могло привести к выполнению произвольного кода.
Таким образом, речь идет не об удаленной атаке на любой сервер с pgvector: потенциальному атакующему необходимо иметь доступ к базе и возможность создавать такие индексы.
Какие версии затронуты
Уязвимость присутствует в pgvector 0.8.6 и более ранних версиях. Исправление включено в pgvector 0.8.7. Разработчики рекомендуют обновиться всем, кто использует затронутые версии.
Проверить установленную версию расширения можно запросом:
SELECT extversionFROM pg_extensionWHERE extname = 'vector';
После установки новой версии pgvector расширение в нужной базе можно обновить командой:
ALTER EXTENSION vector UPDATE;
Что такое pgvector
pgvector — расширение PostgreSQL для хранения векторов и поиска по векторному сходству. Его используют, в частности, в системах семантического поиска, рекомендациях и приложениях на базе языковых моделей.
Расширение поддерживает как точный поиск ближайших соседей, так и приближенный — с индексами HNSW и IVFFlat. В IVFFlat векторы разбиваются на группы, после чего при поиске проверяется только часть наиболее подходящих групп. Такой индекс обычно быстрее строится и требует меньше памяти, чем HNSW, хотя отличается по соотношению скорости поиска и полноты результатов.
Для пользователей pgvector основной вывод из релиза 0.8.7 простой: если в инфраструктуре установлена версия 0.8.6 или ниже, ее стоит обновить.
Расписание бесплатных IT-вебинаров на октябрь уже доступно в календаре.
Источник: habr.com