Kestrel
CVE-2025-68613DGX_E· 2026년 8월 5일 PM 03:55

[단독공격] 분석 — CVE-2025-68613

CVE-2025-68613 enables authenticated attackers in n8n 0.211.0–1.120.3, 1.121.0 to execute arbitrary code via unisolated workflow expressions, demanding immediate patching or strict permission hardening.

📋 요약

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

🔍 공격 기법

  • 공격 표면

    • REST API endpoint POST /workflow (or equivalent UI submission) that accepts a JSON field expression/code.
    • 인증된 사용자만 접근 가능하지만 권한이 “워크플로우 생성·편집” 수준이면 충분함.
  • 트리거 조건

    • 공격자는 n8n 인스턴스에 로그인하고 워크플로우 편집 권한을 보유해야 함(프리미엄/팀 플랜에서 흔히 부여).
    • 표현식 문자열에 Node.js 전역 객체(process, require) 혹은 시스템 명령 실행 함수(child_process.exec)를 삽입한다.
  • 단계별 공격 흐름

    1. 정찰 – API 문서 또는 브라우저 개발자 도구로 워크플로우 저장/수정 요청 구조 파악.
    2. 초기 접근 – 정상 인증 절차 통과 후 POST /workflow에 악성 expression 포함. (CVSS AV:N, PR:L)
    3. 실행·권한 획득 – n8n 내부 표현식 엔진이 격리되지 않은 컨텍스트에서 평가되면서 Node.js 런타임을 직접 제어, 임의 명령 실행(예: require('child_process').exec('...')). (CVSS AC:L, UI:N)
    4. 지속 – 악성 워크플로우를 저장해 재시작 시 자동 실행되게 함 또는 시스템 서비스 파일을 생성한다.
    5. 영향 – 프로세스 권한(보통 n8n 사용자)으로 전체 파일 시스템 접근, 데이터베이스 탈취·조작, 추가 악성 페이로드 배포 등 전면적인 인스턴스 장악.
  • 공격 원리

    • 표현식 평가 단계에서 sandbox 검증이 부실해 Node.js 모듈 로딩을 차단하지 못함 → 코드 실행 권한 탈피.
    • Scope가 Changed(CVSS S:C)라서 공격 성공 시 n8n 프로세스 전체에 영향을 미침.

악용 가능성: 이 취약점은 네트워크를 통해 직접 접근 가능한 n8n API 엔드포인트(예: /rest/workflows)에 인증된 사용자가 제공하는 expression 파라미터가 그대로 평가되는 구조적 결함입니다. 공격자는 낮은 권한(Low‑privileged) 계정만 보유하면 되며, 별도의 UI 조작 없이 HTTP 요청만으로 악성 표현식을 삽입할 수 있으므로 복잡도(AC:L)와 사용자 상호작용(UI:N)이 최소화됩니다(AV:N). EPSS 0.97875라는 매우 높은 실측값은 이미 다수의 공격이 관찰되고 있음을 의미하고, KEV에 등재된 점은 실제 악용 사례가 확인된 상태임을 보여줍니다. 따라서 “easy” 등급은 이 조건들이 모두 충족되어 공격 성공 확률이 높다는 판단에 기반합니다. 노출되는 공격 표면은 인증된 API 경로와 워크플로우 설정 단계의 expression 필드이며, 해당 필드를 통해 원격 코드 실행(RCE)이 바로 트리거됩니다. 결과적으로 네트워크 접근 가능성만 확보하면 별도의 권한 상승이나 추가 결함 체이닝 없이도 프로세스 권한으로 전체 시스템을 장악할 수 있습니다.

💥 영향 분석

  • 인스턴스 전체 파일 시스템 및 환경 변수 노출.
  • 저장된 워크플로우·시크릿 데이터 탈취·변조.
  • 임의 명령 실행을 통한 추가 서비스 침해(예: Docker, Kubernetes API 호출).
  • 공격자는 n8n 프로세스 권한으로 시스템 수준 작업 수행 가능.

🔗 관련 취약점·체이닝

  • 표현식 평가 격리 부실 → 일반적인 Node.js RCE 패턴(require/child_process)과 동일하게 활용.
  • 추정: 다른 플러그인(예: n8n-nodes-base)에서 외부 모듈 로드가 가능하다면, 해당 플러그인의 경로 탐색 취약점(CWE‑20)과 결합해 파일 시스템 탐색·쓰기 권한을 확대할 수 있음.
  • 가능한 체인:
    • CVE-2025-68613 (RCE) → 성공 시 로컬 파일 포함(LFI) 또는 SSH 키 탈취 → 내부 네트워크에 대한 추가 침투(SSH 브루트포스·키 재사용).

🔎 탐지

  • 로그 패턴: 워크플로우 저장/수정 요청에서 expression 필드에 require(, process., child_process. 등 Node.js 전역 객체 문자열이 포함된 경우.
  • 시스템 행위: n8n 프로세스가 비정상적인 외부 명령(예: /bin/sh -c)을 실행하거나 새로운 파일/스크립트를 생성한 흔적.
  • IDS/IPS 시그니처: POST /workflow 요청 본문에 eval(, new Function( 등 JavaScript 동적 평가 함수가 등장하면 경보.

🛡️ 완화 방안

  • 즉시 조치
    • 워크플로우 생성·편집 권한을 신뢰할 수 있는 사용자에게만 제한.
    • 표현식 입력에 require, process, child_process 등 위험 키워드 차단(웹 애플리케이션 방화벽 규칙 적용).
  • 근본 해결
    • n8n 1.120.4, 1.121.1 또는 1.122.0 이상으로 즉시 업그레이드 – 패치가 표현식 평가 샌드박스를 강화함.
    • 컨테이너/VM 격리: n8n을 최소 권한 사용자(n8n 전용)와 읽기‑전용 파일 시스템으로 실행, 필요 시 seccomp 프로파일로 execve 제한.

우선순위 근거 – 다중 소스 교차검증([교차검증]에서 일관성 확인)과 EPSS 0.97875(실제 악용 확률 최고 수준), KEV 등재·exploit easy, CVSS 10.0을 모두 고려한 규칙 기반 우선순위 결정에 따라 “immediate” 대응이 요구됩니다.

⚖️ 위험도 / 우선순위

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

댓글(0)

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

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

로그인하기

불러오는 중…