tsparticles: Remote Denial of Service via Unbounded HTTP Request Body Buffering
The @tsparticles/mcp-server HTTP handler fails to restrict the size of incoming request bodies, allowing an unauthenticated attacker to cause OOM-driven process termination via a large POST request.
Triage facts
Revision 1- Applicability
- @tsparticles/mcp-server
- Evidence
- Unknown
- Severity
- High
- Action
- Elevated
- Sources
- 1 public source
- Freshness
- Revision 1Nov 11, 07:31 UTC
- Source quality
- A5Likely
The HTTP server mode of @tsparticles/mcp-server is vulnerable to a Denial of Service (DoS) attack. The application's /mcp POST endpoint accumulates all incoming request body chunks into an in-memory Buffer[] array without enforcing size limits or checking the Content-Length header. An attacker can stream an arbitrarily large body, exhausting the Node.js process memory and triggering an OOM-killer termination. The default configuration exposes this endpoint on all network interfaces (0.0.0.0:3000) when deployed via the official Docker image.
Impact
Successful exploitation leads to complete service unavailability of the mcp-server instance. The vulnerability allows an unauthenticated remote attacker to force an OOM-kill of the containerized process. No credentials are required, and the impact is limited to resource exhaustion rather than direct unauthorized data access or code execution.
Recommendation
- Update or patch the
integrations/mcp-server/src/index.tsfile to implement a maximum body size limit during the request stream processing. - Implement a check for the
Content-Lengthheader before consuming the request body. - If immediate patching is not possible, place a reverse proxy or Web Application Firewall (WAF) in front of the service to enforce request body size limits and restrict access to the
/mcpendpoint. - Monitor container memory usage metrics for abnormal spikes associated with requests to the
/mcpendpoint.
Immediate actions
Audit container deployments for the use of the default @tsparticles/mcp-server image.
Threat Hunt
Search for HTTP POST requests to /mcp with unusually high payload sizes or extended duration connections.
Data: Web server access logs, Application telemetry, Network flow logs
Mitigations
Implement a request body size limit in the application code or a reverse proxy.
Unbounded HTTP Request Body Buffering