{"id":"CVE-2026-63655","kind":"vulnerability","aliases":["CVE-2026-63655"],"related":[],"title":"tsParticles MCP server: unbounded request body lets remote attackers crash the service","description":"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.","summary":"The HTTP mode of the @tsparticles/mcp-server package accepts unauthenticated POST /mcp requests and buffers the whole body without a size limit. A remote attacker can send an oversized body to exhaust Node.js memory and terminate the service.","severity":"high","cvss":7.5,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["ai-tooling","docker","mcp","node.js","tsparticles"],"not_affected_if":["auth-required","no-mcp-server","stdio-mode"],"how_to_check":"- Check the installed version of `@tsparticles/mcp-server` in your project lockfile (for example `package-lock.json` or `pnpm-lock.yaml`).\n- Check whether the server runs in HTTP mode, listening on port `3000` on `0.0.0.0`, as in the official Docker configuration.","fix":"- `@tsparticles/mcp-server` to `4.3.1` or later.","status":"open","published_at":"2026-11-04T22:18:07+00:00","first_seen_at":"2026-11-04T23:08:49+00:00","triaged_at":"2026-11-04T23:09:51+00:00","updated_at":"2026-11-04T23:09:51+00:00","category":"ai-tooling","confidence":0.8,"triage":{"at":"2026-11-04T23:09:51Z","model":"claude-haiku-5-5","output":{"fix":"- `@tsparticles/mcp-server` to `4.3.1` or later.","reach":"network","title":"tsParticles MCP server: unbounded request body lets remote attackers crash the service","impact":"medium","summary":"The HTTP mode of the @tsparticles/mcp-server package accepts unauthenticated POST /mcp requests and buffers the whole body without a size limit. A remote attacker can send an oversized body to exhaust Node.js memory and terminate the service.","audience":"developers","category":"ai-tooling","nicknames":[],"who_cares":["tsparticles","mcp","node.js","docker"],"confidence":0.8,"fix_status":"available","needs_auth":"no","worst_case":"remote attacker crashes the service by exhausting process memory","analyst_note":"","how_to_check":"- Check the installed version of `@tsparticles/mcp-server` in your project lockfile (for example `package-lock.json` or `pnpm-lock.yaml`).\n- Check whether the server runs in HTTP mode, listening on port `3000` on `0.0.0.0`, as in the official Docker configuration.","plain_action":"","needs_analyst":false,"not_affected_if":["stdio-mode","no-mcp-server","auth-required"],"who_is_affected":"Only deployments that run the MCP server in HTTP mode are exposed, since that mode accepts unauthenticated POST /mcp requests from the network. The stdio mode is not described as affected, and the official Docker configuration that exposes HTTP mode on 0.0.0.0:3000 is the case named in the sources. Teams that only use tsParticles as a animation library in the browser can skip it.","user_interaction":"no","needs_special_setup":"yes","severity_if_unknown":"high"},"cost_usd":0.000743,"input_tokens":4404,"output_tokens":606,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-2026':14A,17A '-63655':15A,18A '/mcp':36B,85C '0.0.0.0':137C '3000':138C '4.3.1':76C,151C 'accept':33B,82C 'accumul':90C 'affect':144C 'ai':20B 'ai-tool':19B 'anim':73C 'arbitrarili':114C 'attack':9A,49B,110C 'bodi':6A,42B,54B,94C,116C 'buffer':39B,98C 'buffer.concat':105C 'chunk':95C 'confidenti':139C 'configur':131C 'crash':10A 'creat':69C 'cumul':101C 'customiz':71C 'cve':13A,16A 'docker':22B,130C 'everi':91C 'exhaust':56B,118C 'expos':133C 'fix':148C 'high':70C 'http':27B,78C,134C 'includ':126C 'integr':141C 'integrations/mcp-server/src/index.ts':88C 'issu':146C 'json.parse':107C 'larg':115C 'let':7A 'librari':67C 'limit':46B,103C 'mcp':2A,23B 'memori':58B,121C 'mode':28B,79C,135C 'node.js':24B,57B,119C 'offici':129C 'overs':53B 'packag':32B 'particl':72C 'post':35B,84C 'prior':74C 'process':120C 'remot':8A,48B,109C 'request':5A,37B,86C,93C 'request-bodi':92C 'send':51B 'server':3A 'servic':12A,62B,125C 'size':45B,102C 'stream':112C 'termin':60B,123C 'tool':21B 'tsparticl':1A,25B,63C 'tsparticles/mcp-server':31B,81C 'typescript':66C 'unauthent':34B,83C 'unbound':4A 'version':150C 'whole':41B 'without':43B,99C","nicknames":[],"mitigations":[],"who_affected":"Only deployments that run the MCP server in HTTP mode are exposed, since that mode accepts unauthenticated POST /mcp requests from the network. The stdio mode is not described as affected, and the official Docker configuration that exposes HTTP mode on 0.0.0.0:3000 is the case named in the sources. Teams that only use tsParticles as a animation library in the browser can skip it.","tier":"B","verified":{},"analyst_revisit_at":null,"fix_status":"available","audience":"developers","plain_action":null,"pkeys":[],"ptokens":[],"labels":["aitooling","docker","high","mcp","nodejs","tsparticles"],"campaign_type":null,"first_public_at":"2026-07-02T07:24:28+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-63655","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-63655","severity":null,"published_at":"2026-11-04T22:18:07+00:00","modified_at":"2026-11-04T22:18:07+00:00","first_seen_at":"2026-11-04T23:08:49+00:00","fetched_at":"2026-11-04T23:08:49+00:00","note":null}],"documents":[{"id":71180,"url":"https://github.com/tsparticles/tsparticles/commit/25fb70e7f527a91568adaef576570289083f243b","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":71181,"url":"https://github.com/tsparticles/tsparticles/commit/7b3a9488d4201fe9ddd5fec05f4a2ae65d3627ea","title":"Patch: github.com","kind":"other","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Patch: github.com"},{"id":71182,"url":"https://github.com/tsparticles/tsparticles/releases/tag/v4.3.1","title":"Release notes: github.com","kind":"release","source":"nvd","publisher":"vendor","text":null,"published_at":null,"relation":"fix","confidence":null,"note":"Release notes: github.com"},{"id":71183,"url":"https://github.com/tsparticles/tsparticles/security/advisories/GHSA-447x-qqwf-m7xq","title":"Vendor advisory: github.com","kind":"vendor","source":"nvd","publisher":"vendor","text":null,"published_at":"2026-07-02T07:24:28+00:00","relation":"advisory","confidence":null,"note":"Vendor advisory: github.com"}],"exploit_sources":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}