Krayin CRM v2.1.5において、認証済みユーザーが任意のPHPファイルをアップロードし、サーバー上で実行できる可能性のあるリモートコード実行(RCE)の脆弱性が確認されました。
この脆弱性は、メール作成機能における添付ファイルの検証不備に起因します。攻撃者がKrayin CRMにログインできる状態で、メール作成画面から悪意のあるPHPファイルを添付すると、そのファイルがWebからアクセス可能なディレクトリに保存される可能性があります。
その結果、攻撃者がアップロードされたファイルのURLにアクセスすることで、PHPコードがサーバー上で実行され、サーバーの乗っ取りや情報漏えいなどの重大な被害につながるおそれがあります。
脆弱性の概要
| 項目 | 内容 |
|---|---|
| CVE | CVE-2026-36340 |
| 深刻度 | Critical |
| 影響を受ける製品 | Krayin CRM v2.1.5 |
| 脆弱性の種類 | リモートコード実行(RCE) |
| 認証の要否 | 必要 |
| 影響を受ける機能 | Email → Compose |
| 影響を受けるエンドポイント | POST /admin/mail/create |
本脆弱性は、Krayin CRMの「Email → Compose」機能に存在します。
メールにファイルを添付する際、サーバー側でファイル拡張子やMIMEタイプ、実行可能ファイルの制限が十分に行われていないため、.php などのファイルが添付ファイルとして受け付けられる可能性があります。
さらに、アップロードされたファイルがWebサーバーからアクセス可能な場所に保存されるため、攻撃者は保存先URLへアクセスするだけで、アップロードしたPHPコードを実行できる可能性があります。
技術的な詳細
影響を受ける処理は、メール作成時の添付ファイルアップロード機能です。
対象となるエンドポイントは以下です。
POST /admin/mail/create
メールにファイルを添付する際、バックエンド側で以下のような検証や制御が十分に行われていないことが問題となります。
- ファイル拡張子の検証
- MIMEタイプの確認
- 実行可能ファイルのアップロード制限
- PHPコードを含むファイルの拒否
- Webから直接アクセスできない場所への保存
- アップロード先ディレクトリでのスクリプト実行制限
このため、アプリケーションが .php ファイルを受け付け、以下のような公開ディレクトリ配下に保存してしまう可能性があります。
/public/storage/emails/<mail_id>/<filename>.php
このディレクトリがWebサーバーから配信される設定になっている場合、攻撃者はアップロードされたPHPファイルへ直接アクセスすることで、サーバー上でコードを実行できる可能性があります。
検証手順(PoC)
以下の検証内容は、許可された検証環境でのみ実施されるべきものです。第三者のシステムに対して無断で検証を行うことは、不正アクセスに該当する可能性があります。
本脆弱性の検証では、Krayin CRMにログインした状態でメール作成機能にアクセスし、添付ファイルとしてPHPファイルをアップロードします。
送信処理後、アップロードされたファイルは以下のようなパスに保存されます。
/storage/emails/<id>/test.php
その後、保存されたファイルのURLにアクセスすると、アップロードされたPHPコードがサーバー上で実行される可能性があります。
リクエスト
以下は、メール作成機能における添付ファイルアップロード処理のリクエスト例です。

影響を受けるエンドポイントは以下です。
POST /admin/mail/create
このリクエストには、添付ファイルとしてPHPファイルが含まれています。本来であれば、この段階でファイル拡張子やMIMEタイプ、実行可能ファイルでないことをサーバー側で検証し、不適切なファイルは拒否する必要があります。
しかし、該当バージョンではこの検証が不十分であるため、PHPファイルが添付ファイルとして受け付けられる可能性があります。
レスポンス
サーバーはアップロードされたファイルを保存し、Webからアクセス可能なファイルパスを返します。

アップロードされたファイルは、以下のようなパスに保存されます。
/storage/emails/<id>/test.php
この保存先がWebから直接アクセス可能な状態になっている場合、攻撃者はブラウザから該当URLにアクセスできます。
添付ファイルの保存先が公開ディレクトリ配下であり、かつPHPの実行が禁止されていない場合、単なるファイルアップロードの問題ではなく、リモートコード実行につながる重大な脆弱性となります。
リモートコード実行の確認
PHPファイルがアップロードされた後、攻撃者はブラウザから該当ファイルのURLへ直接アクセスできます。

この結果、アップロードされたPHPコードがサーバー上で実行され、リモートコード実行が成立する可能性があります。
リモートコード実行が成立した場合、攻撃者はWebサーバー上で任意の処理を実行できる可能性があります。これは、CRMシステム単体の侵害にとどまらず、サーバー全体や内部ネットワークへの侵入拡大につながるおそれがあります。
検証動画(PoC)
以下は、本脆弱性の検証動画です。
検証動画やPoC情報は、防御・修正・再現確認のために利用されるべきものです。許可のない環境での検証や悪用は行わないでください。
想定される影響
本脆弱性が悪用された場合、攻撃者はKrayin CRMが稼働しているサーバー上で任意のコードを実行できる可能性があります。
想定される主な影響は以下のとおりです。
- 任意のOSコマンド実行
- Webシェルのアップロードおよび実行
- サーバー上のファイル閲覧、改ざん、削除
- データベース情報の窃取
- 顧客情報や営業情報の漏えい
- CRMサーバーの完全な乗っ取り
- 内部ネットワークへの侵入拡大
CRMには、顧客情報、商談情報、担当者情報、メール履歴など、企業活動に関わる重要な情報が集約されます。そのため、CRMサーバーが侵害された場合、情報漏えいだけでなく、業務停止や取引先への影響にもつながる可能性があります。
攻撃の成立条件
本脆弱性の悪用には、Krayin CRMへのログインが必要です。つまり、認証なしで外部から直接悪用できる脆弱性ではありません。
ただし、認証が必要であることは、リスクが低いことを意味しません。
たとえば、以下のような状況では悪用リスクが高まります。
- フィッシングによりアカウント情報が窃取されている
- 退職者や外部委託先のアカウントが残っている
- 弱いパスワードや使い回しパスワードが利用されている
- 多要素認証が導入されていない
- CRMの管理画面がインターネットからアクセス可能になっている
- 権限の低いユーザーでもメール作成やファイル添付が可能になっている
特にCRMは、社内外の関係者が利用するケースもあるため、認証済みユーザーによる攻撃は現実的なリスクとして考える必要があります。
推奨される対策
Krayin CRMを利用している場合は、まず利用中のバージョンを確認し、影響を受けるバージョンでないかを確認してください。
Krayin CRM v2.1.6のリリースが公開されているため、対象環境では修正版へのアップデートを検討する必要があります。
あわせて、以下の対策を実施することが推奨されます。
1. アップロード可能な拡張子を制限する
添付ファイルとして許可する拡張子を明確に定義し、不要なファイル形式は拒否してください。
特に、以下のような実行可能ファイルはアップロードできないように制限する必要があります。
.php
.phtml
.phar
.cgi
.pl
.sh
2. MIMEタイプをサーバー側で検証する
ファイルアップロード機能では、クライアント側のチェックだけでは不十分です。
アップロードされたファイルは、必ずサーバー側でMIMEタイプやファイル内容を検証してください。拡張子だけでなく、実際のファイル内容を確認することが重要です。
3. アップロードファイルを公開ディレクトリに保存しない
添付ファイルは、Webから直接アクセスできるディレクトリではなく、アプリケーションを経由してのみ取得できる場所に保存することが望まれます。
公開ディレクトリ配下に保存する必要がある場合でも、スクリプト実行を禁止し、静的ファイルとしてのみ扱う設定が必要です。
4. アップロード先でスクリプトを実行できないようにする
Webサーバー側の設定で、アップロードディレクトリ内のPHP実行を禁止してください。
ApacheやNginxの設定により、アップロード領域ではPHPなどのスクリプトが実行されない構成にすることが重要です。
5. 安全なファイル名に変換する
アップロードされたファイル名をそのまま保存するのではなく、サーバー側で生成した安全なファイル名に変換してください。
ファイル名に含まれる特殊文字、パス区切り文字、スクリプト実行につながる可能性のある文字列は、適切に除去または変換する必要があります。
6. 既存のアップロードファイルを確認する
すでにKrayin CRMを運用している場合は、過去にアップロードされた添付ファイルも確認してください。
特に、以下のようなディレクトリ配下に不審なファイルが存在しないかを確認する必要があります。
/public/storage/emails/
.php、.phtml、.phar などの実行可能ファイルが存在する場合は、速やかに隔離し、アクセスログや操作ログを確認してください。
7. 権限管理を見直す
本脆弱性は認証済みユーザーによって悪用される可能性があるため、アカウント管理も重要です。
以下のような点を確認してください。
- 不要なユーザーアカウントを削除する
- 管理者権限を必要最小限にする
- 多要素認証を導入する
- パスワードポリシーを強化する
- ログイン履歴を確認する
- 外部委託先や一時利用アカウントを棚卸しする
管理者が確認すべきポイント
Krayin CRMを利用している管理者は、以下を優先的に確認してください。
- Krayin CRMのバージョンがv2.1.5ではないか
- 修正版へのアップデートが可能か
/public/storage/emails/配下に不審なPHPファイルが存在しないか- メール添付機能で実行可能ファイルをアップロードできないよう制限されているか
- アップロードディレクトリでPHPが実行されない設定になっているか
- CRM管理画面が不要にインターネット公開されていないか
- 不要なユーザーや過剰権限のアカウントが残っていないか
- アクセスログに不審なファイルアクセスがないか
まとめ
CVE-2026-36340は、Krayin CRM v2.1.5のメール作成機能に存在する、リモートコード実行の脆弱性です。
認証済みユーザーが悪意のあるPHPファイルを添付ファイルとしてアップロードし、そのファイルがWebからアクセス可能な場所に保存されることで、外部からアクセスしてコードを実行できる可能性があります。
CRMは顧客情報や営業情報を扱う重要なシステムです。侵害された場合、情報漏えい、業務停止、取引先への影響など、広範囲に被害が及ぶおそれがあります。
対象バージョンを利用している場合は、速やかにバージョン確認とアップデートを行い、あわせてアップロード機能の制限、公開ディレクトリでのスクリプト実行禁止、既存アップロードファイルの確認を実施することが重要です。
参考情報
- GitHub Security Advisory:
https://github.com/krayin/laravel-crm/security/advisories/GHSA-4x7x-c646-39jw - Video PoC:
https://drive.google.com/file/d/1yBdvbrXGf9fsFckmK9zTe2v8_vDtdicH/view?usp=drive_web https://cyber.spool.co.jp/wp-content/uploads/2026/04/RCE-krayin.mp4 - Krayin CRM v2.1.6 Release:
https://github.com/krayin/laravel-crm/releases/tag/v2.1.6 - NVD Reference:
https://nvd.nist.gov/vuln/detail/CVE-2024-38529





