SQLite 3.53.4 исправляет ошибки в индексах, журналах и расширениях

24 июля 2026 года команда SQLite выпустила версию 3.53.4 с исправлениями ошибок, накопившихся в ветке 3.53. Релиз затрагивает индексы выражений, аварийное восстановление, FTS5, JSONB, RBU, командную оболочку и sqlite3_rsync. Владельцы приложений со встроенной SQLite получают более устойчивую работу с повреждёнными файлами и редкими граничными сценариями.

SQLite 3.53.4
SQLite 3.53.4

SQLite 3.53.4 закрывает накопившиеся ошибки ветки 3.53

Официальное описание SQLite 3.53.4 занимает всего один пункт: разработчики исправили проблемы, обнаруженные после версий 3.53.0, 3.53.1, 3.53.2 и 3.53.3. Команда отдельно указала, что значительная часть сообщений об ошибках пришла от ИИ-систем.

Короткая формулировка скрывает большой объём технической работы. В истории ветки 3.53 между тегами 3.53.0 и 3.53.4 числится 168 изменений. Финальный патч собрал исправления, добавленные после выхода SQLite 3.53.3 от 26 июня.

SQLite 3.53.4 сохраняет прежний синтаксис SQL и формат файла базы данных. Изменения сосредоточены на корректности вычислений, восстановлении после сбоев и защите кода, который разбирает повреждённые или специально сформированные данные.

Индексы выражений и аварийное восстановление получили точечные исправления

В день релиза разработчики исправили взаимодействие индексов по выражениям, подтипов значений и унарного оператора +. Индекс по выражению хранит результат вычисления, например lower(email) или арифметическую формулу, поэтому ошибка в сопоставлении выражений способна повлиять на выбор индекса и результат выполнения запроса.

Ещё одна правка касается hot journal — журнала отката, оставшегося после аварийного завершения процесса или отключения питания. SQLite использует такой файл, чтобы вернуть базу в согласованное состояние при следующем открытии.

Разработчики обнаружили редкий случай с повреждённой записью super-journal. Поля сигнатуры и длины оставались корректными, а имя связанного журнала и контрольная сумма содержали нули. SQLite 3.53.4 выполняет откат и в этой ситуации. Этот механизм нужен приложениям, которые работают с несколькими подключёнными базами через ATTACH и могут завершиться во время общей транзакции.

FTS5, JSONB и RBU стали устойчивее к повреждённым данным

Заметная часть изменений укрепляет обработку некорректных входных данных. Такие ошибки редко проявляются в обычной базе, созданной самим приложением. Они становятся реальными при повреждении накопителя, неполной записи файла, импорте данных из внешнего источника или разборе базы, подготовленной для тестирования устойчивости.

В ветке 3.53 исправлены следующие сценарии:

  • FTS5 проверяет размер записей перед чтением поля leaf-size и корректнее обрабатывает неверные номера фраз;
  • JSONB ограничивает позицию, возвращаемую внутренней функцией обхода, и безопаснее разбирает повреждённые значения FLOAT5;
  • RBU получил исправления чтения за границами буфера и обработки повреждённых полей rbu_control;
  • модуль session предотвращает лишнее чтение памяти при перебазировании изменений с несовпадающим числом столбцов;
  • расширение normalize избегает однобайтового чтения за границей буфера на некорректном вводе;
  • командная оболочка для Windows корректно освобождает память при использовании параметра -A.

В описаниях этих правок встречаются OOB read, buffer overread и integer overflow. OOB read означает попытку прочитать данные за пределами выделенного участка памяти. Подобный дефект может завершить процесс, вызвать непредсказуемое поведение или стать частью более сложной атаки. Официальная страница релиза не перечисляет CVE и не помечает SQLite 3.53.4 как отдельное обновление безопасности.

Anthropic помогла обнаружить три дефекта в sqlite3_rsync

Запись от 9 июля прямо называет Anthropic источником трёх найденных дефектов в sqlite3_rsync. Эта утилита переносит содержимое SQLite-базы на другую систему, сравнивая страницы исходного и целевого файлов.

Публичные материалы не называют модель, промпты или метод проверки, поэтому вклад автоматического анализа нельзя оценить по числу тестов. История изменений фиксирует сам результат: три дефекта получили отдельное исправление, а общий релиз описан как набор проблем, найденных преимущественно ИИ-системами.

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

Новая сборка доступна для Linux, Windows, macOS, Android и WebAssembly

Страница загрузки SQLite уже предлагает исходный архив 3.53.4, amalgamation-сборку, пакет для Android, инструменты командной строки для Linux, Windows и macOS, DLL для Windows и комплект WebAssembly с JavaScript API. Для каждого файла опубликована контрольная сумма SHA3-256.

Проверить версию командной оболочки можно одной командой:

sqlite3 --version

В приложении через SQL доступна функция:

SELECT sqlite_version();

Способ обновления зависит от поставки SQLite. Проекты со своей сборкой библиотеки могут перейти на 3.53.4 напрямую. Приложения, использующие системный пакет, Android Framework, браузерный движок или библиотеку внутри другого продукта, получат исправления после обновления соответствующей платформы.

Обновление SQLite до версии 3.53.4 повышает устойчивость ветки 3.53 перед предстоящим крупным релизом

SQLite 3.53.4 сосредоточена на редких ошибках в механизмах, которые работают близко к формату данных и управлению памятью. Поведение стандартных запросов сохраняется, а приложения получают дополнительные проверки при сбоях, повреждённых индексах, нестандартных расширениях и аварийном восстановлении.

Разработчикам собственных сборок стоит проверить 3.53.4 в тестах резервного копирования, FTS5, JSONB, RBU и ATTACH. Пользователям готовых программ достаточно отслеживать версии самого приложения или операционной системы, поскольку отдельная установка sqlite3 обычно не заменяет библиотеку, встроенную внутрь программы.

При использовании материалов сайта необходимо указывать ссылку на TGLand.ru. Если вы копируете фрагменты текста в интернете, прямая гиперссылка, доступная для индексации поисковыми системами, должна быть размещена в начале материала.

Вам также может понравиться