🔍 CVE-2026-46624

9.9
CVSS Score
CRITICAL
2026-05-26
2026-07-24 11:10
✅ 완료

🇰🇷 한글 설명

Twenty CRM 1.7.7부터 1.16.7 버전에서 REST API의 groupBy 엔드포인트 timeZone 파라미터가 적절히 검증되지 않아 SQL 인젝션이 가능합니다. PostgreSQL의 COPY TO PROGRAM 기능을 악용하면 데이터베이스 관리자 권한으로 서버에서 임의의 OS 명령을 실행할 수 있는 심각한 원격 코드 실행 취약점입니다.

💡 쉬운 설명

Twenty CRM에서 특수한 요청을 보내면 서버에서 자유롭게 명령을 실행할 수 있는 심각한 보안 결함이 있습니다. 사용자 입력이 데이터베이스 쿼리에 사용되기 전에 제대로 확인되지 않기 때문에 발생합니다.

🇺🇸 원문 (English)

Twenty is an open source CRM. From 1.7.7 through 1.16.7, a critical Remote Code Execution (RCE) vulnerability exists in Twenty CRM via a chained SQL Injection and PostgreSQL COPY TO PROGRAM attack. If Postgres user is a super user then any authenticated user can execute arbitrary OS commands on the database server by injecting SQL through the unsanitized timeZone parameter in the REST API groupBy endpoint. The timeZone field within the group_by query parameter is directly interpolated into a raw SQL expression using JavaScript template literals without any parameterization, validation, or escaping. This affects engine/api/graphql/graphql-query-runner/group-by/resolvers/utils/get-group-by-expression.util.ts.

📍 영향받는 시스템

Twenty CRM 버전 1.7.7 ~ 1.16.7 (PostgreSQL 슈퍼유저 권한 필요)

⚔️ 공격 벡터

인증된 사용자가 groupBy 엔드포인트의 timeZone 파라미터에 SQL 인젝션 코드를 입력하여 PostgreSQL COPY TO PROGRAM으로 명령 실행

🛡️ 대응 방법

버전 1.16.8 이상으로 업그레이드하거나 get-group-by-expression.util.ts의 timeZone 입력을 매개변수화 및 이스케이프 처리

🔧 검증 코드

취약한 버전(1.7.7~1.16.7) 정보가 출력되면 시스템이 취약하며, 출력이 없으면 안전하거나 다른 경로에 설치되어 있으니 설치 디렉토리를 확인하세요.

Shell / Script
grep '"version"' package.json 2>/dev/null | grep -E '1\.(7\.[7-9]|[8-9]\.[0-9]|1[0-5]\.[0-9]|16\.[0-7])'

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

💻 영향받는 소프트웨어

PostgreSQL