[공격] 분석 — CVE-2025-68613
CVE-2025-68613 enables authenticated attackers to achieve full remote code execution via malicious workflow expressions in n8n, requiring immediate upgrade and strict control of expression input paths.
📋 요약
- 심각도 critical · CVSS 10.0 · EPSS 0.97875 · 악용난이도 easy · KEV
🔍 공격 기법
-
트리거 조건
- 인증된 사용자가
/api/v1/workflows(또는 UI) 로 워크플로우 JSON을 전송할 때nodes[].parameters.expression혹은nodes[].parameterValues필드에 사용자 입력이 그대로 전달된다. - 해당 문자열은 n8n 내부의 JavaScript 실행 엔진에서 격리 없이
eval()‑유사 함수로 평가된다.
- 인증된 사용자가
-
공격 단계
- 정찰 – API 문서·오픈API 스키마를 통해 워크플로우 생성·수정 엔드포인트(
POST /api/v1/workflows,PUT /api/v1/workflows/{id})와 외부 트리거 엔드포인트(/webhook/*)를 식별한다. 또한 권한 모델을 확인해 최소 권한(예: 일반 사용자)이라도 워크플로우 편집이 가능한 계정을 찾는다. - 초기 접근 – 기존 인증 메커니즘(API 토큰, 기본 로그인)으로 해당 계정에 로그인한다. CVSS 벡터의 PR:L을 만족한다(낮은 권한만 필요).
- 표현식 주입 – 워크플로우 정의에
{{ require('child_process').execSync('maliciousCmd') }}와 같은 악성 expression 을 삽입하고 저장한다. AV:N·AC:L·UI:N 조건을 만족해 네트워크만으로 자동화된 요청이 가능하다. - 코드 실행 – 워크플로우가
/webhook호출 등으로 트리거될 때 n8n이 expression 을 평가하면서 공격자가 지정한 Node.js 코드가 n8n 프로세스 권한(보통 OS 사용자)으로 실행된다. - 권한 획득·지속 – 실행된 코드는 파일 시스템 접근, 추가 관리자 계정 생성, 악성 워크플로우 자동 삽입 등을 수행해 장기적인 제어를 확보한다.
- 정찰 – API 문서·오픈API 스키마를 통해 워크플로우 생성·수정 엔드포인트(
-
공격 표면
POST /api/v1/workflows(워크플로우 신규 저장)PUT /api/v1/workflows/{id}(워드플로우 수정)POST /webhook/*(외부 트리거 시 expression 평가)- 파라미터:
nodes[].parameters.expression,nodes[].parameterValues, 기타 문자열 그대로 전달되는 필드
-
CVSS ↔ 실제 조건 매핑
- AV:N → 네트워크 기반 API 호출만으로 가능
- AC:L → 복잡한 우회 없이 JSON 삽입만 필요
- PR:L → 인증된 저권한 사용자면 충분
- UI:N → 자동화 스크립트로 무인 실행 가능
-
추가 고려사항 – 표현식 엔진은 난독화된 페이로드를 허용하므로 단순 키워드 차단만으로는 우회될 수 있다. 따라서 입력 경로 자체 차단(프록시 레벨 화이트리스트)과 실시간 로그 모니터링을 병행해야 한다.
악용 가능성: CVSS 벡터 AV:N/AC:L/PR:L/UI:N은 이
💥 영향 분석
- n8n 프로세스와 동일한 OS 사용자 권한으로 임의 코드가 실행되어 서버 전체 장악이 가능
- 워크플로우 정의·환경 변수·연결된 DB·API 비밀키 등 민감 데이터 탈취
- 악성 워크플로우 지속 배포 → 서비스 중단·데이터 파괴 위험
🔗 관련 취약점·체이닝
- 표현식 주입은 CWE‑20(Improper Input Validation)·CWE‑94(Code Injection) 범주에 속한다.
- 일반적인 체이닝 패턴
- 정보 노출 – n8n 설정 API(
/settings)를 통해 환경 변수 획득 → 인증 정보 탈취 (추정) - 권한 상승 – 동일 호스트에서 실행 중인 다른 서비스가 n8n 프로세스 권한을 공유하면 루트 수준까지 상승 가능 (추정)
- RCE – 본 CVE-2025-68613을 이용해 최종 전권 장악
- 정보 노출 – n8n 설정 API(
🔎 탐지
- SIEM/로그에서
{{로 시작하고eval|exec|spawn|child_process등 위험 함수명을 포함하는 expression 문자열 감시- 예시 정규식:
\{\{.*\b(eval|exec|spawn|child_process)\b.*\}\}
- 예시 정규식:
/api/v1/workflows·/webhook에 대한 POST/PUT 요청 중 비정상적으로 긴expression필드가 포함될 경우 알림- n8n 내부 로그(
execution.log)에 “Evaluating expression” 이 빈번히 기록되는 패턴 탐지
🛡️ 완화 방안
- 즉시 – 취약 버전(0.211.0 ≤ x < 1.120.4, =1.121.0) 인스턴스를 최신 패치(≥1.120.4, ≥1.121.1, ≥1.122.0)로 업그레이드하고 무중단 롤링 재시작 적용
- 권한 제한 – 워크플로우 생성·수정 권한을 신뢰된 관리자 계정에만 부여, 일반 사용자는 읽기 전용으로 설정
- 입력 차단 – 인그레스/프록시 레이어에서 expression 필드에 허용 함수 화이트리스트(Safe‑list) 적용, 비허용 키워드 차단(예:
eval,exec,child_process) - 실시간 모니터링 – expression 평가 로그를 SIEM에 전송하고 위 정규식 기반 탐지 룰을 활성화하여 의심 행동을 즉시 알림
- 격리 실행 – n8n 컨테이너를 최소 권한(읽기 전용 파일 시스템, 제한된 네트워크)으로 운영하고
node프로세스에 코드 평가 제한 옵션 적용
다중 소스에서 일관성이 확인됐으며(교차검증), EPSS 0.97875라는 높은 실측 악용 예측과 KEV 등재·exploit=easy 판단이 결합돼 즉시 대응(immediate)으로 우선순위가 상향된 점을 근거로 한다.
⚖️ 위험도 / 우선순위
- 조치: immediate (지금 즉시(24h 내))
- 근거: CVSS=10.0 · KEV · EPSS=0.97875 · exploit=easy · in_scope=None