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-session-ncol — SQLite 3.53.4 - Alta - Local - escritura fuera de límites en el heap - crecimiento de nCol con el mismo nombre en el changeset de la sesión | Kitploit
Herramientas/GitHubGitHub/abraxas/sqlite-session-ncol
Forensia de MemoriaAnálisis de VulnerabilidadesExplotaciónFuzzingAnálisis de BinariosPapers e InvestigaciónSeguridad de Bases de Datos
GitHubabraxas/sqlite-session-ncol

sqlite-session-ncol

SQLite 3.53.4 - Alta - Local - escritura fuera de límites en el heap - crecimiento de nCol con el mismo nombre en el changeset de la sesión

Ver Repositorio
7hace 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-session-ncol

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

sqlite-session-ncol

Clase: escritura OOB en heap Alcance: Local

SQLite 3.53.4 (b09c88c14082339b66c7b7158d609a771e64ca69, SOURCE_ID 2026-07-24 19:02:57 bf7c7f30031888f4e796e429ab3978879485813aaca6f641c7b33e4e09459bcc) con -DSQLITE_ENABLE_SESSION. Un changeset de dos bloques que reutiliza el nombre de tabla t con nCol=2 y luego nCol=64 omite el reinicio de sessionTableInfo (sqlite3session.c:5619) y hace memset más allá del aUpdateMask del primer bloque. Escritura ASan de tamaño 12 en sessionUpdateFind. Control con un único UPDATE de 2 columnas apply-rc=0.

No es una amalgamation por defecto a menos que SESSION esté activado. El NPD de CVE-2026-50812 está cerrado en 3.53.2+. No es un payload RCE weaponizado. El oráculo es la escritura ASan.

IDaún sin CVE
Claseescritura OOB en heap (escritura ASan de tamaño 12; no se demuestra RCE)
AlcanceLocal (changeset no confiable vía sqlite3changeset_apply*)
CWECWE-787
CVSSAlto: 8.1 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
ProductoSQLite Session extra (Hwaci)
Afectado3.53.4 (b09c88c) compilado con -DSQLITE_ENABLE_SESSION
Authel host aplica un changeset no confiable
LicenciaGNU Affero GPL v3.0
Labsolo 127.0.0.1:18900. Testigo de escritura ASan de tamaño 12.

Qué puede hacer un atacante

Aplicar un changeset no confiable cuyo segundo bloque de tabla reutiliza un nombre de tabla con un nCol mayor. Escritura OOB en heap. Extra de compilación. No es una amalgamation por defecto a menos que SESSION esté activado.

El primer bloque asigna aUpdateMask a partir de pIter->nCol. El bloque posterior con el mismo nombre omite el reinicio de sessionTableInfo y hace memset de una máscara mayor sobre la asignación antigua. Lab: nCol=2 y luego nCol=64 UPDATE. Escritura ASan de tamaño 12 en sessionUpdateFind. Control con un único UPDATE de 2 columnas apply-rc=0.

No trates este pack como un gadget write-what-where. La escritura ASan de tamaño 12 es el oráculo.

Cómo lo encontré

Veinte búsquedas en el código fuente de SQLite 3.53.4 tras la oleada de FTS5 / session-NPD de 3.53.2. CVE-2026-50812 está cerrado (sessionBindRow trata un valor ausente como SQLITE_CORRUPT). Session sigue indexando SessionApplyCtx solo por nombre de tabla. Un segundo bloque con el mismo nombre y un recuento de columnas declarado mayor reutiliza aUpdateMask.

Caminos erróneos ya registrados: tratar la amalgamation por defecto como dentro del alcance (SESSION está desactivado); volver a reportar CVE-2026-50812; enviar un bloque de tabla con nCol=64 contra un esquema de 2 columnas (schemaMismatch, sin escritura); afirmar RCE a partir de un memset de 12 bytes.

Lab

cd lab
./run.sh

Amalgamation con ASan del zip oficial sqlite-src-3530400. Extra de compilación -DSQLITE_ENABLE_SESSION -DSQLITE_ENABLE_PREUPDATE_HOOK. Health en 127.0.0.1:18900. Enlázalo a loopback.

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

La corrección

Cuando un bloque de tabla de changeset posterior reutiliza un nombre, reconstruye SessionApplyCtx de la misma forma que ya lo hace un nombre nuevo: libera aUpdateMask, vuelve a ejecutar sessionTableInfo, rechaza un nCol mayor que el esquema activo. Trunk 3f57024aec / branch-3.53 a1dd7123d8 (2026-08-17) es posterior a esta GA.

Referencias

  • 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
  • Foro https://sqlite.org/bugs/info/2026-08-16T10:15:25Z
  • El NPD de sesión de CVE-2026-50812 está cerrado en 3.53.2+
Descargar herramienta