
Flowise AI ≤ 3.0.5용 인증되지 않은 비밀번호 재설정 익스플로잇입니다. /api/v1/account/forgot-password 엔드포인트를 악용하여 사전 인증 없이 임의 사용자의 비밀번호를 변경합니다. 개념 증명(PoC) 스크립트와 완화 지침을 포함합니다.
CVE ID: CVE-2025-58434
영향받는 소프트웨어: Flowise AI
취약한 버전: <= 3.0.5
수정된 버전: 3.0.6 이상
심각도: 치명적
작성자: r3nsi15
날짜: 2025
Flowise AI 3.0.5 이하 버전에는 비밀번호 재설정 흐름에 인증이 손상된 결함이 있습니다. /api/v1/account/forgot-password 엔드포인트는 사전 인증이나 이메일 검증 없이 API 응답에 임시 재설정 토큰(tempToken)을 직접 반환합니다.
유효한 이메일 주소를 알고 있거나 (열거할 수 있는) 인증되지 않은 공격자는 다음을 수행할 수 있습니다:
tempToken을 직접 추출합니다.이 취약점은 의도된 이메일 기반 검증 흐름을 완전히 우회합니다. 토큰이 계정 소유자의 이메일 받은 편지함에만 전송되지 않고 HTTP 응답에 노출되기 때문입니다.
| 엔드포인트 | 메서드 | 목적 |
|---|
파일: CVE-2025-58434_POC.py
requests 라이브러리pip install requests
python3 CVE-2025-58434_POC.py -e <target_email> -u <target_url> [-p <new_password>]
python3 CVE-2025-58434_POC.py -e [email protected] -u https://flowise.example.com -p P@ssw0rd!
[+] Email [email protected] exists!
[!] Sending forgot password request
[!] Sending reset password request
[+] Password Changed Successfully to: P@ssw0rd!
비밀번호 재설정 API는 tempToken을 사용자의 이메일로 보내도록 설계되었지만, 서버는 이를 JSON 응답 본문에도 직접 포함했습니다. 즉, 인증 여부와 관계없이 모든 호출자가 요청 즉시 토큰을 받게 되어 이메일 전송 단계가 무의미해집니다.
또한 로그인 엔드포인트가 이메일이 존재할 때만 별도의 오류 메시지("Incorrect Email or Password")를 반환하기 때문에 이메일 열거가 가능하며, 공격 전에 유효한 계정을 쉽게 확인할 수 있습니다.
tempToken이 등록된 이메일 주소를 통해서만 전송되도록 하십시오.이 개념 증명은 교육 및 승인된 보안 연구 목적으로만 제공됩니다. 명시적인 서면 허가 없이 이 스크립트를 시스템에 사용하는 것은 불법이며 비윤리적입니다. 작성자와 기여자는 오용에 대한 어떠한 책임도 지지 않습니다.
/api/v1/auth/login | POST | 이메일 계정이 존재하는지 확인하는 데 사용됨 |
/api/v1/account/forgot-password | POST | 재설정을 트리거하고 응답에서 tempToken을 노출함 |
/api/v1/account/reset-password | POST | 토큰을 사용하여 비밀번호 변경을 완료함 |
| 플래그 | 긴 형식 | 필수 여부 | 설명 |
|---|
-e | --email | 예 | 대상 계정 이메일 주소 |
-u | --url | 예 | Flowise 인스턴스의 기본 URL |
-p | --password | 아니요 | 설정할 새 비밀번호 (기본값: password) |