CVE-2026-26980 Ghost CMS SQL Injection PoC
Этот репозиторий содержит PoC-инструмент на Go для демонстрации и проверки уязвимости SQL-инъекции в Content API Ghost CMS, описанной в CVE-2026-26980. Реализация основана на алгоритме эксплуатации, реализованном в основном Go-файле, и предназначена исключительно для авторизованных исследований безопасности и тестирования.
Обзор
PoC нацелен на экземпляры Ghost CMS, подверженные уязвимости сортировки фильтра slug в Content API. Инструмент может:
- проверить, является ли цель уязвимой к SQL-инъекции;
- извлечь ключ Content API (если возможно);
- перечислить якорь slug;
- извлечь адрес электронной почты администратора;
- опционально извлечь хэш пароля администратора и секрет API администратора;
- проверить, что исправленная цель больше не уязвима.
Затронутые версии
Реализация конкретно ссылается на следующий контекст рекомендаций:
- Затронутые версии: Ghost CMS 3.24.0 – 6.19.0
- Исправленная версия: Ghost CMS 6.19.1
- CVE: CVE-2026-26980
- CWE: CWE-89
- Рекомендация: GHSA-w52v-v783-gw97
Структура проекта
- ghost_sqli_cms.go: основная реализация эксплойта и CLI на Go
- ghost_sqli/: вспомогательные ресурсы или связанные файлы
- images/: скриншоты или справочные материалы
- go.mod: определение модуля Go
Требования
- Go 1.26.4 или совместимая более новая версия
- Сетевой доступ к целевому экземпляру Ghost CMS
- Цель, которая либо уязвима, либо предназначена для проверки
Клонирование и установка
git clone https://github.com/gagaltotal/CVE-2026-26980-Ghost-CMS-Api
cd CVE-2026-26980-Ghost-CMS-Api
go mod init CVE-2026-26980-Ghost-CMS-Api
go mod tidy
Сборка инструмента
Из корня проекта соберите бинарный файл с помощью:
go build -o ghost-sqli ghost_sqli_cms.go
ИЛИ
go run ghost_sqli_cms.go
Использование

Использовать справку

Базовая эксплуатация

./ghost-sqli --url http://target.example:2368
Извлечение хэша пароля и секрета API
./ghost-sqli --url http://target.example:2368 --extract-password --extract-api-key
Проверка, что исправленный экземпляр защищён
./ghost-sqli --url http://target.example:2368 --validate-fix
Использование существующего ключа Content API
./ghost-sqli --url http://target.example:2368 --content-key "your-content-api-key"
Включение подробного вывода
./ghost-sqli --url http://target.example:2368 -v
Параметры командной строки
- --url : базовый URL целевого Ghost CMS (обязательно)
- --validate-fix: проверить, что цель больше не уязвима
- --extract-password: также извлечь хэш bcrypt администратора
- --extract-api-key: также извлечь секрет API администратора
- --content-key : пропустить настройку и использовать предоставленный ключ Content API
- -v, --verbose: включить отладочный вывод
- -h, --help: показать справку
Уведомление о безопасности
Этот проект предоставляется исключительно в образовательных целях и для авторизованных оценок безопасности. Используйте его только в отношении систем, которыми вы владеете, на тестирование которых у вас есть разрешение или которые вы оцениваете в контролируемой среде. Несанкционированный доступ или эксплуатация сторонних систем незаконны и могут нарушать применимые законы.
Примечания
- Инструмент выполняет шаги настройки и аутентификации для целевого экземпляра, когда это возможно.
- Некоторые цели могут требовать ручной корректировки в зависимости от версии Ghost CMS и конфигурации развёртывания.
- Результаты могут различаться в зависимости от целевой среды, поведения ответов и того, установлено ли исправление уязвимости.
Ссылки
- Рекомендации по безопасности Ghost CMS
- CVE-2026-26980
- GHSA-w52v-v783-gw97