🇰🇷 한글 설명
Kali-GPT의 a608c74 커밋까지의 버전에서 kali_gpt/tools/mcp_server.py의 execute_tool() 함수에 OS 명령어 주입 취약점이 존재합니다. MCP 클라이언트가 검증되지 않은 스캐너 파라미터를 통해 명령어를 실행할 수 있으며, 이는 공격자 또는 프롬프트 인젝션된 에이전트에 의해 악용될 수 있습니다.
💡 쉬운 설명
AI 보안 도구가 외부에서 전달받은 입력값을 검사하지 않고 그대로 시스템 명령어로 실행합니다. 공격자는 이 허점을 이용해 서버에서 원하는 명령을 몰래 실행할 수 있습니다.
🇺🇸 원문 (English)
Kali-GPT through commit a608c74 contains an OS command injection vulnerability in execute_tool() in kali_gpt/tools/mcp_server.py that allows MCP clients to run commands via unsanitized scanner parameters. Attackers or prompt-injected agents can embed shell metacharacters in parameters like target, ports, domain, wordlist, or url, executed via subprocess.run with shell=True as the MCP server user.
📍 영향받는 시스템
Kali-GPT a608c74 커밋 이전 버전 (kali_gpt/tools/mcp_server.py 포함 환경)
⚔️ 공격 벡터
target, ports, domain, wordlist, url 등 스캐너 파라미터에 셸 메타문자(예: ;, |, &&)를 삽입하여 shell=True로 실행되는 subprocess를 통해 임의 명령 실행
🛡️ 대응 방법
Kali-GPT를 a608c74 이후 최신 커밋으로 업그레이드하고, 입력값 화이트리스트 검증 및 subprocess 호출 시 shell=False와 인자 리스트 사용을 적용하세요.
🔧 검증 코드
출력된 커밋 해시가 a608c74 이전(포함 여부 확인 필요)이면 취약하며, 해당 커밋 이후 버전이면 패치가 적용된 것입니다.
cd "$(dirname $(find / -name mcp_server.py -path '*kali_gpt*' 2>/dev/null | head -1))" && git log --oneline -1 2>/dev/null