Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
sqlite-xfer-auth — SQLite 3.53.4 - Alta - Local - Privilégio remanescente - INSERT SELECT xfer ignora leitura da origem | Kitploit
Ferramentas/GitHubGitHub/abraxas/sqlite-xfer-auth
Análise de VulnerabilidadesAnálise de CódigoExploraçãoVirtualização para SegurançaPapers e PesquisaSegurança de Banco de DadosLabs e Prática
GitHubabraxas/sqlite-xfer-auth

sqlite-xfer-auth

SQLite 3.53.4 - Alta - Local - Privilégio remanescente - INSERT SELECT xfer ignora leitura da origem

Ver Repositório
9há 6 diasAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Abraxas Labs - sqlite-xfer-auth

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

sqlite-xfer-auth

Classe: Privilégio remanescente Alcance: Local

SQLite 3.53.4 (b09c88c, SOURCE_ID 2026-07-24 19:02:57 bf7c7f30031888f4e796e429ab3978879485813aaca6f641c7b33e4e09459bcc) ainda usa o caminho rápido xferOptimization para INSERT INTO dest SELECT * FROM src. sqlite3AuthCheck é SQLITE_INSERT apenas em dest. A cópia nunca chama sqlite3Select nem sqlite3AuthRead por coluna em src. SELECT * FROM src é negado. O INSERT SELECT copia a testemunha. O log do autorizador é INSERT:dest.

O autorizador fica desligado a menos que o embedder instale um. Não é RCE. DRH tratou o Fossil d1cdb817 como recurso da 3.54, não como correção da 3.53. A 3.54.0 ainda é rascunho.

IDainda sem CVE
ClassePrivilégio remanescente (cópia de tabela com READ negado)
AlcanceLocal (embedder sqlite3_set_authorizer)
CWECWE-863
CVSSAlto: 7.5 CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
ProdutoSQLite (Hwaci)
Afetado3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69)
AuthSQL local contra um autorizador instalado que NEGA READ/SELECT em src e permite INSERT em dest
LicençaGNU Affero GPL v3.0
Labsomente 127.0.0.1:18850

O que um atacante pode fazer

Preparar INSERT INTO dest SELECT * FROM src quando dest é compatível com o esquema e INSERT é permitido. Registros brutos de B-tree saem de uma tabela de origem com READ negado e chegam a dest. SELECT * FROM src puro é SQLITE_AUTH. O caminho xfer não compila o SELECT, então SQLITE_SELECT da origem, SQLITE_READ em nível de tabela e sqlite3AuthRead por coluna nunca disparam.

Requer um embedder que tenha instalado sqlite3_set_authorizer como o portão de ACL de SQL não confiável / coluna. A biblioteca padrão tem esse callback NULL. Não é RCE.

Como eu encontrei

Mesma caçada Crit/High da 3.53.4 que os outros remanescentes nesta GA. O autorizador está documentado em sqlite3_set_authorizer. A auth de INSERT é apenas da tabela dest (insert.c:969). O xfer é tomado antes de sqlite3Select() (insert.c:1020-1038). xferOptimization copia registros. Grep de insert.c neste pin: um sqlite3AuthCheck, nenhum sqlite3AuthRead. SQLITE_OMIT_XFER_OPT não é uma flag de build padrão.

Fórum 2026-05-21T03:31:22Z. O trunk d1cdb817cafd03a4 é apenas da 3.54. DRH: novo recurso, não vai para a branch-3.53.

Lab

cd lab
./run.sh

Compila a amalgamation 3.53.4 mais lab/xfer_auth.c. Compose sqlite-xfer-auth. Bind 127.0.0.1:18850. O oráculo é JSON do autorizador em processo: SELECT * FROM src negado; INSERT INTO dest SELECT * FROM src ok; dest tem SQLITE-XFER-AUTH-WITNESS; as ações de insert são apenas 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

A correção

Autorizar a origem como a 3.54 d1cdb817 faz: se um autorizador estiver registrado, xferOptimization deve fazer sqlite3AuthCheck de SELECT/READ em src (ou recusar o caminho rápido e cair para sqlite3Select). Até então, embedders que NEGAM READ em uma tabela ainda precisam NEGAR INSERT em qualquer dest compatível, ou compilar com -DSQLITE_OMIT_XFER_OPT.

Referências

  • sqlite.org/src tag version-3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69)
  • src/insert.c sqlite3AuthCheck INSERT dest, xferOptimization antes de sqlite3Select
  • Fórum 2026-05-21T03:31:22Z · check-in d1cdb817cafd03a4
  • sqlite3_set_authorizer
Baixar ferramenta