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-87796 — Paquete de reproducción y script PoC para CVE-2026-87796, una RCE por carga arbitraria de archivos sin autenticación en Multi Uploader for Gravity Forms <= 1.1.9, con un laboratorio Docker en loopback. | Kitploit
Herramientas/GitHubGitHub/abraxas/cve-2026-87796
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebSeguridad WebPruebas de PenetraciónPapers e InvestigaciónAprendizaje y EducaciónDesarrollo de PayloadsLabs y Práctica
GitHubabraxas/cve-2026-87796

CVE-2026-87796

Paquete de reproducción y script PoC para CVE-2026-87796, una RCE por carga arbitraria de archivos sin autenticación en Multi Uploader for Gravity Forms <= 1.1.9, con un laboratorio Docker en loopback.

hace 4h 28mAún no revisado
Ver Repositorio

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 — CVE-2026-87796

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  CVE-2026-87796

CVE-2026-87796

Multi Uploader for Gravity Forms 1.1.9 — sh1zen

El plugin Multi Uploader for Gravity Forms para WordPress es vulnerable a carga arbitraria de archivos en todas las versiones hasta la 1.1.9, inclusive, a través de la función move_file. Esto se debe a una validación insuficiente del tipo de archivo durante el manejo de cargas fragmentadas. Esto hace posible que atacantes no autenticados carguen archivos arbitrarios en el servidor del sitio afectado, lo que puede hacer posible la ejecución remota de código.

CVECVE-2026-87796 · CVE.org
CWECWE-434
CVSSCrítico: 9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
ProductoMulti Uploader for Gravity Forms
Afectadotodas las versiones hasta la 1.1.9 (inclusive)
Parcheadoparche del proveedor — ver referencias
Autenticaciónninguna (ver mapa de código fuente)
Laboratoriosolo 127.0.0.1 · paquete de divulgación para proveedor/cliente, no es un escáner

Aviso (del mapa de código fuente)

El aviso nombra move_file. Ese es un método PHP privado, no action= de HTTP. La acción HTTP es gfmu-plupload-submit. Fragmentado vs no fragmentado es REQUEST[chunks]>1. Los nombres de funciones PHP no son action= de admin-ajax.


Entrada

  • Método: POST
  • Ruta: /wp-admin/admin-ajax.php
  • Enrutador: wp_ajax_nopriv_gfmu-plupload-submit → GFMUHandlePluploader::plupload_ajax_submit. El campo nonce es REQUEST[nonce] para la acción gfmu-upload-nonce. No inventes una acción ajax diferente.
  • Notas: CVE-2026-87796: handleUpload fragmentado (REQUEST chunks>1) copia el archivo ensamblado con move_file ANTES de validateUploadedFile. El no fragmentado valida primero. Sin un campo, enable_chunked es false y toBytes(ini 2M) < sizeLimit 10mb devuelve 'try activate chunking' antes de cualquier escritura. El stub de laboratorio RGFormsModel::get_field devuelve un campo multi-uploader con chunk_size=2mb para que esa comprobación se omita. Envía currentFormID=1 y currentFieldID=1. Descubre el nonce desde la página con slug gfmu-lab-nonce. Verifica que GET /wp-content/uploads/gfmu-uploads-tmp/poc_witness.php contenga POC_WITNESS_87796 (GIF89a + echo, no un shell). Dos POST fragmentados y luego GET.

Cadena de llamadas

  • POST /wp-admin/admin-ajax.php action=gfmu-plupload-submit (nopriv, GFMUAddon.class.php:125)
  • GFMUHandlePluploader::plupload_ajax_submit nonce gfmu-upload-nonce (GFMUHandlePluploader.class.php:257-262)
  • GFMU_FileUploader::handleUpload chunks&gt;1 (GFMU_FileUploader.php:231-319)
  • move_file copia y luego unlink tmp (GFMU_FileUploader.php:319, 545-560)
  • validateUploadedFile solo DESPUÉS de que el archivo ya está en $target (322) — a diferencia del no fragmentado que valida primero (375)
  • GET /wp-content/uploads/gfmu-uploads-tmp/&lt;name&gt; para POC_WITNESS_87796

Precondiciones del laboratorio

  • WordPress con gf-multi-uploader 1.1.9 activo
  • Stub GF de laboratorio mu-plugin para que GFForms exista y se registre el AJAX nopriv
  • Página pública con slug gfmu-lab-nonce con GFMU_NONCE= para uid 0
  • No pases currentFormID (no hay formularios reales de Gravity Forms)

Testigo

El GET HTTP del archivo cargado devuelve la cadena única POC_WITNESS_87796. JSON result=success más ese GET es ÉXITO. HTML del tema, admin-ajax 0, o Server error. nonce fail no lo es.

No es éxito

  • HTML genérico 200 hello world
  • admin-ajax 400 body 0
  • result error / Server error. nonce
  • extensión inválida sin un archivo que aún haga GET del testigo
  • un reverse shell o conexión saliente
  • cargar un jpg/png permitido que no sea el sink de tipo arbitrario

Parche / remediación

Haz esto primero: Aplica el parche del proveedor para Multi Uploader for Gravity Forms. Ver referencias.

Verificar después de la actualización

  • Vuelve a ejecutar CVE-2026-87796-Abraxas-Labs.py contra la compilación parcheada: el testigo mapeado no debe aparecer.
  • Confirma el aviso del proveedor / changeset en el árbol desplegado (ver referencias).
  • Una firma de WAF es un retraso, no un parche.

Si no puedes actualizar de inmediato

  • Deshabilita o aísla el componente afectado.
  • Busca la condición del testigo en producción (nuevos usuarios privilegiados, archivos inesperados, filas inyectadas — lo que sea que nombre el mapa de este CVE).

Reproducción (laboratorio autorizado)

Apunta solo a http://127.0.0.1:8088 (o al loopback que hayas vinculado). No apuntes este script a internet.

root@kitploit:~
python3 CVE-2026-87796-Abraxas-Labs.py

El éxito es el testigo anterior en el cuerpo de la respuesta. Un HTML 200 genérico no lo es.


Imágenes de laboratorio

Stack de loopback usado para reproducir. Imágenes oficiales a menos que un Dockerfile en esta carpeta compile desde el código fuente.

  • lab/docker-compose.yml
  • lab/docker-compose.override.yml
  • lab/Dockerfile
root@kitploit:~
cd lab
docker compose up --force-recreate

Vincula el árbol del producto vulnerable junto a Compose si el YAML monta un directorio local (zip del plugin / etiqueta de código fuente de la tabla de versiones). No publiques nada excepto 127.0.0.1.


Referencias

  • CVE-2026-87796 · NVD

  • CVE-2026-87796 · CVE.org

  • plugins.trac.wordpress.org/browser/gf-multi-uploader/tags/1.1.9/GFMUAddon.class.php#L125

  • plugins.trac.wordpress.org/browser/gf-multi-uploader/tags/1.1.9/inc/GFMUHandlePluploader.class.php#L257

  • plugins.trac.wordpress.org/browser/gf-multi-uploader/tags/1.1.9/inc/GFMU_FileUploader.php#L319

  • plugins.trac.wordpress.org/browser/gf-multi-uploader/tags/1.1.9/inc/GFMU_FileUploader.php#L322

  • plugins.trac.wordpress.org/browser/gf-multi-uploader/tags/1.1.9/inc/GFMU_FileUploader.php#L560

  • www.wordfence.com/threat-intel/vulnerabilities/id/47337bc1-fa3d-470c-9524-859295261017?source=cve

  • github.com/advisories/GHSA-h7vp-g8q2-89c8

  • nvd.nist.gov/vuln/detail/CVE-2026-87796

  • Directorio de plugins: gf-multi-uploader

  • Navegador Trac: plugins.trac.wordpress.org/gf-multi-uploader

  • Etiquetas SVN: plugins.svn.wordpress.org/gf-multi-uploader

  • Abraxas Labs: abraxaslabs.tech · github.com/abraxas · @abraxas_null


Registros (estructurados)

root@kitploit:~
# CVE-2026-87796  (structured records)

- input: `https://nvd.nist.gov/vuln/detail/CVE-2026-87796`
- CWE: CWE-434
- published: 2026-09-17T05:17:02.123

## NVD description

The Multi Uploader for Gravity Forms plugin for WordPress is vulnerable to Arbitrary File Upload in all versions up to, and including, 1.1.9 via the move_file function. This is due to insufficient file type validation during chunked upload handling. This makes it possible for unauthenticated attackers to upload arbitrary files on the affected site's server which may make remote code execution possible.

## MITRE description

The Multi Uploader for Gravity Forms plugin for WordPress is vulnerable to Arbitrary File Upload in all versions up to, and including, 1.1.9 via the move_file function. This is due to insufficient file type validation during chunked upload handling. This makes it possible for unauthenticated attackers to upload arbitrary files on the affected site's server which may make remote code execution possible.

## Affected

- sh1zen Multi Uploader for Gravity Forms 0 affected

## References (JSON sources only)

- https://plugins.trac.wordpress.org/browser/gf-multi-uploader/tags/1.1.9/GFMUAddon.class.php#L125
- https://plugins.trac.wordpress.org/browser/gf-multi-uploader/tags/1.1.9/inc/GFMUHandlePluploader.class.php#L257
- https://plugins.trac.wordpress.org/browser/gf-multi-uploader/tags/1.1.9/inc/GFMU_FileUploader.php#L319
- https://plugins.trac.wordpress.org/browser/gf-multi-uploader/tags/1.1.9/inc/GFMU_FileUploader.php#L322
- https://plugins.trac.wordpress.org/browser/gf-multi-uploader/tags/1.1.9/inc/GFMU_FileUploader.php#L560
- https://www.wordfence.com/threat-intel/vulnerabilities/id/47337bc1-fa3d-470c-9524-859295261017?source=cve
- https://github.com/advisories/GHSA-h7vp-g8q2-89c8
- https://nvd.nist.gov/vuln/detail/CVE-2026-87796

## GitHub advisory

The Multi Uploader for Gravity Forms plugin for WordPress is vulnerable to Arbitrary File Upload...

The Multi Uploader for Gravity Forms plugin for WordPress is vulnerable to Arbitrary File Upload in all versions up to, and including, 1.1.9 via the move_file function. This is due to insufficient file type validation during chunked upload handling. This makes it possible for unauthenticated attackers to upload arbitrary files on the affected site's server which may make remote code execution possible.

Descargo de responsabilidad

Este paquete es para el proveedor, el propietario del sitio y laboratorios con licencia. El script se comunica con 127.0.0.1. Usarlo contra sistemas que no posees no está autorizado por Abraxas Labs. Sin garantía.

abraxaslabs.tech · github.com/abraxas · @abraxas_null

Descargar herramienta