ghost-vuln
Runs Ghost CMS 6.18.0, which is within the affected range for CVE-2026-26980. Exposes port 2368 on the host. Connects to the db-vuln MySQL service.
2026/CVE-2026-26980/dinosn-ghost-cve-2026-26980-194f7c1/docker-compose.yml:11-26File viewing is interactive and short-lived. Downloads are password-protected ZIP archives using password eip.
A Python exploit for CVE-2026-26980, an unauthenticated blind SQL injection in Ghost CMS's Content API. The code performs automated setup, boolean-based data extraction (admin email, password hash, API key), and fix validation against a Dockerized Ghost instance.
No backdoor observed in reviewed code
The supplied evidence consists of a README, Docker Compose file, Python exploit script, and shell validation script for CVE-2026-26980, a SQL injection vulnerability in Ghost CMS. All code performs expected PoC behavior: setting up a vulnerable Ghost instance, exploiting the SQL injection to extract database data, and validating the fix. No concealed executable behavior, persistence, credential exfiltration to external parties, or unrelated payloads were observed.
The primary artifact is a Python script (exploit.py) that actively exploits CVE-2026-26980 by sending malicious SQL injection payloads to extract data from a vulnerable Ghost CMS instance. The README describes it as a 'Full PoC: setup, verify, extract' and the code includes functions for data extraction (extract_admin_email, extract_password_hash, extract_admin_api_secret).
dinosn-ghost-cve-2026-26980-194f7c1/exploit.py:1-4dinosn-ghost-cve-2026-26980-194f7c1/exploit.py:296-316dinosn-ghost-cve-2026-26980-194f7c1/README.md:224dinosn-ghost-cve-2026-26980-194f7c1/README.md:11dinosn-ghost-cve-2026-26980-194f7c1/docker-compose.yml:14dinosn-ghost-cve-2026-26980-194f7c1/README.md:116dinosn-ghost-cve-2026-26980-194f7c1/README.md:115dinosn-ghost-cve-2026-26980-194f7c1/exploit.py:117-157dinosn-ghost-cve-2026-26980-194f7c1/exploit.py:159-191dinosn-ghost-cve-2026-26980-194f7c1/exploit.py:208-236dinosn-ghost-cve-2026-26980-194f7c1/exploit.py:256-316dinosn-ghost-cve-2026-26980-194f7c1/exploit.py:363-383dinosn-ghost-cve-2026-26980-194f7c1/exploit.py:296-316dinosn-ghost-cve-2026-26980-194f7c1/exploit.py:72-95dinosn-ghost-cve-2026-26980-194f7c1/validate.sh:1-40This review is limited to the supplied PoC code and context. It does not assert that the code works or is safe to execute.
A Docker Compose environment that runs a vulnerable Ghost CMS 6.18.0 instance with MySQL 8.0, and optionally a fixed Ghost 6.19.1 instance, to demonstrate and validate CVE-2026-26980, an unauthenticated SQL injection in the Content API.
2026/CVE-2026-26980/dinosn-ghost-cve-2026-26980-194f7c1/docker-compose.yml:1-882026/CVE-2026-26980/dinosn-ghost-cve-2026-26980-194f7c1/README.md:1-239The README explicitly describes the environment as a 'Ghost CMS Vulnerability Lab' for CVE-2026-26980, provides a vulnerable Ghost version, a fixed version for validation, and includes a full exploit script. The Docker Compose file defines services for both vulnerable and fixed targets.
2026/CVE-2026-26980/dinosn-ghost-cve-2026-26980-194f7c1/README.md:12026/CVE-2026-26980/dinosn-ghost-cve-2026-26980-194f7c1/README.md:3-72026/CVE-2026-26980/dinosn-ghost-cve-2026-26980-194f7c1/docker-compose.yml:1-88Runs Ghost CMS 6.18.0, which is within the affected range for CVE-2026-26980. Exposes port 2368 on the host. Connects to the db-vuln MySQL service.
2026/CVE-2026-26980/dinosn-ghost-cve-2026-26980-194f7c1/docker-compose.yml:11-26MySQL 8.0 database service for the vulnerable Ghost instance. Stores data in a named volume db_vuln_data.
2026/CVE-2026-26980/dinosn-ghost-cve-2026-26980-194f7c1/docker-compose.yml:28-42Runs Ghost CMS 6.19.1, the patched version. Exposes port 2369 on the host. Only started with the 'fixed' profile. Connects to the db-fixed MySQL service.
2026/CVE-2026-26980/dinosn-ghost-cve-2026-26980-194f7c1/docker-compose.yml:44-62MySQL 8.0 database service for the fixed Ghost instance. Stores data in a named volume db_fixed_data. Only started with the 'fixed' profile.
2026/CVE-2026-26980/dinosn-ghost-cve-2026-26980-194f7c1/docker-compose.yml:64-78Python script that automates setup, verification, and data extraction for CVE-2026-26980. It uses an error-based boolean blind SQL injection technique against the Ghost Content API.
2026/CVE-2026-26980/dinosn-ghost-cve-2026-26980-194f7c1/exploit.py:1-417Bash script that starts both vulnerable and fixed services, runs the exploit against each, and optionally tears down the environment.
2026/CVE-2026-26980/dinosn-ghost-cve-2026-26980-194f7c1/validate.sh:1-40Supported by supplied evidence
The entire lab is built around CVE-2026-26980. The README describes the vulnerability, affected versions, and fix. The Docker Compose file provides a vulnerable Ghost 6.18.0 instance. The exploit script targets the described SQL injection in the Content API slug filter ordering.
2026/CVE-2026-26980/dinosn-ghost-cve-2026-26980-194f7c1/README.md:12026/CVE-2026-26980/dinosn-ghost-cve-2026-26980-194f7c1/README.md:3-72026/CVE-2026-26980/dinosn-ghost-cve-2026-26980-194f7c1/README.md:19-272026/CVE-2026-26980/dinosn-ghost-cve-2026-26980-194f7c1/docker-compose.yml:11-262026/CVE-2026-26980/dinosn-ghost-cve-2026-26980-194f7c1/exploit.py:1-4172026/CVE-2026-26980/dinosn-ghost-cve-2026-26980-194f7c1/README.md:113-1142026/CVE-2026-26980/dinosn-ghost-cve-2026-26980-194f7c1/README.md:1152026/CVE-2026-26980/dinosn-ghost-cve-2026-26980-194f7c1/requirements.txt:12026/CVE-2026-26980/dinosn-ghost-cve-2026-26980-194f7c1/README.md:123-1242026/CVE-2026-26980/dinosn-ghost-cve-2026-26980-194f7c1/README.md:122-1232026/CVE-2026-26980/dinosn-ghost-cve-2026-26980-194f7c1/README.md:123-1242026/CVE-2026-26980/dinosn-ghost-cve-2026-26980-194f7c1/README.md:124-1252026/CVE-2026-26980/dinosn-ghost-cve-2026-26980-194f7c1/exploit.py:1-4172026/CVE-2026-26980/dinosn-ghost-cve-2026-26980-194f7c1/README.md:129-1332026/CVE-2026-26980/dinosn-ghost-cve-2026-26980-194f7c1/README.md:140-141All visible behavior is directed at the lab's own vulnerable Ghost target. The exploit script extracts data from the lab's database, which is expected for a vulnerability demonstration. There is no evidence of host escape, external connections, persistence, credential theft outside the lab, or destructive actions. Port mappings and volume mounts are standard for a lab environment.
2026/CVE-2026-26980/dinosn-ghost-cve-2026-26980-194f7c1/docker-compose.yml:1-882026/CVE-2026-26980/dinosn-ghost-cve-2026-26980-194f7c1/exploit.py:1-4172026/CVE-2026-26980/dinosn-ghost-cve-2026-26980-194f7c1/validate.sh:1-40This review is limited to the supplied lab evidence packet. It does not assert that the environment runs, reproduces a vulnerability, or is safe to execute. Contract: eip-docker-lab-analysis-v1.