🇰🇷 한글 설명
tsParticles의 @tsparticles/mcp-server HTTP 모드(4.3.1 이전)는 인증 없이 POST /mcp 요청을 받으며, 요청 본문 크기에 누적 제한이 없어 Buffer[]에 무제한으로 쌓습니다. 원격 공격자가 거대한 본문을 전송하면 Node.js 프로세스 메모리가 고갈되어 서비스가 종료될 수 있으며, 공식 Docker 설정(0.0.0.0:3000 노출)에서도 동일하게 발생합니다. 기밀성과 무결성에는 영향이 없습니다.
💡 쉬운 설명
인터넷에서 누구나 접속할 수 있는 이 서버에 아주 큰 데이터를 계속 보내면 서버 메모리가 가득 차서 멈출 수 있습니다. 해킹으로 정보를 빼가는 문제는 아니지만 서비스가 중단될 수 있습니다.
🇺🇸 원문 (English)
tsParticles is a TypeScript library for creating highly customizable particle animations. Prior to 4.3.1, the HTTP mode of @tsparticles/mcp-server accepts unauthenticated POST /mcp requests in integrations/mcp-server/src/index.ts and accumulates every request-body chunk in a Buffer[] without a cumulative size limit before Buffer.concat and JSON.parse. A remote attacker can stream an arbitrarily large body to exhaust Node.js process memory and terminate the service, including in the official Docker configuration that exposes HTTP mode on 0.0.0.0:3000. Confidentiality and integrity are not affected. This issue is fixed in version 4.3.1.
📍 영향받는 시스템
@tsparticles/mcp-server 4.3.1 미만 버전의 HTTP 모드 사용 환경 (공식 Docker 구성 포함)
⚔️ 공격 벡터
인증 없이 원격에서 POST /mcp로 대용량 요청 본문을 스트리밍 전송하여 메모리 고갈(DoS)을 유발
🛡️ 대응 방법
@tsparticles/mcp-server를 4.3.1 이상으로 업그레이드하고, 가능하면 리버스 프록시나 게이트웨이에서 요청 본문 크기 제한을 추가 적용
🔧 검증 코드
출력된 버전이 4.3.1 미만이면 취약하므로 4.3.1 이상으로 업그레이드가 필요하고, 출력이 없으면 해당 패키지가 설치되지 않은 것입니다.
npm ls @tsparticles/mcp-server 2>/dev/null | grep mcp-server