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