
Набор для воспроизведения и PoC-скрипт для CVE-2026-87796 — неаутентифицированной RCE через произвольную загрузку файлов в Multi Uploader for Gravity Forms <= 1.1.9, с лабораторией Docker на loopback.
abraxaslabs.tech · github.com/abraxas · @abraxas_null · CVE-2026-87796
Multi Uploader for Gravity Forms 1.1.9 — sh1zen
Плагин Multi Uploader for Gravity Forms для WordPress уязвим к произвольной загрузке файлов во всех версиях вплоть до 1.1.9 включительно через функцию move_file. Это обусловлено недостаточной проверкой типа файла при обработке чанковой загрузки. Это позволяет неаутентифицированным злоумышленникам загружать произвольные файлы на сервер уязвимого сайта, что может сделать возможным удалённое выполнение кода.
| CVE | CVE-2026-87796 · CVE.org |
| CWE | CWE-434 |
| CVSS | Critical: 9.8 CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| Продукт | Multi Uploader for Gravity Forms |
| Затронуто | все версии вплоть до 1.1.9 (включительно) |
| Исправлено | патч вендора — см. ссылки |
| Аутентификация | отсутствует (см. карту исходников) |
| Лаборатория | только 127.0.0.1 · пакет для раскрытия вендору/клиенту, не сканер |
В рекомендациях указана move_file. Это приватный PHP-метод, а не HTTP action=. HTTP-действие — gfmu-plupload-submit. Чанковая или нечанковая загрузка определяется по REQUEST[chunks]>1. Имена PHP-функций — это не admin-ajax action=.
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 копирует, затем unlink tmp (GFMU_FileUploader.php:319, 545-560)validateUploadedFile только ПОСЛЕ того, как файл уже находится в $target (322) — в отличие от нечанкового, который валидирует первым (375)GET /wp-content/uploads/gfmu-uploads-tmp/<name> для POC_WITNESS_87796HTTP GET загруженного файла возвращает уникальную строку POC_WITNESS_87796. JSON result=success плюс этот GET — это SUCCESS. HTML темы, admin-ajax 0 или Server error. nonce fail — это не оно.
Сделайте это в первую очередь: Примените патч вендора для Multi Uploader for Gravity Forms. См. ссылки.
Проверка после обновления
CVE-2026-87796-Abraxas-Labs.py против исправленной сборки: сопоставленный свидетель не должен появиться.Если вы не можете обновиться немедленно
Цель — только http://127.0.0.1:8088 (или loopback, который вы привязали). Не направляйте этот скрипт в интернет.
python3 CVE-2026-87796-Abraxas-Labs.py
Успех — это свидетель выше в теле ответа. Обычный 200 HTML — это не оно.
Loopback-стек, использованный для воспроизведения. Официальные образы, если только Dockerfile в этой папке не собирает из исходников.
cd lab
docker compose up --force-recreate
Привяжите дерево уязвимого продукта рядом с Compose, если YAML монтирует локальный каталог (zip плагина / тег исходников из таблицы версий). Не публикуйте ничего, кроме 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
Каталог плагинов: gf-multi-uploader
Браузер 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.
Этот пакет предназначен для вендора, владельца сайта и лицензированных лабораторий. Скрипт обращается к 127.0.0.1. Использование его против систем, которыми вы не владеете, не авторизовано Abraxas Labs. Без гарантий.