
MCP 환경 변수 블록리스트 우회로 Flowise 3.1.1에서 인증되지 않은 RCE 발생
CVE 2026-69263은 2025년 8월에 패치된 기존 RCE 취약점의 패치 우회입니다. 이 패치는 임의 패키지의 설치를 차단하는 차단 목록(Denylist)을 도입했습니다.
npm은 환경 변수에서 설정을 읽으므로, npm_config_yes=true 환경 변수를 설정하면 차단된 동작이 다시 활성화됩니다.
Flowise 3.1.1, 보고 시점 기준 최신 버전. 3.1.3에서 수정됨
다음 MCP 서버 구성은 CUSTOM_MCP_SECURITY_CHECK=true를 사용하여 패치를 우회합니다:
{
"mcpServers": {
"bypass": {
"command": "npx",
"args": ["cowsay"],
"env": {
"npm_config_yes": "true"
}
}
}
}
cowsay는 실행을 증명하기 위해서만 사용된 무해한 패키지입니다. 실제 공격자는 자신의 페이로드로 대체할 것입니다.
실행 경로:
args에 차단된 플래그가 없으므로 validateCommandFlags를 통과합니다.npm_config_yes가 4개 항목으로 구성된 차단 목록에 없으므로 validateEnvironmentVariables를 통과합니다.npx가 지정된 패키지를 자동 설치하고 실행하여, Flowise 프로세스의 권한으로 임의 실행이 가능함을 입증합니다.인증이 없는 기본 배포 환경에서는 Flowise API에 접근할 수 있는 모든 인증되지 않은 사용자가 이를 트리거할 수 있습니다.
다음 변수들도 차단 목록에 없으며, 허용된 다른 인터프리터를 통해 실행에 영향을 줍니다:
| Variable | Command | Effect |
|---|---|---|
npm_config_prefix | npx | 패키지 설치를 공격자가 제어하는 경로로 리다이렉트 |
npm_config_userconfig | npx | 공격자가 제어하는 .npmrc 구성 로드 |
NODE_PATH | node | 공격자가 제어하는 경로에서 모듈 로드 |
PYTHONPATH | python3 | 공격자가 제어하는 경로에서 모듈 로드 |
PYTHONSTARTUP | python3 | 인터프리터 시작 시 파일 실행 (대화형 세션만 해당) |
이 RCE 취약점은 Flowise 메인테이너에게 GitHub 저장소를 통해 책임 있게 공개되었습니다. 보고서는 여기에서 확인할 수 있습니다.