Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
sqlite-xfer-auth — SQLite 3.53.4 — высокий — локальный — остаточная привилегия — INSERT SELECT xfer пропускает чтение источника | Kitploit
Инструменты/GitHubGitHub/abraxas/sqlite-xfer-auth
Анализ уязвимостейАнализ КодаЭксплуатацияВиртуализация для безопасностиСтатьи и ИсследованияБезопасность Баз ДанныхЛаборатории и Практика
GitHubabraxas/sqlite-xfer-auth

sqlite-xfer-auth

SQLite 3.53.4 — высокий — локальный — остаточная привилегия — INSERT SELECT xfer пропускает чтение источника

Репозиторий
96 дней назадЕщё не проверено

Популярное

Смотреть все →

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

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Abraxas Labs - sqlite-xfer-auth

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  sqlite-xfer-auth

sqlite-xfer-auth

Класс: Остаточные привилегии Достижимость: Локальная

SQLite 3.53.4 (b09c88c, SOURCE_ID 2026-07-24 19:02:57 bf7c7f30031888f4e796e429ab3978879485813aaca6f641c7b33e4e09459bcc) по-прежнему использует быстрый путь xferOptimization для INSERT INTO dest SELECT * FROM src. sqlite3AuthCheck вызывается только для SQLITE_INSERT в dest. Копирование никогда не вызывает sqlite3Select или по-колоночный sqlite3AuthRead для src. SELECT * FROM src запрещён. INSERT SELECT копирует свидетель. Журнал авторизатора — INSERT:dest.

Авторизатор отключён, если его не установит встраивающее приложение. Это не RCE. DRH рассматривал Fossil d1cdb817 как функцию 3.54, а не как исправление для 3.53. 3.54.0 всё ещё черновик.

IDCVE пока нет
КлассОстаточные привилегии (копирование таблицы при запрете READ)
ДостижимостьЛокальная (встраивающее приложение sqlite3_set_authorizer)
CWECWE-863
CVSSHigh: 7.5 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
ПродуктSQLite (Hwaci)
Затронуто3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69)
Authлокальный SQL против установленного авторизатора, который DENY READ/SELECT для src и разрешает INSERT в dest
ЛицензияGNU Affero GPL v3.0
Лабораториятолько 127.0.0.1:18850

Что может сделать атакующий

Подготовить INSERT INTO dest SELECT * FROM src, когда dest совместим по схеме и INSERT разрешён. Необработанные записи B-tree покидают исходную таблицу с запретом READ и попадают в dest. Простой SELECT * FROM src даёт SQLITE_AUTH. Путь xfer не компилирует SELECT, поэтому исходный SQLITE_SELECT, табличный SQLITE_READ и по-колоночный sqlite3AuthRead никогда не срабатывают.

Требуется встраивающее приложение, установившее sqlite3_set_authorizer в качестве шлюза ACL для недоверенного SQL / колонок. В библиотеке по умолчанию этот колбэк равен NULL. Это не RCE.

Как я это нашёл

Та же охота за Crit/High в 3.53.4, что и за другими остаточными привилегиями в этом GA. Авторизатор документирован в sqlite3_set_authorizer. Авторизация INSERT — только для таблицы dest (insert.c:969). xfer выбирается до sqlite3Select() (insert.c:1020-1038). xferOptimization копирует записи. Grep по insert.c на этом пине: один sqlite3AuthCheck, ни одного sqlite3AuthRead. SQLITE_OMIT_XFER_OPT не является флагом сборки по умолчанию.

Форум 2026-05-21T03:31:22Z. Trunk d1cdb817cafd03a4 только для 3.54. DRH: новая функция, не пойдёт в branch-3.53.

Лаборатория

cd lab
./run.sh

Собирает амальгамацию 3.53.4 плюс lab/xfer_auth.c. Compose sqlite-xfer-auth. Bind 127.0.0.1:18850. Оракул — JSON от внутрипроцессного авторизатора: SELECT * FROM src запрещён; INSERT INTO dest SELECT * FROM src ok; в dest есть SQLITE-XFER-AUTH-WITNESS; действия вставки — только INSERT:dest.

SUCCESS sqlite-xfer-auth how=xfer-opt-skip-src-read select-src=denied insert-select=ok dest-has-witness=yes SQLITE-XFER-AUTH-WITNESS

Исправление

Авторизовать источник так, как это делает d1cdb817 в 3.54: если авторизатор зарегистрирован, xferOptimization должен выполнять sqlite3AuthCheck для SELECT/READ на src (или отказаться от быстрого пути и перейти к sqlite3Select). До тех пор встраивающие приложения, которые DENY READ на таблице, всё ещё должны DENY INSERT в любой совместимый dest или компилироваться с -DSQLITE_OMIT_XFER_OPT.

Ссылки

  • sqlite.org/src тег version-3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69)
  • src/insert.c sqlite3AuthCheck INSERT dest, xferOptimization до sqlite3Select
  • Форум 2026-05-21T03:31:22Z · check-in d1cdb817cafd03a4
  • sqlite3_set_authorizer
Скачать инструмент