Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
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.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/atiilla/cve-2026-85046
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebAnálisis de BinariosPapers e InvestigaciónAprendizaje y Educación
GitHubatiilla/cve-2026-85046

CVE-2026-85046

Prueba de concepto y análisis técnico para CVE-2026-85046, una confusión de tipos en V8 en el método inline Array.prototype.sort, que incluye la causa raíz, el diff del parche y la cadena de explotación para Chrome < 152.0.7977.82.

Ver Repositorio
hace 7h 44mAún no revisado
Sitio web

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

CVE-2026-85046

Confusión de tipos en V8 en Array.prototype.sort inline (Maglev + Turbofan). Sexto día cero de Chrome en 2026.

CampoValor
CVSS8.8 (Alto)
CWECWE-843 (Confusión de tipos)
ComponenteMotor JavaScript V8 -- sort inline Maglev/Turbofan
AfectadosChrome < 152.0.7977.82, todos los navegadores basados en Chromium
CorregidoChrome 152.0.7977.82 (2026-09-03)
Commit de correccióne0562d87ad9c17042b581582c99237d798572e67
CISA KEVAñadido 2026-09-04, fecha límite 2026-09-18
Explotación activaSí (confirmado por Google)
ReporteroSalvatore Gulizia (Serotav)

Causa raíz

La optimización de sort inline acepta retroalimentación polimórfica de element-kind (PACKED_SMI_ELEMENTS + PACKED_ELEMENTS). Cuando el comparador llama a arr.fill(0), V8 migra el mapa del receptor hacia atrás de PACKED_ELEMENTS a PACKED_SMI_ELEMENTS. La comprobación del mapa posterior al sort pasa porque PACKED_SMI_ELEMENTS estaba en el conjunto de retroalimentación original. La escritura de copia de vuelta escribe punteros a objetos en un array cuyo mapa afirma elementos solo-SMI.

La corrección añade una condición previa que requiere que todos los mapas del receptor en la retroalimentación compartan el mismo elements_kind antes de inline del sort.

Archivos

ArchivoDescripción
patch-analysis.mdAnálisis completo del diff del parche con causa raíz, mecanismo de activación y evaluación de primitivas de explotación
patch-analysis.jsonDatos estructurados: hashes de commits, CWE, versiones afectadas, primitivas de explotación
v8-research.mdInmersión profunda en element kinds de V8, PoCs de arte previo (CVE-2020-6418, CVE-2025-2135, CVE-2024-4947, etc.), arquitectura de sandbox, técnicas de escape
poc-minimal.jsActivador mínimo de confusión de tipos para d8 (d8 --allow-natives-syntax poc-minimal.js)
poc.htmlCadena de explotación completa: confusión de tipos, primitiva addrof, heap spray, fakeobj mediante solapamiento de backing store, fuga de información
exploit-notes.mdInforme técnico: cadena paso a paso, diagramas de diseño del heap, compresión de punteros, impacto del sandbox, indicadores de detección, remediación

Inicio rápido

Activador mínimo (d8)

root@kitploit:~
# Con ayudas de depuración de V8
d8 --allow-natives-syntax poc-minimal.js

# Sin ellas (verificación heurística mediante String())
d8 poc-minimal.js

PoC completo (navegador)

Abra poc.html en Chrome < 152.0.7977.82. El exploit se ejecuta automáticamente y registra cada etapa en la página y en la consola del desarrollador. Etapas:

  1. Entrenamiento de JIT con retroalimentación polimórfica de element-kind (2000 iteraciones)
  2. Activación de la confusión de tipos mediante arr.fill(0) en el comparador del sort
  3. Primitiva addrof -- filtra punteros comprimidos del heap como enteros
  4. Heap spray para solapamiento de backing store de arrays double/object
  5. fakeobj mediante solapamiento -- forja referencias a objetos a partir de enteros controlados
  6. Fuga de información -- vuelca direcciones de la instancia de WebAssembly, window, document

Resumen de la cadena de explotación

root@kitploit:~
Entrenamiento (2000 iter)
  |
  v
Confusión de tipos: mapa PACKED_ELEMENTS -> mapa PACKED_SMI_ELEMENTS
                (el backing store aún contiene punteros a objetos)
  |
  v
addrof: String(confused_array) filtra punteros como enteros
  |
  v
fakeobj: el solapamiento double/object array escribe puntero controlado
  |
  v
JSArray falso con puntero de elements controlado -> R/W arbitrario (intra-cage)
  |
  v
Ejecución de código dentro del sandbox de V8 (requiere escape del sandbox para RCE completo)

Detalles técnicos clave

  • La longitud del array debe ser <= 16 (kMaxInlineSortLength)
  • Se necesitan ~1000-2000 iteraciones para la optimización de Maglev/Turbofan
  • El comparador debe llamar a arr.fill() con valores SMI para la migración hacia atrás del mapa
  • Tanto los arrays PACKED_SMI como PACKED_ELEMENTS deben pasarse durante el entrenamiento
  • addrof filtra punteros comprimidos de 32 bits (relativos al cage, no VA completa de 64 bits)
  • El sandbox del heap de V8 limita la explotación a R/W intra-cage sin una segunda vulnerabilidad

Referencias

  • Bug de Chromium: crbug/542403045 (restringido)
  • Commit de corrección: e0562d87
  • Commit introductorio: 66a3f1e9
  • Informe de Serotav: https://serotav.github.io/Writeups/v8/when-sorting-leads-to-confusion/
  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-85046
Descargar herramienta