🇰🇷 한글 설명
PySyft 0.9.5 이하 버전에서 사용자가 제출한 Python 함수에 대한 불충분한 검증으로 인해 원격 코드 실행 취약점이 발생합니다. 승인된 코드는 exec()/eval() 함수로 격리 없이 서버 프로세스에서 실행되어 공격자가 임의의 파이썬 코드를 실행할 수 있습니다.
💡 쉬운 설명
PySyft 서버가 사용자가 보낸 Python 코드를 제대로 검사하지 않고 실행합니다. 이를 악용하면 해커가 서버를 완전히 제어할 수 있습니다.
🇺🇸 원문 (English)
PySyft (Syft Datasite/Server) versions 0.9.5 and earlier are vulnerable to remote code execution due to insufficient validation and sandboxing of user-submitted code. The system allows low-privileged users to submit Python functions (via @sy.syft_function()) for remote execution on the server. While a code approval mechanism exists, the submitted code undergoes no security checks for dangerous operations (e.g., file access, command execution). Once approved, the code is executed within the server process using exec() and eval() functions without proper isolation. A remote attacker can leverage this to execute arbitrary Python code on the server, leading to complete compromise of the server environment.
📍 영향받는 시스템
PySyft (Syft Datasite/Server) version 0.9.5 and earlier
⚔️ 공격 벡터
Authenticated user submits Python function via @sy.syft_function() decorator; after approval, code executes without sandbox on server process
🛡️ 대응 방법
Upgrade PySyft to version 0.9.6 or later; implement code sandboxing and security validation before execution
🔧 검증 코드
버전이 0.9.5 이하이면 VULNERABLE 출력; 0.9.6 이상이면 OK 출력
python -c "import syft; print(syft.__version__)" 2>/dev/null | grep -E '^0\.(9\.[0-5]|[0-8]\.)' && echo 'VULNERABLE' || echo 'OK'