🇰🇷 한글 설명
Flowise 3.1.3 미만 버전의 CSVAgent 노드에서 발생하는 취약점으로, 사용자가 입력한 Python 코드가 pyodide를 통해 실행되는 과정에서 발생합니다. 공격자가 pandas.read_pickle()을 사용하여 차단 목록을 우회하고 악성 피클 페이로드를 역직렬화함으로써 임의의 코드를 실행할 수 있습니다.
💡 쉬운 설명
Flowise라는 도구에서 데이터 파일을 읽는 기능을 악용하여 해커가 몰래 명령어를 실행할 수 있는 보안 구멍이 발견되었습니다. 공격자가 특수하게 조작된 파일을 이용하면 시스템의 제어권을 탈취할 수 있습니다.
🇺🇸 원문 (English)
Flowise is a drag & drop user interface to build a customized large language model flow. Prior to 3.1.3, the CSVAgent node allowed users to provide Python code that is executed through pyodide; although a denylist blocked dangerous Python constructs, pandas.read_pickle() could deserialize a pickled payload and achieve code execution without matching the denied words. The affected file is flowise-components/nodes/agents/CSVAgent/CSVAgent.ts, where user-supplied customReadCSVFunc is evaluated as pd.${customReadCSVFunc}. An authenticated user who can create or modify a chatflow can add a CSV Agent, place a malicious read_pickle payload in the Additional Parameters, save the chatflow, and trigger /api/v1/prediction/<UUID> to execute commands. This issue is fixed in version 3.1.3.
📍 영향받는 시스템
Flowise versions prior to 3.1.3
⚔️ 공격 벡터
인증된 사용자가 채팅플로우에 악성 pandas.read_pickle 페이로드가 포함된 CSVAgent를 추가하고 예측 API를 호출하여 공격
🛡️ 대응 방법
Flowise를 최신 버전인 3.1.3 이상으로 업데이트하십시오.
🔧 검증 코드
출력된 버전이 3.1.3 미만(예: 3.1.2 또는 2.x.x)이면 취약한 상태입니다.
npm list flowise | grep -E 'flowise@([0-2]\.|3\.[0-2]\.)'