Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
sqlite-cte-nest — SQLite 3.53.4 - Alta - Local - Crash - las CTE anidadas omiten el límite de profundidad de vista nNestSel | Kitploit
Herramientas/GitHubGitHub/abraxas/sqlite-cte-nest
Análisis EstáticoAnálisis de VulnerabilidadesExplotaciónFuzzingPapers e InvestigaciónSeguridad de Bases de Datos
GitHubabraxas/sqlite-cte-nest

sqlite-cte-nest

SQLite 3.53.4 - Alta - Local - Crash - las CTE anidadas omiten el límite de profundidad de vista nNestSel

Ver Repositorio
22hace 9 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Abraxas Labs - sqlite-cte-nest

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

Análisis: https://abraxaslabs.tech/research/sqlite-cte-nest

sqlite-cte-nest

Clase: Crash Alcance: Local

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

sqlite3ResultSetOfSelect incrementa nNestSel y emite el error VIEWs and/or subqueries nested too deep cuando la cadena alcanza SQLITE_LIMIT_EXPR_DEPTH. Las VIEWs anidadas en esta versión ya alcanzan ese límite. La vinculación de CTE en select.c:5754 (sqlite3SrcItemAttachSubquery) no incrementa nNestSel. selectExpander / sqlite3WalkSelect entonces recurren la cadena de CTE hasta que la pila C muere.

Una cadena de CTE pequeña devuelve una fila. El FROM anidado en N=25000 produce un Recursion limit del parser y no provoca un crash. Las VIEWs anidadas con .limit expr_depth 20 también emiten el error de demasiado profundo. CTE N=25000 es un desbordamiento de pila bajo ASan. No es RCE.

IDaún sin CVE
ClaseCrash (desbordamiento de pila bajo ASan en selectExpander; RCE no demostrado)
AlcanceLocal (SQL no confiable o esquema con CTE anidadas)
CWECWE-674
CVSSAlto: 7.5 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
ProductoSQLite (espejo en GitHub sqlite/sqlite)
Afectado3.53.4 (b09c88c); remanente del nNestSel de CTE del trunk posterior
AutenticaciónSQL no confiable o una cadena WITH plantada
LicenciaGNU Affero GPL v3.0
Laboratoriosolo 127.0.0.1:18810. Amalgamación ASan. Testigo de crash.

Qué puede hacer un atacante

Introducir una cadena de CTE larga, ya sea como SQL o como cuerpo de una VIEW en un .db no confiable:

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

selectExpander recorre cada CTE como una subconsulta FROM anidada. nNestSel nunca se mueve. El proceso anfitrión muere en la pila C. Las VIEW anidadas ya están limitadas. El FROM anidado alcanza el límite de recursión del analizador. Este remanente es la ruta de adjunción de CTE. SQLite no evalúa los nombres de CTE en un shell. Es un crash, no RCE.

Cómo lo encontré

Veinte búsquedas en el código fuente de https://github.com/sqlite/sqlite etiqueta https://github.com/sqlite/sqlite/releases/tag/version-3.53.4. Las VIEW anidadas estaban limitadas en este pin (3f3fb9b638 / branch-3.53 38430aa5ed, 2026-06-16). La adjunción de CTE no lo estaba. El trunk f547308713 (2026-10-05) es posterior a este GA.

Falsos caminos ya registrados: tratar las VIEW anidadas como el crash (dan error de demasiado profundo); tratar el FROM anidado N=25000 como el crash (analizador Recursion limit); tomar una cadena de 5 CTE como prueba de que el límite aplica.

Laboratorio

cd lab
./run.sh

Zip oficial sqlite-src-3530400, amalgamación ASan, componer sqlite-cte-nest, publicado en 127.0.0.1:18810. Vincúlalo a loopback. No apuntes esto a la SQLite de nadie más.

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

La solución

Incrementar nNestSel al adjuntar la CTE de la misma forma en que sqlite3ResultSetOfSelect ya lo hace para las VIEW, y generar un error en SQLITE_LIMIT_EXPR_DEPTH. El trunk f547308713 (2026-10-05, "Limit the depth of recursion for CTEs using SQLITE_LIMIT_EXPR_DEPTH") es ese tipo de parche. No está en 3.53.4.

Referencias

  • https://github.com/sqlite/sqlite tag https://github.com/sqlite/sqlite/releases/tag/version-3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69)
  • Canónico https://sqlite.org/src SOURCE_ID 2026-07-24 19:02:57 bf7c7f30031888f4e796e429ab3978879485813aaca6f641c7b33e4e09459bcc
  • src/select.c sqlite3ResultSetOfSelect (nNestSel++), adjunción de CTE :5754
  • src/walker.c recorrido de subconsultas sqlite3WalkSelectFrom
  • selectExpander / sqlite3SelectExpand
  • Bug del foro 2026-10-04T04:58:58Z; trunk f547308713
Descargar herramienta