🔍 CVE-2026-45018

9.8
CVSS Score
CRITICAL
2026-08-25
2026-09-09 21:07
✅ 완료

🇰🇷 한글 설명

Chainlit 프레임워크의 MCP 기능이 활성화된 경우, 인증 없이 POST /mcp 엔드포인트에 접근할 수 있는 취약점이 존재합니다. 공격자는 npx의 -c 인자를 악용하여 검증되지 않은 인자를 전달함으로써 Chainlit 프로세스 권한으로 임의의 셸 명령어를 실행할 수 있습니다.

💡 쉬운 설명

대화형 AI 앱을 만드는 도구인 Chainlit에서 보안 설정이 잘못되면 해커가 내 컴퓨터에 몰래 명령을 내릴 수 있습니다. 특정 기능을 켜두었을 때 인증 절차 없이 외부 명령어를 실행할 수 있는 위험한 상태가 됩니다.

🇺🇸 원문 (English)

Chainlit is a Python framework for building production-ready conversational AI applications. From 2.4.0rc0 until 2.12.0, Chainlit deployments with features.mcp.enabled set to true in .chainlit/config.toml expose the POST /mcp endpoint without requiring authentication. For stdio transport, the endpoint accepts a user-controlled fullCommand string. The validate_mcp_command() function in backend/chainlit/mcp.py checks only the executable name against config.features.mcp.stdio.allowed_executables and passes unchecked arguments to StdioServerParameters in backend/chainlit/server.py. Because npx supports the -c argument, an attacker can execute arbitrary shell commands with the privileges of the Chainlit process. If allowed_executables is unset, its None default is treated as allowing every executable. This issue is fixed in version 2.12.0.

📍 영향받는 시스템

Chainlit versions 2.4.0rc0 to 2.12.0 (with features.mcp.enabled set to true)

⚔️ 공격 벡터

인증되지 않은 상태에서 POST /mcp 엔드포인트로 조작된 fullCommand 인자를 전송하여 RCE 수행

🛡️ 대응 방법

Chainlit를 최신 버전인 2.12.0 이상으로 업데이트하거나, .chainlit/config.toml에서 features.mcp.enabled를 false로 설정

🔧 검증 코드

출력된 버전이 2.4.0rc0에서 2.12.0 사이라면 해당 취약점에 노출되었을 가능성이 높습니다.

Shell / Script
pip show chainlit | grep Version

📊 CVSS Vector String

CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H

💻 영향받는 소프트웨어

Python