[방어] 분석 — CVE-2025-68613
Critical RCE in n8n's expression evaluation requires immediate patching or strict restriction of workflow editing permissions and input filtering to prevent full system compromise.
📋 요약
- 심각도 critical · CVSS 10.0 · EPSS 0.97875 · 악용난이도 easy · KEV
🔍 공격 기법
인증된 사용자가 워크플로우 구성 중 {{ }} 형태의 Expression(표현식)을 작성할 때, 런타임 환경으로부터 충분히 격리되지 않은 컨텍스트에서 평가되는 점을 악용합니다. 공격자는 이 경로를 통해 OS 명령어나 시스템 함수를 호출하는 페이로드를 주입하여 n8n 프로세스 권한으로 임의 코드를 실행(RCE)할 수 있습니다. 특히 /webhook이나 API 엔드포인트를 통해 외부 입력값이 Expression으로 전달되는 경로가 주요 진입점이 됩니다.
악용 가능성: 본 취약점은 AV:N/AC:L 벡터가 보여주듯 네트워크를 통해 원격에서 낮은 복잡도로 공격이 가능하며, 특히 n8n의 workflow expression evaluation 시스템이라는 명확한 공격 표면을 가집니다. 비록 PR:L 조건으로 인해 인증된 계정이 필요하지만, 워크플로우 설정 단계에서 입력되는 파라미터나 표현식(Expression)에 악성 코드를 삽입하는 것만으로 RCE를 트리거할 수 있어 실제 공격 난이도는 매우 낮습니다(Easy). 이론적 위험성을 넘어 EPSS 지수가 0.97875로 극도로 높고 KEV에 등재되었다는 점은, 이미 공격자들이 자동화된 도구를 통해 실전에서 적극적으로 악용하고 있음을 의미합니다. 공격자는 인증 후 워크플로우 구성 화면의 엔드포인트와 표현식 입력 필드를 통해 런타임 격리를 우회하며, 이는 n8n 프로세스 권한으로 시스템 명령어를 실행하는 결과로 이어집니다. 결과적으로 낮은 진입 장벽과 높은 실측 위협 수치는 이 취약점이 단순한 이론적 결함이 아닌 즉각적인 침해 사고로 연결될 가능성이 매우 높음을 시사합니다.
💥 영향 분석
- 시스템 전체 권한 탈취: n8n 프로세스가 실행 중인 OS 계정 권한을 획득하여 시스템 레벨의 작업 수행 가능.
- 데이터 유출 및 변조: 워크플로우 내 저장된 API Key, 자격 증명(Credentials) 및 연결된 외부 서비스 데이터에 무단 접근.
- 내부망 침투: 탈취한 인스턴스를 거점으로 내부 네트워크 스캐닝 및 횡적 이동(Lateral Movement) 수행 가능.
🔗 관련 취약점·체이닝
- Expression Injection: 입력값이 평가 엔진으로 전달되어 코드로 실행되는 전형적인 패턴입니다.
- Privilege Escalation: 인증된 저권한 사용자가 RCE를 통해 시스템 관리자 권한을 획득하는 형태로 체이닝될 수 있습니다.
🔎 탐지
다중 소스에서 일관성이 확인된 데이터와 EPSS 0.97875(실제 악용 예측치 최고 수준) 및 KEV 등재 사실에 근거하여, 단순 모니터링보다 공격 패턴 차단에 집중한 탐지가 필요합니다.
1. 로그 분석 지표
- 대상: n8n 애플리케이션 로그, 리버스 프록시(Nginx, Apache) 액세스 로그, WAF 로그.
- 필드:
request_body,query_params,expression_eval_log(추정: 내부 평가 로그 존재 시).
2. 탐지 규칙 예시
- Rule 1 (SIEM/WAF 정규식): Expression 내 위험 함수 호출 패턴 탐지
Pattern:\{\{.*(eval|exec|process|child_process|require|fs\.) .*\}\}조건: HTTP POST 요청의 Body 또는 URI 파라미터에 위 패턴이 포함된 경우.
- Rule 2 (SIEM 의사코드): 비정상적인 하위 프로세스 생성 탐지
Query:process.name == "n8n" AND child_process.name IN ("sh", "bash", "cmd", "powershell", "curl", "wget")임계값: n8n 정상 동작 범위 외의 쉘 실행 발생 시 즉시 경보.
- Rule 3 (API 엔드포인트 집중 감시):
/webhook,/api/v1/executions경로로 유입되는 특수문자({{,}}) 빈도 급증 확인.
3. 오탐 튜닝 및 한계
- 오탐 시나리오: 정상적인 워크플로우 설계자가 복잡한 식을 작성하거나, 데이터 내에 우연히 유사 패턴이 포함된 경우.
- 튜닝:
{{와}}사이의 거리가 매우 짧거나 단순 변수 참조인 경우는 제외하고, 시스템 함수 호출 키워드가 결합된 경우만 정밀 탐지합니다. - 한계: 인코딩이나 난독화된 페이로드는 정규식 기반 탐지를 우회할 수 있으므로 런타임 프로세스 모니터링(EDR) 병행이 필수적입니다.
🛡️ 완화 방안
본 취약점은 CVSS 10.0 및 KEV 등재로 인해 'Immediate' 우선순위 대응이 필요합니다.
1. 즉시 (긴급 차단)
- 조치: 워크플로우 생성 및 수정 권한을 최소한의 신뢰된 관리자로 제한(ACL 강화).
- 난이도/영향: 낮음 / 운영상 일부 사용자의 편집 기능 마비 가능성.
- 검증: 일반 사용자 계정으로 로그인 후 Workflow Save/Edit 시도 시 거부되는지 확인.
2. 단기 (위험 완화)
- 조치: WAF 또는 리버스 프록시 레벨에서
/webhook및 API 진입점에 대해{{,}}포함 페이로드 차단 또는 Safe-list 기반 필터링 적용. - 난이도/영향: 중간 / 비즈니스 로직(정상적인 데이터 전송) 마비 리스크 존재. 무결성 확보를 위해 가용성 손실을 감수하고 강제 적용 권고.
- 검증: 외부에서
{{포함 요청 송신 시 403 Forbidden 또는 406 Not Acceptable 응답 확인.
3. 근본 (해결)
- 조치: 패치 버전(
1.120.4,1.121.1,1.122.0이상)으로 업데이트. 가용성 영향을 최소화하기 위해 무중단 롤링 업데이트 전략 적용. - 난이도/영향: 중간 / 서비스 재시작에 따른 일시적 중단 발생 가능.
- 검증:
n8n --version명령어로 패치 버전 적용 여부 확인 및 알려진 PoC 패턴(제한적으로) 테스트하여 차단 확인.
잔여 리스크: 패치 후에도 Expression 평가 엔진의 다른 우회 경로가 존재할 수 있으므로, 최소 권한 원칙(Least Privilege)에 따라 n8n 프로세스를 Non-root 계정 및 컨테이너 격리 환경에서 운영하는 것이 권장됩니다.
⚖️ 위험도 / 우선순위
- 조치: immediate (지금 즉시(24h 내))
- 근거: CVSS=10.0 · KEV · EPSS=0.97875 · exploit=easy · in_scope=None