관리 메뉴

Information Security

Ni8mare (CVE-2026-21858) 본문

CVE 취약점

Ni8mare (CVE-2026-21858)

HackingPractice 2026. 1. 16. 15:53

 

개요

CVE-2026-21858(Ni8mare) : 오픈소스 워크플로 자동화 도구 n8n에서 발견된 치명적인 보안 취약점이다.

인증 없이 조작된 요청만으로 내부 파일 접근과 관리자 권한 탈취가 가능해, 원격 코드 실행(RCE)로 이어질 수 있다.

 

  • **n8n**은 요청의 Content-Type에 따라 parseFormData() 또는 parseBody()로 본문을 처리하는데, 공격자는 이를 악용해 Forms Webhook에 비정상적인 Content-Type을 전송할 수 있습니다.
  • 이 경우 parseBody()가 실행되며, 공격자가 req.body.files 객체를 임의의 값(로컬 파일 경로 포함)으로 덮어쓸 수 있습니다.
  • 이후 Form 노드가 파일 유효성 검증 없이 해당 경로의 파일을 복사하여 저장함으로써, 임의 로컬 파일 읽기 및 정보 유출이 발생합니다

 

취약점 영향 버전 패치 버전
1.65.0 이하 1.121.0 이상

 

해킹 공격

https://github.com/Chocapikk/CVE-2026-21858

 

GitHub - Chocapikk/CVE-2026-21858: n8n Ni8mare - Unauthenticated Arbitrary File Read to RCE Chain (CVSS 10.0)

n8n Ni8mare - Unauthenticated Arbitrary File Read to RCE Chain (CVSS 10.0) - Chocapikk/CVE-2026-21858

github.com

 

docker 서비스를 설치합니다.

 

docker 서비스가 제대로 설치가 되었다면 아래와 같이 docker 버전 정보가 출력됩니다.

 

공격 코드를 다운로드 합니다.

 

docker-compose.yml 컨테이너 실행 설계도 파일을 확인합니다.

 

설정된 컨테이너를 실행시킵니다. 

 

docker ps 명령어로 프로세스가 구동되는지 확인합니다.

 

127.0.0.1:5678 접속 시 아래와 같이 n8n 홈페이지를 보여주는 것을 알 수 있습니다.

 

공격 실행 시 pwn 모듈이 설치가 되지 않아 모듈 에러가 발생하는 것을 알 수 있습니다.

 

python3-pip를 설치합니다.

 

python3-pip가 설치가 완료되면 pwntools 모듈을 설치합니다.

 

PoC 공격 코드를 이용하여 id 결과 값을 확인할 수 있습니다.

 

/etc/passwd 파일을 읽어 오는 것을 알 수 있습니다. 

 

아래와 같이 공격 명령어를 입력하면 쉘 입력도 가능한 것을 알 수 있습니다.