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-2026-2005 — PoC para CVE-2026-2005 | Kitploit
Herramientas/GitHubGitHub/var77/cve-2026-2005
Escalada de PrivilegiosForensia de MemoriaAnálisis de VulnerabilidadesExplotaciónAprendizaje y EducaciónSeguridad de Bases de DatosExplotación de Binarios
GitHubvar77/cve-2026-2005

CVE-2026-2005

PoC para CVE-2026-2005

Ver Repositorio
265hace 3 mesesRevisado por Kitploit

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-2005 - Exploit de desbordamiento de montón en pgcrypto de PostgreSQL

PoC del exploit para un desbordamiento de búfer basado en montón en el análisis de claves de sesión PGP de la extensión pgcrypto de PostgreSQL, que conduce a lectura/escritura arbitraria de memoria y escalada de privilegios a superusuario.

Para obtener todos los detalles técnicos, consulte el aviso de Zeroday Cloud.

Demo

Demostración del PoC

Uso

1. Compilar PostgreSQL

Clone y compile PostgreSQL desde el commit vulnerable para que los desplazamientos de símbolos del binario coincidan exactamente. El exploit resuelve la base de ASLR comparando punteros filtrados con los desplazamientos de símbolos ELF; otras compilaciones o versiones tendrán desplazamientos diferentes y fallarán.

root@kitploit:~
git clone https://github.com/postgres/postgres.git
cd postgres
git checkout 4b324845ba5d24682b9b3708a769f00d160afbd7
./configure \
    --prefix="$HOME/projects/pg/pgsql" \
    --with-libxml \
    --with-libxslt \
    --enable-debug \
    --with-ssl=openssl
make -j$(nproc)
make install-world-bin

2. Instalar las dependencias de Python

root@kitploit:~
pip install -r requirements.txt

3. Ejecutar el exploit

root@kitploit:~
python poc.py \
    --binary "$HOME/projects/pg/pgsql/bin/postgres" \
    --dbname test-db \
    --host 127.0.0.1 \
    --port 5432 \
    --user test-user \
    --password secret \
    --cmd id

Opciones

Flujo del exploit

El exploit avanza en 7 etapas:

  1. Fuga de puntero de montón - Un mensaje PGP manipulado corrompe el encabezado del chunk de malloc del búfer mdst. Cuando PostgreSQL llama a pfree() sobre el chunk corrupto, el asignador emite un error que contiene la dirección del puntero, filtrando la ubicación en el montón de mdst->data.

  2. Lectura arbitraria - Un segundo desbordamiento sobrescribe mdst->data para que apunte a (puntero_filtrado - 0x10000). Tras el descifrado, mbuf_steal_data() devuelve el contenido de esa dirección como salida descifrada, volcando memoria del montón que puede contener punteros de código obsoletos.

  3. Escaneo de punteros - El volcado hexadecimal se examina en busca de valores little-endian de 8 bytes que parezcan direcciones de código (>= 0x500000000000) pero que no estén en la región del montón. Estos son posibles punteros PIE (Ejecutable Independiente de Posición).

  4. Votación de la base PIE - Cada dirección candidata se prueba contra los desplazamientos de símbolos ELF del binario de postgres. Por cada par (dirección - desplazamiento_símbolo) en el que coincida el desplazamiento de página, se emite un voto. Se conservan los candidatos con 10 o más votos; la base más pequeña (el PIE es el segmento ELF mapeado más bajo) ordenada por votos es el candidato principal.

Requisitos

  • Python 3.10+
  • psycopg2-binary, pwntools, pycryptodome (pip install -r requirements.txt)
  • PostgreSQL compilado desde el commit vulnerable (4b324845) con pgcrypto habilitado

Aviso legal

Esta prueba de concepto tiene fines exclusivamente educativos y de investigación defensiva. Úsela únicamente contra sistemas de su propiedad o para los que tenga autorización explícita de prueba.

Referencias

  • CVE-2026-2005: Desbordamiento de enteros en pgcrypto de PostgreSQL que conduce a ejecución remota de código
Descargar herramienta
ArgumentoValor predeterminadoDescripción
--binary(binario de postgres)Ruta al binario de postgres para la extracción de símbolos
--dbnamepostgresNombre de la base de datos objetivo
--hostlocalhostHost de PostgreSQL
--port5432Puerto de PostgreSQL
--userpostgresUsuario de la base de datos
--password(vacío)Contraseña de la base de datos
--cmdwhoamiComando del sistema operativo a ejecutar tras la escalada de privilegios
--gdb(indicador)Adjunta GDB mediante tmux en el punto del desbordamiento

Validación de la base PIE - Usando la primitiva de lectura arbitraria, el exploit lee CurrentUserId en (base_candidata + desplazamiento_current_user) y lo compara con el OID conocido de la sesión. Una coincidencia confirma la base PIE.

  • Escritura arbitraria - El desbordamiento corrompe tanto los encabezados MBuf de msrc como de mdst. Los msrc->data/read_pos falsificados apuntan a un paquete simétrico cifrado incrustado que contiene el OID de superusuario cifrado (10). El mdst->data falsificado apunta a CurrentUserId - 4 (el -4 compensa SET_VARSIZE en pgp-pgsql.c:533, que escribe la longitud de salida en los primeros 4 bytes).

  • Escalada de privilegios - Con CurrentUserId sobrescrito a 10 (superusuario de arranque), COPY FROM PROGRAM ejecuta el comando del sistema operativo especificado como el usuario del sistema postgres.