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-cte-nest — SQLite 3.53.4 - Élevé - Local - Crash - les CTE imbriquées contournent le plafond de profondeur de vue nNestSel | Kitploit
Outils/GitHubGitHub/abraxas/sqlite-cte-nest
Analyse StatiqueAnalyse des VulnérabilitésExploitationFuzzingArticles et RechercheSécurité des Bases de Données
GitHubabraxas/sqlite-cte-nest

sqlite-cte-nest

SQLite 3.53.4 - Élevé - Local - Crash - les CTE imbriquées contournent le plafond de profondeur de vue nNestSel

Voir le dépôt
il 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-cte-nest

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

sqlite-cte-nest

Classe : Crash Portée : Locale

SQLite 3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69, SOURCE_ID 2026-07-24 19:02:57 bf7c7f30031888f4e796e429ab3978879485813aaca6f641c7b33e4e09459bcc) - Hwaci

sqlite3ResultSetOfSelect incrémente nNestSel et renvoie l'erreur VIEWs and/or subqueries nested too deep lorsque la chaîne atteint SQLITE_LIMIT_EXPR_DEPTH. Les VIEWs imbriquées sur ce pin atteignent déjà ce plafond. L'attachement de CTE à select.c:5754 (sqlite3SrcItemAttachSubquery) n'incrémente pas nNestSel. selectExpander / sqlite3WalkSelect récursent alors la chaîne de CTE jusqu'à ce que la pile C meure.

Une petite chaîne de CTE renvoie une ligne. Un FROM imbriqué à N=25000 est un Recursion limit du parseur et ne plante pas. Les VIEWs imbriquées à .limit expr_depth 20 renvoient l'erreur too-deep. Un CTE à N=25000 est un stack-overflow ASan. Pas de RCE.

IDpas encore de CVE
ClasseCrash (stack-overflow ASan dans selectExpander ; RCE non démontré)
PortéeLocale (SQL non fiable ou schéma CTE imbriqué)
CWECWE-674
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 (b09c88c) ; reliquat du nNestSel des CTE du trunk ultérieur
AuthSQL non fiable ou une chaîne WITH implantée
LicenceGNU Affero GPL v3.0
Lab127.0.0.1:18810 uniquement. Amalgamation ASan. Témoin de crash.

Ce qu'un attaquant peut faire

Fournir une longue chaîne de CTE, sous forme de SQL ou de corps de VIEW sur un .db non fiable :

WITH c0 AS (SELECT 1),
     c1 AS (SELECT * FROM c0),
     ...
     cN AS (SELECT * FROM cN-1)
SELECT * FROM cN;

selectExpander parcourt chaque CTE comme une sous-requête FROM imbriquée. nNestSel ne bouge jamais. Le processus hôte meurt sur la pile C. Les VIEWs imbriquées sont déjà plafonnées. Un FROM imbriqué atteint la limite de récursion du parseur. Ce reliquat est le chemin d'attachement des CTE. SQLite n'évalue pas les noms de CTE dans un shell. Crash, pas RCE.

Comment je l'ai trouvé

Vingt chasses au code source de https://github.com/sqlite/sqlite tag https://github.com/sqlite/sqlite/releases/tag/version-3.53.4. Les VIEWs imbriquées étaient plafonnées sur ce pin (3f3fb9b638 / branch-3.53 38430aa5ed, 2026-06-16). L'attachement de CTE ne l'était pas. Le trunk f547308713 (2026-10-05) est postérieur à cette GA.

Fausses pistes déjà consignées : traiter les VIEWs imbriquées comme le crash (elles renvoient l'erreur too-deep) ; traiter un FROM imbriqué à N=25000 comme le crash (Recursion limit du parseur) ; prendre une chaîne de 5 CTE comme preuve que le plafond s'applique.

Lab

cd lab
./run.sh

Zip officiel sqlite-src-3530400, amalgamation ASan, compose sqlite-cte-nest, publié sur 127.0.0.1:18810. Le lier à la loopback. Ne pas pointer ceci vers le SQLite de quelqu'un d'autre.

SUCCESS sqlite-cte-nest how=asan-stack-overflow crash-n=25000 small-cte=ok nested-views=too-deep nested-from=rejected SQLITE-CTE-NEST-WITNESS

Le correctif

Incrémenter nNestSel lors de l'attachement de CTE comme le fait déjà sqlite3ResultSetOfSelect pour les VIEWs, et renvoyer une erreur à SQLITE_LIMIT_EXPR_DEPTH. Le trunk f547308713 (2026-10-05, « Limit the depth of recursion for CTEs using SQLITE_LIMIT_EXPR_DEPTH ») est ce type de correctif. Il n'est pas dans 3.53.4.

Références

  • https://github.com/sqlite/sqlite tag https://github.com/sqlite/sqlite/releases/tag/version-3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69)
  • Canonique https://sqlite.org/src SOURCE_ID 2026-07-24 19:02:57 bf7c7f30031888f4e796e429ab3978879485813aaca6f641c7b33e4e09459bcc
  • src/select.c sqlite3ResultSetOfSelect (nNestSel++), attachement de CTE :5754
  • src/walker.c sqlite3WalkSelectFrom parcours de sous-requête
  • selectExpander / sqlite3SelectExpand
  • Bug du forum 2026-10-04T04:58:58Z ; trunk f547308713
Télécharger l’outil