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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-38526-KrayinCRM — 認証済みの任意ファイルアップロードによるリモートコード実行 Webkul Krayin CRM 2.2.x における CVE-2026-38526 の技術分析と制御された再現。 | Kitploit
ツール/GitHubGitHub/ish3ng0m4/cve-2026-38526-krayincrm
脆弱性分析エクスプロイトウェブアプリケーション悪用ウェブセキュリティペネトレーションテスト論文と研究学習と教育ペイロード開発
GitHub
ish3ng0m4/cve-2026-38526-krayincrm

CVE-2026-38526-KrayinCRM

認証済みの任意ファイルアップロードによるリモートコード実行 Webkul Krayin CRM 2.2.x における CVE-2026-38526 の技術分析と制御された再現。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

CVE-2026-38526 KrayinCRM

認証済みの任意ファイルアップロードによるリモートコード実行 Webkul Krayin CRM 2.2.x における CVE-2026-38526 の技術分析と制御された再現。

概要

CVE-2026-38526 は、Webkul Krayin CRM 2.2.x に影響を与える認証済みの任意ファイルアップロード脆弱性です。
この脆弱な機能は、アプリケーションの TinyMCE アップロードエンドポイントを通じて公開されています:

POST /admin/tinymce/upload

アプリケーションは、アップロードできるファイルの種類を十分に制限していません。認証済みユーザーは、.php などのサーバー側で実行可能な拡張子を持つファイルを送信できます。アプリケーションはアップロードされたファイルを保存し、そのアクセス可能な URL を返します。

デプロイ環境がアップロード場所からの PHP 実行を許可している場合、アップロードされたファイルはその後 Web サーバー経由でリクエストでき、その結果、Web アプリケーションプロセスのコンテキストでリモートコード実行が発生します。
公開されている CVE レコードでは、この脆弱性は CVSS 3.1: 9.9 (Critical) と評価されています。

研究の背景

このリポジトリには、この脆弱性に関する私自身の技術分析と制御された再現が含まれています。

この脆弱性はすでに CVE-2026-38526 として公開されています。本研究は、この脆弱性の発見を主張するものではありません。本研究の目的は、脆弱な実装を理解し、制御された環境で悪用経路を再現し、ファイルアップロードの問題がリモートコード実行に変わる条件を検証することでした。

この脆弱性は Hack The Box GCSB 2026 Nexus machine でも使用されており、この問題を研究するための実践的な環境が提供されました。

影響を受けるソフトウェア

製品: Webkul Krayin CRM 影響を受けるバージョン: 2.2.x 脆弱性: 任意ファイルアップロード 結果としての影響: リモートコード実行 認証: 必要 攻撃ベクトル: ネットワーク CWE: CWE-434 — 危険な種類のファイルの無制限アップロード CVSS: 9.9 Critical CVE: CVE-2026-38526

脆弱なエンドポイント

この脆弱な機能は以下によって処理されます:

/admin/tinymce/upload

このエンドポイントは、file パラメータを通じてアップロードされたファイルを受け付けます。 関連するアプリケーションロジックは、保存されるファイル名を元のファイル名から導出し、その元の拡張子を保持します。


この動作が重要なのは、アプリケーションが単にアップロードされたオブジェクトを受け入れているのではなく、攻撃者が制御する実行可能な拡張子を保持し、その結果生じたオブジェクトをアプリケーションのストレージ機構を通じてアクセス可能にしているためです。

根本原因

主な問題は、アップロードされたファイルに対するサーバー側の検証が不十分であることです。

アプリケーションは、保存されるファイル名を構築する際に、クライアントが提供した元の拡張子を使用します。実行可能なファイルタイプがストレージ層に到達するのを防ぐ、十分に制限的な許可リストが存在しません。

関連するフローは次のとおりです

生成されたファイル名を使用しても、根本的な問題は解決されません。

例えば、shell.php を .php のような生成されたファイル名に変更しても、サーバーが .php ファイルを実行可能な PHP コードとして解釈し続ける限り、アップロードされたファイルが安全になるわけではありません。

アップロードが RCE になり得る理由

無制限のアップロードは、自動的にリモートコード実行を意味するわけではありません。 実行経路は、アップロードされたファイルに対するサーバーの処理に依存します。 脆弱なデプロイシナリオでは、チェーンは次のようになります

したがって、RCE の影響は次の組み合わせから生じます:

  1. アップロード検証の不備
  2. 実行可能な拡張子の保持
  3. Web からアクセス可能なストレージ
  4. その場所での PHP 実行が許可されていること

アップロードディレクトリに対して PHP 実行が無効化されている場合、根本的な任意ファイルアップロードの弱点は残るものの、直接的な RCE 経路は防止できます。

実行方法

  1. ダウンロード

wget:

wget https://raw.githubusercontent.com/Ish3ng0m4/CVE-2026-38526-KrayinCRM/main/poc/upload.py
wget https://raw.githubusercontent.com/Ish3ng0m4/CVE-2026-38526-KrayinCRM/main/poc/marker.php

curl:

curl -LO https://raw.githubusercontent.com/Ish3ng0m4/CVE-2026-38526-KrayinCRM/main/poc/upload.py
curl -LO https://raw.githubusercontent.com/Ish3ng0m4/CVE-2026-38526-KrayinCRM/main/poc/marker.php

2. ファイルを以下に配置します

    poc/
    ├── upload.py
    └── marker.php

3. Python環境を作成し、依存関係をインストールします

    python3 -m venv .venv
    source .venv/bin/activate
    pip install requests

4. PoCを実行可能にします

    chmod +x poc/upload.py

6. 実行します

    python3 poc/upload.py \
      --url http://[Lab_IP:PORT] \
      --email [email protected] \
      --password 'YOUR_PASSWORD'

悪用分析

この悪用には、脆弱な機能に到達できる認証済みアカウントが必要です。

概要は以下のとおりです:

  1. Krayin CRMに認証する
  2. 必要なアプリケーションセッションコンテキストを取得する
  3. /admin/tinymce/upload にアクセスする
  4. 細工したファイルを送信する
  5. アプリケーションが実行可能な拡張子を受け入れる
  6. ファイルがTinyMCEのストレージ場所に書き込まれる
  7. アプリケーションが結果のファイルURLを返す
  8. アップロードされたファイルをリクエストする
  9. PHPがサーバーによって解釈される
  10. コマンドがWebアプリケーションの権限で実行される

結果として得られる実行コンテキストは、基盤となるデプロイメントによって決まります。一般的なLinuxデプロイメントでは、これは次のようなWebサーバーサービスのアカウントになる場合があります:

www-data

これは自動的にオペレーティングシステムのroot権限を提供するものではありません。さらなる影響は、侵害された環境の権限と設定に依存します。

ソースコード分析

脆弱な動作は、3つの重要な操作に要約できます。

  1. アップロードされたファイルを取得する

     $file = request()->file('file');
    

アプリケーションはクライアントから提供されたファイルを受け取ります。

  1. クライアントが制御する拡張子を保持する

     $filename = md5($file->getClientOriginalName().time())
                 .'.'.$file->getClientOriginalExtension();
    

ファイル名自体は変更されますが、元の拡張子は保持されます。 これは重要な区別です。ファイル名のランダム化はファイルタイプの検証ではありません。

  1. ファイルを保存して公開する

      $path = $file->storeAs($this->storagePath, $filename);
     return [
         'file' => $path,
         'file_name' => $file->getClientOriginalName(),
         'file_url' => Storage::url($path),
     ];
    

アプリケーションはファイルを保存し、そのURLをクライアントに提供します。

影響

悪用に成功すると、攻撃者はWebアプリケーションの権限でコードを実行できる可能性があります。

デプロイメントによっては、これにより攻撃者は以下を行える可能性があります:
アプリケーションファイルを読み取る
アプリケーション設定にアクセスする
データベースの認証情報やその他のシークレットを取得する
アプリケーションデータを変更する
追加の悪意のあるコードを展開する
侵害されたホストからアクセス可能な他のシステムへピボットする
さらなる権限昇格を試みる

実際の影響は、侵害されたアプリケーションプロセスの権限と基盤システムのセキュリティ設定に依存します。

緩和策

安全な実装では、単一の拡張子チェックに依存するのではなく、複数の保護層を使用する必要があります。

1. ファイルタイプの許可リスト

明示的に必要なファイルタイプのみを受け入れるべきです。 例えば:

.jpg
.jpeg
.png
.gif
.webp

正確な許可リストは、アプリケーションの正当な要件を反映する必要があります。

2. サーバー側で検証する

以下だけに依存しないでください:

  1. 元のファイル名
  2. ファイル拡張子
  3. クライアントが提供するMIMEタイプ サーバーはアップロードされたコンテンツを独立して検証する必要があります。

3. 安全なファイル名を生成する

アップロードされたファイルにはサーバーが生成した名前を付与すべきであり、攻撃者が制御する実行可能な拡張子を保持すべきではありません。

4. スクリプトの実行を防止する

ユーザーがアップロードしたコンテンツを格納するディレクトリでは、PHP やその他のサーバーサイドインタープリタを無効化すべきです。 これにより、アップロード検証の制御がバイパスされた場合でも、追加のセキュリティ境界が提供されます。

5. アップロードを実行可能なアプリケーションコードから分離する

可能な場合、アップロードされたコンテンツは実行可能な Web ルートの外に保存し、制御されたメカニズムを通じて配信すべきです。

6. アップロード権限を制限する

アップロード機能を真に必要とする認証済みユーザーとロールのみが、エンドポイントにアクセスできるようにすべきです。

帰属

CVE-2026-38526 は本研究より前に公開されていました。

このリポジトリは、私による独立した技術分析と、この脆弱性の制御された再現を表すものです。独自の発見や CVE の割り当てを主張するものではありません。

研究者: Gabriel D. Ishengoma
フォーカス: 脆弱性研究 / オフェンシブセキュリティ

参考文献

CVE-2026-38526 MITRE CVE レコード: https://cve.org/CVERecord?id=CVE-2026-38526
NVD CVE-2026-38526: https://nvd.nist.gov/vuln/detail/CVE-2026-38526
Webkul Krayin CRM アップストリームソースコード: https://github.com/krayin/laravel-crm
CVE-2026-38526 の公開セキュリティアドバイザリ: https://github.com/advisories/GHSA-7xqf-8v3m-6q9w
Hack The Box GCSB 2026 Nexus: https://app.hackthebox.com/machines/Nexus
Krayin CRM 2.2.x の独立した技術分析: https://github.com/Ish3ng0m4

ツールをダウンロード