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
hace 6 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

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 da error VIEWs and/or subqueries nested too deep cuando la cadena alcanza SQLITE_LIMIT_EXPR_DEPTH. Las VIEWs anidadas en este pin ya alcanzan ese límite. El attach de CTE en select.c:5754 (sqlite3SrcItemAttachSubquery) no incrementa nNestSel. selectExpander / sqlite3WalkSelect entonces recursan la cadena de CTE hasta que la pila de C muere.

Una cadena de CTE pequeña devuelve una fila. El FROM anidado en N=25000 es un Recursion limit del parser y no provoca crash. Las VIEWs anidadas con .limit expr_depth 20 dan error too-deep. CTE N=25000 es ASan stack-overflow. No es RCE.

IDsin CVE todavía
ClaseCrash (ASan stack-overflow en selectExpander; RCE no demostrado)
AlcanceLocal (SQL no confiable o esquema de CTE anidado)
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
AuthSQL no confiable o una cadena WITH plantada
LicenciaGNU Affero GPL v3.0
Labsolo 127.0.0.1:18810. Amalgama ASan. Testigo de crash.

Qué puede hacer un atacante

Alimentar una cadena larga de CTE, 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 de C. Las VIEWs anidadas ya están limitadas. El FROM anidado alcanza el límite de recursión del parser. Este remanente es la ruta de attach de CTE. SQLite no evalúa los nombres de CTE en un shell. Crash, no RCE.

Cómo lo encontré

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

Caminos equivocados ya registrados: tratar las VIEWs anidadas como el crash (dan error too-deep); tratar el FROM anidado N=25000 como el crash (Recursion limit del parser); tomar una cadena de 5 CTE como prueba de que el límite aplica.

Lab

cd lab
./run.sh

Zip oficial sqlite-src-3530400, amalgama ASan, compose sqlite-cte-nest, publicado en 127.0.0.1:18810. Enlázalo a loopback. No apuntes esto al SQLite de otra persona.

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 en el attach de CTE tal como sqlite3ResultSetOfSelect ya lo hace para las VIEWs, y dar 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++), attach de CTE :5754
  • src/walker.c sqlite3WalkSelectFrom recorrido de subconsulta
  • selectExpander / sqlite3SelectExpand
  • Bug del foro 2026-10-04T04:58:58Z; trunk f547308713
Descargar herramienta