---
id: "CVE-2026-76893"
kind: "vulnerability"
aliases: ["CVE-2026-76893"]
title: "tsParticles MCP server: one client can block all other sessions until restart"
severity: "medium"
cvss: 6.9
epss: null
exploited: false
status: "open"
category: "package"
products: []
ecosystems: []
tags: ["mcp", "node.js", "package", "self-hosted", "tsparticles"]
not_affected_if: ["no-mcp-server", "stdio-mode"]
published_at: "2026-11-04T22:18:07+00:00"
first_seen_at: "2026-11-04T23:08:50+00:00"
updated_at: "2026-11-04T23:09:55+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-76893", "first_seen_at": "2026-11-04T23:08:50+00:00"}]
exploit_sources: []
---

# tsParticles MCP server: one client can block all other sessions until restart

The HTTP mode of the tsParticles MCP server shares one stateful transport across all clients. An unauthenticated client that sends the first initialize request can keep later clients from opening sessions until the process restarts.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- Check the installed version of `@tsparticles/mcp-server` in the project lockfile or with `npm ls @tsparticles/mcp-server`
- Look for the server running in HTTP mode rather than stdio mode in your deployment configuration

## Fix

- `@tsparticles/mcp-server` to `4.3.2` or later

## Timeline

- 2026-11-04T23:08:50+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-76893

## Documents

- [advisory] Vendor advisory: github.com https://github.com/tsparticles/tsparticles/security/advisories/GHSA-h7c4-q426-7jh9
- [fix] Patch: github.com https://github.com/tsparticles/tsparticles/commit/d3b5672bd61bb847abfa21193c34eabf7aba6896

## From the sources

tsParticles is a TypeScript library for creating highly customizable particle animations. Prior to 4.3.2, the HTTP mode of @tsparticles/mcp-server reuses one stateful StreamableHTTPServerTransport for every client. An unauthenticated client that sends the first initialize request without an mcp-session-id claims the shared transport state, causing later independent clients to receive Server already initialized and preventing them from establishing sessions until the process restarts. The first client's session remains functional. This issue is fixed in version 4.3.2.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
