
CVE-2026-85520에 대한 Python PoC: PrestaShop gmfeed feed.php의 인증되지 않은 임의 파일 쓰기를 탐지하고 악용하여 RCE를 달성하며, 대량 스캔을 지원합니다.
**CVE-2026-85520**에 대한 Python 3 PoC — PrestaShop용 MyPresta.eu / VEKIA Google Merchant Center Feed 모듈(gmfeed) — “Save to file” / URL 내보내기가 사용될 때 **feed.php**에서의 인증되지 않은 임의 파일 쓰기. 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 엔드포인트가 인증 없이 임의 파라미터로 출력 파일명, 경로, 확장자 및 내용을 받아들일 수 있었습니다.
공격자는 조작된 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 내보내기 스크립트는 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 | 경량 디스크 저장 프로브 (영구 셸 없음; 프로브 경로에서 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
익스플로잇 후 수동으로 확인:
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 복사본을 제거함).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