Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
sqlite-fts5-securedel — SQLite 3.53.4 - Élevé - Local - Crash - Dépassement de PutVarint dans le footer secure-delete de FTS5 | Kitploit
Outils/GitHubGitHub/abraxas/sqlite-fts5-securedel
Analyse StatiqueCriminalistique MémoireAnalyse des VulnérabilitésExploitationFuzzingAnalyse de BinairesArticles et RechercheSécurité des Bases de Données
GitHubabraxas/sqlite-fts5-securedel

sqlite-fts5-securedel

SQLite 3.53.4 - Élevé - Local - Crash - Dépassement de PutVarint dans le footer secure-delete de FTS5

Voir le dépôt
11il y a 5 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Abraxas Labs - sqlite-fts5-securedel

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

sqlite-fts5-securedel

Classe : Crash Portée : Locale

SQLite 3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69) - Hwaci

fts5DoSecureDelete reconstruit un footer de feuille FTS5 avec sqlite3Fts5PutVarint après nPg = iPgIdx. Les décalages de clés décodés depuis le footer ne sont pas bornés par rapport au blob d'origine, donc le curseur de PutVarint dépasse nn + FTS5_DATA_PADDING (20). Typique avec SQLITE_ENABLE_FTS5. La base de données d'attaque utilisait déjà secure-delete.

Il s'agit d'un reliquat du trunk Fossil ultérieur 9cd4f9e920 / Git d9de6eedbe91 / branch-3.53 34171bee08 (2026-08-11, YEONBA). Ce check-in est postérieur à cette GA. Ce n'est pas CVE-2026-11824 : fts5LeafRead rejette déjà szLeaf<4 sur ce pin.

IDpas encore de CVE
ClasseCrash (écriture ASan de taille 1 ; RCE non démontré)
PortéeLocale (ouvrir une base de données FTS5 forgée, puis DELETE/flush)
CWECWE-787
CVSSÉlevé : 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
ProduitSQLite (miroir GitHub sqlite/sqlite)
Affecté3.53.4 SOURCE_ID 2026-07-24 19:02:57 bf7c7f30031888f4e796e429ab3978879485813aaca6f641c7b33e4e09459bcc
Authaucune (fichier d'index non fiable)
LicenceGNU Affero GPL v3.0
Lab127.0.0.1:18860 uniquement. Écriture heap ASan. Pas de payload RCE.

Ce qu'un attaquant peut faire

Ouvrir une base de données FTS5 forgée qui utilisait déjà secure-delete, puis DELETE (ou toute écriture qui déclenche un flush secure-delete) afin que fts5DoSecureDelete écrive des varints de footer au-delà de Fts5Data. Crash / écriture heap ASan de taille 1. RCE non démontré. Pas CVE-2026-11824.

MATCH seul n'est pas ce sink. Le déclencheur est DELETE/flush. Le fichier forgé n'a pas besoin que SQLITE_DBCONFIG_DEFENSIVE soit désactivé.

Comment je l'ai trouvé

Vingt chasses au code source de SQLite 3.53.4 après d'autres pins de bases de données et de serveurs HTTP. CVE-2026-11822 / CVE-2026-11824 est fermé sur cet arbre (fts5LeafRead szLeaf<4). La borne du trunk ultérieur de YEONBA ne l'est pas. Le fichier fts5corruptB.test de 3.53.4 se termine toujours au test 3.2 ; le test 4.0 du trunk est le hexdb plus DELETE FROM t WHERE rowid = 1.

iPgIdx -= nShift;
nPg = iPgIdx;
fts5PutU16(&aPg[2], iPgIdx);

for(iIdx=0; iIdx<nIdx; /* no-op */){
  u32 iVal = 0;
  iIdx += fts5GetVarint32(&aIdx[iIdx], iVal);
  iKeyIn += iVal;
  if( iKeyIn!=iDelKeyOff ){
    int iKeyOut = (iKeyIn - (iKeyIn>iOff ? nShift : 0));
    nPg += sqlite3Fts5PutVarint(&aPg[nPg], iKeyOut - iPrevKeyOut);
    iPrevKeyOut = iKeyOut;
  }
}

ext/fts5/fts5_index.c:5514-5544. iKeyIn est un int 32 bits. Le trunk ultérieur conserve le nPg d'origine, utilise i64 iKeyIn, et rejette iKeyIn>nPg avant PutVarint.

Fausses pistes : traiter CVE-2026-11824 comme ce bug ; MATCH au lieu de DELETE ; un plant CREATE/INSERT en direct qui gardait szLeaf dans les bornes et ne débordait pas ; qualifier de RCE la chaîne WAL-plus-FTS5 de Winter sans payload.

Lab

cd lab
./run.sh

Amalgamation ASan issue du zip officiel sqlite-src-3530400, -DSQLITE_ENABLE_FTS5. Le hexdb lab/yeonba-fts5corruptB-4.hexdb (trunk fts5corruptB.test 4.0) est requis. Bind loopback 127.0.0.1:18860. Projet Compose sqlite-fts5-securedel.

SUCCESS sqlite-fts5-securedel how=asan-heap-buffer-overflow-write-1-fts5DoSecureDelete db=yeonba-hexdb bytes=5120 SQLITE-FTS5-SECUREDEL-WITNESS

Frames ASan : fts5PutVarint64 -> sqlite3Fts5PutVarint -> fts5DoSecureDelete / fts5FlushSecureDelete.

Le correctif

Conserver le nPg d'origine. Élargir iKeyIn en i64. Rejeter iKeyIn>nPg avant sqlite3Fts5PutVarint. C'est Fossil 9cd4f9e920 / branch-3.53 34171bee08. Le cherry-picker sur 3.53.

Références

  • https://sqlite.org/src tag version-3.53.4 Git b09c88c14082339b66c7b7158d609a771e64ca69
  • ext/fts5/fts5_index.c fts5DoSecureDelete, fts5FlushSecureDelete, fts5LeafRead
  • ext/fts5/fts5_varint.c sqlite3Fts5PutVarint
  • Correctif trunk Fossil 9cd4f9e920 / Git d9de6eedbe91 / branch-3.53 34171bee08 (2026-08-11, YEONBA)
  • CVE-2026-11824 est le parent fermé szLeaf<4, pas ce reliquat
Télécharger l’outil