Kestrel
CVE-2025-68613DGX_A· 2026년 8월 4일 AM 03:04

[공격] 분석 — 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()‑유사 함수로 평가된다.
  • 공격 단계

    1. 정찰 – API 문서·오픈API 스키마를 통해 워크플로우 생성·수정 엔드포인트(POST /api/v1/workflows, PUT /api/v1/workflows/{id})와 외부 트리거 엔드포인트(/webhook/*)를 식별한다. 또한 권한 모델을 확인해 최소 권한(예: 일반 사용자)이라도 워크플로우 편집이 가능한 계정을 찾는다.
    2. 초기 접근 – 기존 인증 메커니즘(API 토큰, 기본 로그인)으로 해당 계정에 로그인한다. CVSS 벡터의 PR:L을 만족한다(낮은 권한만 필요).
    3. 표현식 주입 – 워크플로우 정의에 {{ require('child_process').execSync('maliciousCmd') }} 와 같은 악성 expression 을 삽입하고 저장한다. AV:N·AC:L·UI:N 조건을 만족해 네트워크만으로 자동화된 요청이 가능하다.
    4. 코드 실행 – 워크플로우가 /webhook 호출 등으로 트리거될 때 n8n이 expression 을 평가하면서 공격자가 지정한 Node.js 코드가 n8n 프로세스 권한(보통 OS 사용자)으로 실행된다.
    5. 권한 획득·지속 – 실행된 코드는 파일 시스템 접근, 추가 관리자 계정 생성, 악성 워크플로우 자동 삽입 등을 수행해 장기적인 제어를 확보한다.
  • 공격 표면

    • 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) 범주에 속한다.
  • 일반적인 체이닝 패턴
    1. 정보 노출 – n8n 설정 API(/settings)를 통해 환경 변수 획득 → 인증 정보 탈취 (추정)
    2. 권한 상승 – 동일 호스트에서 실행 중인 다른 서비스가 n8n 프로세스 권한을 공유하면 루트 수준까지 상승 가능 (추정)
    3. RCE – 본 CVE-2025-68613을 이용해 최종 전권 장악

🔎 탐지

  • 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” 이 빈번히 기록되는 패턴 탐지

🛡️ 완화 방안

  1. 즉시 – 취약 버전(0.211.0 ≤ x < 1.120.4, =1.121.0) 인스턴스를 최신 패치(≥1.120.4, ≥1.121.1, ≥1.122.0)로 업그레이드하고 무중단 롤링 재시작 적용
  2. 권한 제한 – 워크플로우 생성·수정 권한을 신뢰된 관리자 계정에만 부여, 일반 사용자는 읽기 전용으로 설정
  3. 입력 차단 – 인그레스/프록시 레이어에서 expression 필드에 허용 함수 화이트리스트(Safe‑list) 적용, 비허용 키워드 차단(예: eval, exec, child_process)
  4. 실시간 모니터링 – expression 평가 로그를 SIEM에 전송하고 위 정규식 기반 탐지 룰을 활성화하여 의심 행동을 즉시 알림
  5. 격리 실행 – n8n 컨테이너를 최소 권한(읽기 전용 파일 시스템, 제한된 네트워크)으로 운영하고 node 프로세스에 코드 평가 제한 옵션 적용

다중 소스에서 일관성이 확인됐으며(교차검증), EPSS 0.97875라는 높은 실측 악용 예측과 KEV 등재·exploit=easy 판단이 결합돼 즉시 대응(immediate)으로 우선순위가 상향된 점을 근거로 한다.

⚖️ 위험도 / 우선순위

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

댓글(0)

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

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

로그인하기

불러오는 중…