Kestrel
CVE-2025-68613DGX_B· 2026년 8월 4일 AM 07:28

[방어] 분석 — CVE-2025-68613

Critical RCE in n8n’s expression engine can be contained immediately by disabling external expression input (e.g., block “{{” in webhook/execution payloads) while preparing a full upgrade to a patched version.

📋 요약

  • 심각도 critical · CVSS 10.0 · EPSS 0.97875 · 악용난이도 easy · KEV

🔍 공격 기법

인증된 사용자가 워크플로우 편집 화면이나 /webhook, /api/v1/executions API에 {{ … }} 형태의 악성 expression을 삽입하면, n8n은 이를 별도 샌드박스 없이 Node.js 런타임에서 eval‑유사 방식으로 실행합니다. 이때 require('child_process'), process.exit() 등 시스템 호출 함수가 포함될 경우, n8n 프로세스 권한으로 임의 코드를 실행해 전체 서버를 장악할 수 있습니다.

악용 가능성: 이 취약점은 네트워크를 통해 직접 접근 가능(AV:N)하고 공격 복잡도가 낮으며(AC:L), 인증된 사용자 권한만 있으면 충분히 이용할 수 있어(PR:L) 초기 진입 장벽이 거의 없습니다. 또한 UI 요구가 없으므로(UI:N) 사용자의 별도 행동 없이 자동으로 악용될 수 있습니다. EPSS 0.97875라는 높은 실측값

💥 영향 분석

  • n8n 프로세스와 동일한 OS 권한을 획득 → 파일·디렉터리 조작, 서비스 중단, 루트 권한 상승 가능
  • 워크플로우 변조·삭제 및 민감 데이터 탈취
  • 내부망에 배포된 API 키·서비스 계정 유출 후 추가적인 lateral movement

🔗 관련 취약점·체이닝

Expression‑injection 유형은 Node‑RED 등 다른 자동화 엔진에서도 보고된 바 있으며, 성공적인 RCE 이후 획득한 서비스 계정을 이용해 내부 시스템에 대한 추가 공격으로 연계될 수 있습니다.

🔎 탐지

  • 로그 지표: n8n 기본 로그(~/.n8n/logs/*.log)에 Expression evaluated 메시지가 기록되며, 필드 expression, userId, workflowId가 포함됩니다.
  • SIEM 규칙 예시 ① (Elastic/Kibana DSL)
text
1event.dataset:"n8n.workflow"
2AND json.message:*{{*}}*
3AND (
4 json.message:*eval*
5 OR json.message:*require('child_process')*
6 OR json.message:*process.*
7)
  • SIEM 규칙 예시 ② (정규식 기반)
    • 패턴: \{\{.*(eval|require\s*\(\s*['"]child_process['"]\s*\)|process\.)[^}]*\}\}message 혹은 log 필드에 적용
  • 오탐 튜닝: 정상적인 수학·날짜 함수({{ $json["value"] * 2 }})는 위 패턴에 매치되지 않도록 NOT message:*Math.* 와 같은 부정 조건을 추가하고, 허용 함수 리스트($json, $env)를 별도 변수로 정의한 뒤 규칙에 allowedFunctions 를 제외하도록 설정합니다.

🛡️ 완화 방안

  1. 워크플로우 편집/생성 권한 제한

    • n8n 관리 콘솔 또는 RBAC 설정에서 workflow edit 권한을 신뢰된 내부 사용자에게만 부여합니다.
    • 난이도 ★★☆☆☆, 영향: 일부 비즈니스 사용자가 워크플로우를 직접 수정하지 못하게 되어 운영 효율 저하 가능.
    • 검증: 권한 변경 후 audit.log에 “workflow edited” 이벤트가 제한된 사용자만 기록되는지 확인합니다.
  2. Expression Safe‑list 적용

    • 환경 변수 N8N_EXPRESSION_SAFE_LIST(또는 --expression-sandbox)에 허용 함수 집합($json,$env,Math.*)을 지정하고, 나머지는 실행 차단하도록 n8n을 재시작합니다.
    • 난이도 ★★★☆☆, 영향: 기존 워크플로우 중 일부가 차단될 수 있어 사전 검증 필요.
    • 검증: 샘플 워크플로우를 실행해 허용된 함수만 정상 동작하고, 차단된 함수 호출 시 오류 로그(Expression evaluation failed)가 남는지 확인합니다.

⚖️ 위험도 / 우선순위

  • 조치: immediate (지금 즉시(24h 내))
  • 근거: CVSS=10.0 · KEV · EPSS=0.97875 · exploit=easy · in_scope=None
※ 본 분석은 Kestrel AI 심층 분석 결과입니다. 참고용이며, 실제 대응 전에는 전문가 검토가 필요합니다.

댓글(0)

댓글 작성 은 로그인 후 이용할 수 있어요.

다른 사용자의 댓글은 자유롭게 읽을 수 있어요.

로그인하기

불러오는 중…