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
Outils/GitHubGitHub/abraxas/sqlite-session-ncol
Criminalistique MémoireAnalyse des VulnérabilitésExploitationFuzzingAnalyse de BinairesArticles et RechercheSécurité des Bases de Données
GitHubabraxas/sqlite-session-ncol

sqlite-session-ncol

SQLite 3.53.4 - Élevé - Local - écriture hors limites dans le tas - croissance de nCol avec des noms identiques dans les changesets de session

Voir le dépôt
7il y a 6 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-session-ncol

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

sqlite-session-ncol

Classe : écriture hors limites dans le tas (heap OOB write) Portée : Locale

SQLite 3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69, SOURCE_ID 2026-07-24 19:02:57 bf7c7f30031888f4e796e429ab3978879485813aaca6f641c7b33e4e09459bcc) avec -DSQLITE_ENABLE_SESSION. Un changeset à deux blocs qui réutilise le nom de table t avec nCol=2 puis nCol=64 contourne la réinitialisation de sessionTableInfo (sqlite3session.c:5619) et effectue un memset au-delà de l'aUpdateMask du premier bloc. Écriture ASan de taille 12 dans sessionUpdateFind. Contrôle : un seul UPDATE à 2 colonnes, apply-rc=0.

Pas une amalgamation par défaut, sauf si SESSION est activé. Le NPD CVE-2026-50812 est corrigé à partir de 3.53.2. Ce n'est pas une charge utile RCE weaponisée. L'oracle est l'écriture ASan.

IDpas encore de CVE
Classeécriture hors limites dans le tas (écriture ASan de taille 12 ; RCE non démontré)
PortéeLocale (changeset non fiable via sqlite3changeset_apply*)
CWECWE-787
CVSSÉlevé : 8.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
ProduitSQLite extension Session (Hwaci)
Affecté3.53.4 (b09c88c) compilé avec -DSQLITE_ENABLE_SESSION
Authl'hôte applique un changeset non fiable
LicenceGNU Affero GPL v3.0
Lab127.0.0.1:18900 uniquement. Témoin d'écriture ASan de taille 12.

Ce qu'un attaquant peut faire

Appliquer un changeset non fiable dont le second bloc de table réutilise un nom de table avec un nCol plus grand. Écriture hors limites dans le tas. Extension de compilation. Pas une amalgamation par défaut, sauf si SESSION est activé.

Le premier bloc alloue aUpdateMask à partir de pIter->nCol. Le bloc ultérieur portant le même nom contourne la réinitialisation de sessionTableInfo et effectue un memset d'un masque plus grand par-dessus l'ancienne allocation. Lab : nCol=2 puis nCol=64 en UPDATE. Écriture ASan de taille 12 dans sessionUpdateFind. Contrôle : un seul UPDATE à 2 colonnes, apply-rc=0.

Ne traitez pas ce pack comme un gadget write-what-where. L'écriture ASan de taille 12 est l'oracle.

Comment je l'ai trouvé

Vingt recherches dans le code source de SQLite 3.53.4 après la vague FTS5 / session-NPD de 3.53.2. CVE-2026-50812 est corrigé (sessionBindRow traite une valeur manquante comme SQLITE_CORRUPT). Session indexe toujours SessionApplyCtx uniquement par nom de table. Un second bloc portant le même nom et un nombre de colonnes déclaré plus grand réutilise aUpdateMask.

Fausses pistes déjà consignées : considérer l'amalgamation par défaut comme dans le périmètre (SESSION est désactivé) ; re-déposer CVE-2026-50812 ; envoyer un seul bloc de table avec nCol=64 contre un schéma à 2 colonnes (schemaMismatch, aucune écriture) ; prétendre à une RCE à partir d'un memset de 12 octets.

Lab

cd lab
./run.sh

Amalgamation ASan issue du zip officiel sqlite-src-3530400. Compilation supplémentaire -DSQLITE_ENABLE_SESSION -DSQLITE_ENABLE_PREUPDATE_HOOK. Health sur 127.0.0.1:18900. Liez-le à la loopback.

SUCCESS sqlite-session-ncol how=asan-heap-write-sessionUpdateFind write-size=12 control-apply-rc=0 SQLITE-SESSION-NCOL-WITNESS

Le correctif

Lorsqu'un bloc de table d'un changeset ultérieur réutilise un nom, reconstruire SessionApplyCtx comme le fait déjà un nouveau nom : libérer aUpdateMask, relancer sessionTableInfo, refuser un nCol plus grand que le schéma actif. Trunk 3f57024aec / branch-3.53 a1dd7123d8 (2026-08-17) est postérieur à cette GA.

Références

  • https://sqlite.org/src tag version-3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69)
  • https://github.com/sqlite/sqlite/blob/b09c88c14082339b66c7b7158d609a771e64ca69/ext/session/sqlite3session.c sessionChangesetApply :5619, sessionUpdateFind :4381-4412
  • Forum https://sqlite.org/bugs/info/2026-08-16T10:15:25Z
  • CVE-2026-50812 session NPD est corrigé à partir de 3.53.2
Télécharger l’outil