취약점  ·  2026-08-26

Chainlit MCP endpoint 미인증 명령 주입 및 SSRF (SPL-2026-001/002)

취약점High 영향도GlobalCVE-2026-45018
Chainlit의 MCP stdio 전송은 호출자가 제공한 명령 문자열의 실행 파일 이름만 검증하고 인수는 검증하지 않았으며, 설정되지 않은 허용 목록을 허용 모두로 처리하여 미인증 네트워크 공격자가 POST /mcp를 통해 OS 명령 주입(CWE-78)을 수행할 수 있게 했습니다. 함께 발견된 결함(CVE-2026-45019, CVSS 7.2)은 동일한 엔드포인트가 공격자가 선택한 업스트림 MCP URL을 로컬호스트/내부 주소에 대해 검증하지 않고 수용하기 때문에 SSE/스트리밍 HTTP 전송에 SSRF를 영향을 미칩니다.
이는 MCP 기능이 켜져 있을 때마다 인기 있는 AI 애플리케이션 프레임워크에서의 미인증 사전 인증 RCE(CVSS 9.8)입니다. MCP는 점점 더 LLM 에이전트를 도구에 연결하는 기본 방식입니다. 자격 증명이 없는 공격자는 일반적으로 LLM 제공자 API 키와 백엔드 데이터 소스에 대한 액세스도 보유하는 Chainlit 프로세스의 권한으로 쉘 실행을 얻을 수 있습니다.
backend/chainlit/mcp.py의 validate_mcp_command()는 공격자가 제공한 fullCommand 문자열의 실행 파일 이름만 config.features.mcp.stdio.allowed_executables에 대해 검사한 후 나머지 인수를 검증되지 않은 상태로 StdioServerParameters에 전달합니다. allowed_executables이 설정되지 않은 경우(기본값) 없음이 아닌 모든 실행 파일을 허용하여 미인증 호출자가 허용된 실행 파일과 임의의 쉘 명령을 실행하는 플래그를 결합한 명령을 제출할 수 있게 합니다.
Chainlit (Python 대화형 AI 프레임워크) 2.4.0rc0 – 2.11.x
Chainlit 2.12.0으로 업그레이드; features.mcp.stdio.allowed_executables를 명시적으로 설정 및 제한; MCP가 필요하지 않은 경우 비활성화; Chainlit의 보안 권고를 참조하세요.
Chainlit security advisoryIONIX Threat Center — CVE-2026-45018
라이브 피드에서 보기 AI 보안 및 거버넌스 관련 소식을 더 살펴보세요 — 매일 아침 업데이트.
피드 열기 →