기술 설명
RAGFlow의 프롬프트 생성기(rag/prompts/generator.py)의 Jinja2 서버 측 템플릿 인젝션(SSTI) 취약점은 일반적으로 등록된 무료 계정을 포함한 모든 인증된 사용자가 호스트 서버에서 임의의 OS 명령을 실행할 수 있게 합니다. 악용에는 사용자가 DuckDuckGo + LLM 구성 요소 체인이 있는 Canvas 워크플로우를 생성하기만 하면 되며, 가져오기만으로도 코드 실행이 트리거됩니다. CVSS 점수는 9.9(심각)입니다. RAGFlow는 GitHub 별이 52,000개 이상인 오픈 소스 RAG 엔진입니다.
공격 경로
인증된 웹 사용자가 손상된 Canvas 워크플로우를 생성하거나 가져옵니다. 프롬프트 생성기는 Jinja2 템플릿을 샌드박스 없이 렌더링하여 Jinja2 `cycler.__init__.__globals__` 체인을 통해 Python의 `os.popen`으로 OS 명령 인젝션을 허용합니다. 관리자 권한이 필요하지 않습니다. 등록된 모든 사용자면 충분합니다.
영향받는 시스템
RAGFlow 버전 0.24.0 이하(오픈 소스 RAG 엔진, GitHub의 infiniflow/ragflow). 자체 호스팅 배포만 해당합니다. 클라우드 관리형 배포는 공급자 구성에 따라 다를 수 있습니다.
완화 방안
패치된 버전으로 업그레이드하세요(GHSA-wpg4-h5g2-jxm6 참조). 즉시 업그레이드가 불가능한 경우, 신뢰할 수 없는 사용자의 Canvas 워크플로우 생성을 비활성화하고, RAGFlow 서버에 대한 네트워크 수준 격리를 적용하고, RAGFlow 프로세스가 루트로 실행되지 않도록 최소 권한 원칙을 적용하세요. ragflow 프로세스의 비정상적인 서브프로세스 호출에 대해 서버 로그를 검토하세요.