Уязвимость вида "переполнение буфера стека" (stack overflow) в dev-версии популярного движка баз данных с открытым исходным кодом SQLite была обнаружена с помощью анализа вариантов моделью Big Sleep, которая является результатом сотрудничества между Google Project Zero и Google DeepMind.
Big Sleep - это развитие проекта Project Zero Naptime, который представляет собой фреймворк, анонсированный в июне, позволяющий LLM-специалистам автономно проводить базовые исследования уязвимостей. Фреймворк предоставляет LLM инструменты для тестирования программного обеспечения на наличие потенциальных дефектов в удобном окружении, включая браузер кода, отладчик, инструмент репортера и среду «песочницы» для запуска скриптов Python и записи результатов.
Исследователи предоставили агенту искусственного интеллекта Gemini 1.5 Pro исходную информацию о предыдущей уязвимости SQLite, обеспечив Big Sleep контекстом для поиска потенциальных аналогичных уязвимостей в новых версиях программного обеспечения. Агенту были представлены последние тексты коммитов и diff-изменения, а также репозиторий SQLite на предмет нерешенных проблем.
В итоге Big Sleep от Google обнаружил баг, связанный с неправильной работой функции «seriesBestIndex» при использовании специального значения -1 в поле iColumn. Поскольку это поле обычно неотрицательно, весь код, взаимодействующий с ним, должен быть спроектирован таким образом, чтобы правильно обрабатывать этот уникальный случай, чего функция seriesBestIndex не делает, что приводит к переполнению буфера стека.