무슨 일이 있었나
Flowise 3.1.3 이전 버전은 Custom MCP stdio 노드에 대한 환경 변수를 대소문자 구분 문자열 비교를 사용하여 거부 목록에 대해 검증합니다. Windows에서 환경 변수 이름은 대소문자를 구분하지 않으므로, Custom MCP 노드를 구성할 수 있는 인증된 사용자는 'node_options'(소문자)을 제공하여 'NODE_OPTIONS' 거부 목록 항목을 우회하고 '--require'를 주입하여 Flowise 서버 프로세스 내에서 임의의 코드를 로드할 수 있습니다. VulnCheck는 개념 증명이 존재함을 확인했습니다 (bikini/exploitarium). PR #6471에서 수정되어 Flowise 3.1.3에서 릴리스됨.
왜 중요한가
Flowise는 널리 배포된 오픈 소스 LLMOps/에이전트 흐름 플랫폼입니다. Custom MCP 노드 액세스가 있는 인증된 Flowise 사용자 (자체 호스팅 배포에서 일반적인 역할)는 Windows 인스턴스에서 서버 수준 RCE로 상향 이동할 수 있습니다. Flowise는 LLM 파이프라인을 오케스트레이션하므로, 손상된 서버는 인스턴스의 모든 흐름에 대한 모든 API 키, 모델 구성, 연결된 데이터 소스 및 대화 이력을 노출합니다.
공격 경로
Custom MCP 노드 구성 액세스가 있는 인증된 사용자는 환경 변수 'node_options'(소문자)를 '--require <악성_모듈>' 값으로 설정합니다. Flowise의 대소문자 구분 거부 목록이 이를 놓칩니다. 임의의 코드는 노드 생성 시 Flowise 서버 프로세스에서 실행됩니다.
영향받는 시스템
Windows에서 실행되는 Flowise ≥ 0, < 3.1.3
완화 방안
Flowise를 3.1.3 이상으로 업그레이드합니다. GitHub PR: https://github.com/FlowiseAI/Flowise/pull/6471