Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-73847-emlog-PoC — CVE-2026-73847のPoC - emlog AIアシスタントのCSRFからSQL実行による管理者乗っ取り (CVSS 6.8) | Kitploit
ツール/GitHubGitHub/squeeze440/cve-2026-73847-emlog-poc
脆弱性分析エクスプロイトウェブアプリケーション悪用ウェブセキュリティペネトレーションテスト
GitHubsqueeze440/cve-2026-73847-emlog-poc

CVE-2026-73847-emlog-PoC

CVE-2026-73847のPoC - emlog AIアシスタントのCSRFからSQL実行による管理者乗っ取り (CVSS 6.8)

リポジトリを見る
1023日前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-73847 — emlog AI アシスタント CSRF → SQL 実行 → 管理者乗っ取り

emlog pro の AI アシスタントの execute_tool エンドポイントにおける CSRF 保護の欠如に対する PoC です。この欠陥により、攻撃者は管理者の認証済みセッションに便乗して、サイトのデータベースに対して任意の SQL を実行できます — 管理者アカウントの完全な乗っ取りも含みます。

CVECVE-2026-73847
CNAGitHub
アドバイザリGHSA-v6wr-4x55-7qp5
CVSS 3.16.8 中 — AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:N
CWECWE-352 (CSRF), CWE-1275 (SameSite 属性の不適切な設定), CWE-798 (ハードコードされた書き込み確認文字列)
影響を受けるバージョンemlog pro 2.6.23 まで
報告者Dostxodjayev Abdullox (@squeeze440) — CVE レコードの修正待ち。以下を参照

根本原因

emlog pro の管理パネルには、POST /admin/ai.php?action=execute_tool 経由で管理者に代わって SQL を実行できる AI アシスタントが同梱されています。この 1 つのエンドポイントに複数の問題が重なっています。

  1. CSRF トークンがない。 admin/ 内の他の破壊的操作を伴うファイルはすべて、最初に LoginAuth::checkToken() を呼び出しています(例: admin/media.php:140)。しかし admin/ai.php は呼び出していません。
  2. 認証はセッション Cookie のみ(admin/ai.php:152、User::isAdmin())— Origin/Referer のチェックはありません。
  3. 書き込み確認のゲートはハードコードされた公開文字列である。 include/service/ai.php:594: if (trim($confirm_code) !== 'confirm')。偽造リクエストは confirm_code=confirm を送信するだけです。
  4. 読み取り専用 SQL には確認がまったく不要(include/service/ai.php:578,589)— 認証されただけのリクエストで任意のテーブルを SELECT できます。
  5. 書き込み保護されているのは blog テーブルだけ(include/service/ai.php:591)— user を含む他のすべてのテーブルは完全に書き込み可能です。
  6. パスワードの秘匿化はエイリアスで回避可能。 秘匿化は出力列名がリテラルで password の場合のみ一致します(include/service/ai.php:822-828)— SELECT password AS pwd_hash FROM user は生のハッシュを返します。
  7. 認証 Cookie に SameSite 属性がない(include/lib/loginauth.php:99)。この攻撃と確実なクロスサイト配信を隔てる唯一のものは、Chrome のデフォルトの "Lax+POST" 猶予ウィンドウ(ログイン後およそ最初の 2 分間)です。

連鎖させると:管理者のブラウザからの 1 つの偽造リクエストで、すべてのテーブル(パスワードハッシュを含む)を読み取り、blog を除くすべてのテーブル(user.password の直接上書きを含む)に書き込むことができます。

PoC

パート 1 — 直接的な影響チェーン(poc_raw_impact.sh)

SQL/認証バイパスのプリミティブを、CSRF 配信の問題から分離して検証します。自分が管理するローカルインスタンスに対して実行します:

root@kitploit:~
./poc_raw_impact.sh http://TARGET admin '<adminpass>'

このスクリプトは admin としてログインし、列エイリアスのバイパスでパスワードハッシュを取得し、user テーブル経由で管理者パスワードを直接上書きしてから、新しい Cookie ジャーで攻撃者が選択したパスワードを使って再度ログインします。これにより、認証済みリクエストが 1 回エンドポイントに到達すれば、アカウントの完全な乗っ取りが可能であることを証明します。

SQL で上書きされたパスワードで攻撃者が admin としてログインし、新しく分離されたセッションで認証済みダッシュボードに到達した様子

パート 2 — 実際のクロスサイト CSRF 配信(poc_csrf.html)

SameSite の問題を推測ではなく実際のブラウザで検証します。ターゲットとは異なるオリジン(別の IP で十分です — Chrome は異なるリテラル IP を別のサイトとして扱います)から poc_csrf.html を配信し、ログイン後およそ 2 分以内にログイン済みの管理者に開いてもらいます:

root@kitploit:~
python3 -m http.server 8888
# then point poc_csrf.html's form action at your target and get it opened

フォームは読み込み時に自動送信され、confirm_code=confirm を付けた偽造 query_database 呼び出しをクロスサイトで POST します。

emlog 管理ログインページ ログイン後の認証済み管理者ダッシュボード 別オリジンから配信された攻撃者ページのソース クロスサイト POST が生の JSON 成功レスポンスを受信した様子 注入された CSRF マーカー行が被害者自身の管理画面のリンクパネルに表示された様子

実機で検証済み:偽造クロスサイト POST は管理者の実際の認証 Cookie を保持し(sec-fetch-site: cross-site、Cookie 付き)、200 {"code":0,"msg":"ok",...} を返し、注入された行は後続の認証済み読み取りで存在が確認されました。同じリクエストを約 48 分後に同じ(古くなった)Cookie ジャーに対して繰り返すと失敗しました — Cookie は付与されず、サーバーは未認証リダイレクトを返しました。これにより、約 2 分間の Lax+POST ウィンドウが実際の制約であることが確認できます(AC:H に反映)。

影響

  • データベース全体の読み取り:emlog_options 内のパスワードハッシュやシークレット(SMTP 資格情報、API キーなど)を含む、すべてのテーブル/列。
  • blog を除くすべてのテーブル(user を含む)へのデータベース全体の書き込み — ロール/パスワード/メールの上書きが可能で、アカウント乗っ取りとしてエンドツーエンドで実証済み。
  • role=admin のアカウントに限定;writer/editor は User::checkRolePermission() でブロックされます。下位ロールからの権限昇格ではありません — ログイン済み管理者による悪意のあるリンクの 1 クリックを、完全かつ静かなサイト乗っ取りに変えます。

修正

execute_tool に LoginAuth::checkToken() を追加し、認証 Cookie に SameSite=Strict を設定し、静的 confirm_code 文字列をセッションごとの使い捨てトークンに置き換えてください。完全な修正の詳細はアドバイザリに記載されています。

開示のタイムライン

  • 2026-07-31 — emlog 自身の SECURITY.md に従い、GitHub Security Advisories 経由で報告。
  • 2026-08-01 — メンテナーがアドバイザリを公開し、CVE を申請。
  • 2026-08-16 — GitHub(CNA)が CVE-2026-73847 を割り当て。

クレジットに関する注記: CNA としての GitHub は、GHSA 自体が報告者をクレジットし受理していたにもかかわらず、credits エントリなしで CVE レコードを公開しました。2026-08-16 に [email protected] へ訂正リクエストを送信しました。レコードが訂正された場合は、この README を更新します。

免責事項

アドバイザリが公開され CVE が割り当てられた後に、防御/教育目的で公開しています。所有していない、または明示的にテストを許可されていない emlog インスタンスに対しては実行しないでください。

ツールをダウンロード