Kali-GPT MCP 서버 OS 명령 삽입 취약점(CVE-2026-117569)이란?

CVE-2026-117569는 Kali-GPT를 MCP(Model Context Protocol) 서버로 연결해 사용할 때 발생하는 취약점입니다. 핵심 원인은 execute_tool() 함수가 셸 명령을 구성할 때 입력 값에 대한 적절한 검증(Validation)과 정제(Sanitization)을 거치지 않는다는 점입니다. 이 빈틈 때문에 공격자나 프롬프트 인젝션에 감염된 에이전트가 호스트 시스템에서 임의의 셸 명령을 실행할 수 있게 됩니다.

CVE-2026-117569 취약점 개요

CVE-2026-117569는 Kali-GPT MCP 서버에서 발견된 OS 명령 삽입(OS Command Injection) 취약점으로, CVE 프로젝트와 VulnCheck(CNA)가 공식 등록했습니다. 애플리케이션이 외부에서 입력된 데이터를 필터링 없이 시스템 명령어로 넘길 때 생기는 전형적인 보안 결함이라 CWE-78 유형으로 분류됩니다.

보안 엔지니어와 LLM 에이전트 개발자가 특히 주의해야 할 점은 이 취약점이 MCP 서버가 동작하는 환경에서 직접 실행된다는 사실입니다. Kali-GPT를 스캐너 도구로 구성해 둔 환경에서는 셸 명령 삽입으로 이어지는 시스템 침해 가능성이 매우 높습니다.

기술적 원인 및 분석 (execute_tool 함수)

취약점의 기술적 핵심은 kali_gpt/tools/mcp_server.py 파일에 정의된 execute_tool() 함수에 있습니다. 이 함수는 MCP 서버의 실행 경로를 담당하며, LLM이 요청한 도구를 실행하려고 셸 명령을 조립하는 역할을 합니다.

구체적인 문제 지점은 아래와 같습니다.

  1. 입력 검증 공백: execute_tool() 함수는 셸 명령을 조립하고 실행하기 전에 입력값에 대한 sanitization이나 validation을 구현하지 않았습니다.
  2. 파라미터 조작 가능성: 특히 스캐너 파라미터가 셸 명령으로 조립되는 지점에 검증 단계가 빠져 있습니다.
  3. 명령어 실행 경로: MCP 클라이언트가 전달한 검증되지 않은 파라미터가 그대로 셸에 넘어가면서 공격자가 의도한 악성 명령어가 호스트 시스템의 권한으로 실행되는 구조입니다.

영향 범위 및 노출 조건

이 취약점은 특정 버전 범위의 Kali-GPT에 영향을 미칩니다. 공격 벡터도 단순한 외부 공격자에 그치지 않고 LLM 에이전트의 특성을 이용한 간접 공격까지 포함합니다.

영향을 받는 버전 및 범위

취약점에 노출되는 대상 범위는 다음 표와 같습니다.

항목 상세 내용
취약점 식별자 CVE-2026-117569
영향을 받는 버전 커밋 a608c74까지의 모든 버전
취약점 발생 지점 kali_gpt/tools/mcp_server.py 내 execute_tool() 함수
분류 유형 CWE-78 (OS Command Injection)

공격 벡터 및 주체

공격자가 이 취약점을 악용하는 경로는 크게 두 가지로 나뉩니다.

  1. 직접적인 MCP 클라이언트 공격: MCP 클라이언트로 검증되지 않은 스캐너 파라미터를 전송해 호스트 시스템의 셸 명령을 직접 실행하는 방식입니다.
  2. 간접적인 프롬프트 인젝션: 프롬프트 인젝션(Prompt Injection)에 감염된 LLM 에이전트가 악성 파라미터를 생성해 MCP 서버로 전달함으로써 시스템 침해를 유도합니다.

보안 대응 방안 및 점검 포인트

보안 엔지니어와 개발자는 execute_tool() 경로의 입력 검증 공백을 메우기 위해 다음 세 가지를 점검하고 조치해야 합니다.

  1. 입력값 정제(Sanitization) 도입: 셸 명령을 구성하기 전에 입력값에 대한 적절한 sanitization이나 validation 로직을 구현해 메타문자 등을 이용한 명령 삽입을 방지합니다.
  2. 입력값 검증(Validation) 적용: 입력 파라미터에 검증(Validation) 절차를 적용해 예상치 못한 명령어가 삽입되지 않도록 막습니다.
  3. 버전 확인 및 업데이트: 현재 사용 중인 Kali-GPT의 커밋 해시가 a608c74 이전인지 확인한 뒤 취약점이 해결된 최신 버전으로 업데이트하는 것이 필수입니다.

댓글 남기기