🇰🇷 한글 설명
Flowise는 사용자 정의 대규모 언어 모델 플로우를 구축하는 드래그 앤 드롭 사용자 인터페이스이다. 3.1.0 이전 버전에서는 MCP 어댑터의 stdio 명령 직렬화가 안전하지 않아, 인증된 공격자가 임의의 명령을 포함한 MCP stdio 서버를 추가하여 명령 실행을 달성할 수 있다. 입력 검증 로직의 결함으로 허용된 명령(예: npx)에 코드 실행 인자를 결합할 수 있다.
💡 쉬운 설명
Flowise의 MCP 설정 기능에서 입력 검사가 제대로 동작하지 않아, 로그인한 사용자가 서버에서 원하는 명령을 실행할 수 있습니다. 이는 서버 전체를 장악당할 수 있는 매우 위험한 취약점입니다.
🇺🇸 원문 (English)
Flowise is a drag & drop user interface to build a customized large language model flow. Prior to 3.1.0, due to unsafe serialization of stdio commands in the MCP adapter, an authenticated attacker can add an MCP stdio server with an arbitrary command, achieving command execution. The vulnerability lies in a bug in the input sanitization from the “Custom MCP” configuration in http://localhost:3000/canvas - where any user can add a new MCP, when doing so - adding a new MCP using stdio, the user can add any command, even though your code have input sanitization checks such as validateCommandInjection and validateArgsForLocalFileAccess, and a list of predefined specific safe commands - these commands, for example "npx" can be combined with code execution arguments ("-c touch /tmp/pwn") that enable direct code execution on the underlying OS. This vulnerability is fixed in 3.1.0.
📍 영향받는 시스템
Flowise 3.1.0 미만 버전
⚔️ 공격 벡터
인증된 사용자가 Custom MCP 설정에서 stdio 방식으로 npx 등 허용 명령에 -c 인자를 붙여 임의 코드를 실행
🛡️ 대응 방법
Flowise를 3.1.0 이상으로 업그레이드하고, 신뢰할 수 없는 사용자의 계정 생성 및 MCP 설정 권한을 제한
🔧 검증 코드
출력된 버전이 3.1.0 미만이면 취약한 상태이므로 즉시 업그레이드가 필요하며, 아무 출력이 없으면 설치 여부를 별도로 확인해야 합니다.
npm ls flowise 2>/dev/null | grep -i flowise || docker images 2>/dev/null | grep -i flowise