🇰🇷 한글 설명
Flowise 3.1.3 미만 버전에서 유니코드 호모글리프(유사 문자) 식별자를 사용하여 Python 코드 검증을 우회할 수 있는 취약점이 발견되었습니다. 공격자는 이를 통해 Pyodide 환경 내에서 임의의 Python 코드를 실행할 수 있으며, 최종적으로 Flowise 호스트 시스템에서 OS 명령어를 실행할 수 있습니다.
💡 쉬운 설명
겉모습은 비슷하지만 실제로는 다른 유니코드 문자를 사용하여 보안 검사 시스템을 속이는 공격입니다. 이를 통해 해커가 사용자의 컴퓨터에서 마음대로 명령을 내릴 수 있는 위험이 있습니다.
🇺🇸 원문 (English)
Flowise is a drag & drop user interface to build a customized large language model flow. Prior to 3.1.3, Flowise validatePythonCodeForDataFrame in packages/components/src/pythonCodeValidator.ts can be bypassed with Unicode homoglyph identifiers, allowing arbitrary Python execution inside Pyodide and full OS command execution on the Flowise host via Pyodide js module interop. The validator gates pyodide.runPythonAsync in packages/components/nodes/agents/CSVAgent/CSVAgent.ts and packages/components/nodes/agents/AirtableAgent/AirtableAgent.ts with an ASCII word-boundary blacklist. JavaScript regex word boundaries are ASCII-only, while Python 3 NFKC-normalizes identifiers at parse time, so homoglyph forms such as __cl𝐚ss__, __subcl𝐚sses__, __b𝐚se__, and __b𝐮iltins__ bypass the blacklist and are parsed as their ASCII equivalents. This issue is fixed in version 3.1.3.
📍 영향받는 시스템
Flowise version < 3.1.3
⚔️ 공격 벡터
유니코드 호모글리프를 이용한 Python 코드 검증 우회 및 Pyodide interop을 통한 OS 명령어 실행
🛡️ 대응 방법
Flowise를 최신 버전인 3.1.3 이상으로 즉시 업데이트하십시오.
🔧 검증 코드
출력된 버전 번호가 3.1.3 미만인지 확인하여 취약 여부를 판단합니다.
npm list flowise 2>/dev/null | grep -E 'flowise@'