
Pacote de reprodução e script PoC para CVE-2026-87796, um RCE de upload arbitrário de arquivos não autenticado no Multi Uploader for Gravity Forms <= 1.1.9, com um laboratório Docker em loopback.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · CVE-2026-87796
Multi Uploader for Gravity Forms 1.1.9 — sh1zen
O plugin Multi Uploader for Gravity Forms para WordPress é vulnerável a Upload Arbitrário de Arquivos em todas as versões até, e incluindo, a 1.1.9 através da função move_file. Isso se deve à validação insuficiente do tipo de arquivo durante o tratamento de upload em partes (chunked). Isso possibilita que atacantes não autenticados façam upload de arquivos arbitrários no servidor do site afetado, o que pode tornar possível a execução remota de código.
| CVE | CVE-2026-87796 · CVE.org |
| CWE | CWE-434 |
| CVSS | Crítico: 9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| Produto | Multi Uploader for Gravity Forms |
| Afetado | todas as versões até 1.1.9 (inclusive) |
| Corrigido | patch do fornecedor — veja as referências |
| Autenticação | nenhuma (veja o mapa do código-fonte) |
| Lab | apenas 127.0.0.1 · pacote de divulgação para fornecedor/cliente, não é um scanner |
O aviso nomeia move_file. Esse é um método PHP privado, não um action= HTTP. A ação HTTP é gfmu-plupload-submit. Chunked vs não-chunked é REQUEST[chunks]>1. Nomes de funções PHP não são action= do admin-ajax.
POST/wp-admin/admin-ajax.phpPOST /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>1 (GFMU_FileUploader.php:231-319)move_file copia e então unlink tmp (GFMU_FileUploader.php:319, 545-560)validateUploadedFile somente DEPOIS que o arquivo já está em $target (322) — ao contrário do não-chunked que valida primeiro (375)GET /wp-content/uploads/gfmu-uploads-tmp/<name> para POC_WITNESS_87796O GET HTTP do arquivo enviado retorna a string única POC_WITNESS_87796. JSON result=success mais esse GET é SUCESSO. HTML do tema, admin-ajax 0, ou Server error. Falha de nonce não é isso.
Faça isto primeiro: Aplique o patch do fornecedor para o Multi Uploader for Gravity Forms. Veja as referências.
Verifique após a atualização
CVE-2026-87796-Abraxas-Labs.py contra a build corrigida: o testemunho mapeado não deve aparecer.Se você não puder atualizar imediatamente
Alvo apenas http://127.0.0.1:8088 (ou o loopback que você vinculou). Não aponte este script para a internet.
python3 CVE-2026-87796-Abraxas-Labs.py
Sucesso é o testemunho acima no corpo da resposta. HTML 200 genérico não é isso.
Stack de loopback usada para reproduzir. Imagens oficiais, a menos que um Dockerfile nesta pasta faça build a partir do código-fonte.
cd lab
docker compose up --force-recreate
Vincule a árvore do produto vulnerável ao lado do Compose se o YAML montar um diretório local (zip do plugin / tag de código-fonte da tabela de versões). Não publique nada exceto 127.0.0.1.
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/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
Diretório de plugins: gf-multi-uploader
Navegador Trac: plugins.trac.wordpress.org/gf-multi-uploader
Abraxas Labs: abraxaslabs.tech · github.com/abraxas · @abraxas_null
# 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.
Este pacote é para o fornecedor, o proprietário do site e labs licenciados. O script se comunica com 127.0.0.1. Usá-lo contra sistemas que você não possui não é autorizado pela Abraxas Labs. Sem garantia.