Junglewise Threat Intelligence

EvoMap evolver unbounded request body in /asset/submit proxy

Severity: low · CVSS 3.1 · Published 2026-05-05

Technologies: @evomap/evolver (npm), EvoMap Evolver. Vendors: npm, EvoMap.

Executive brief

@evomap/evolver is a JavaScript proxy daemon used to manage asset submissions and messaging. An unauthenticated local attacker can send arbitrarily large HTTP POST requests to the /asset/submit endpoint, causing the daemon to store unlimited data to disk. This exhausts available disk space persistently, even after daemon restarts, leading to application unavailability and potential data loss across the system.

Technical details

The vulnerability is an unbounded denial-of-service (DoS) via unvalidated request body size in the HTTP proxy's /asset/submit and /mailbox/send routes. The parseBody() function in src/proxy/server/http.js accumulates all incoming request chunks without checking Content-Length or enforcing a cumulative-byte limit. The POST handler forwards the full body payload to store.send(), which persists it verbatim as a JSONL line in messages.jsonl via synchronous fs.appendFileSync(). An unauthenticated local process (another system user, container neighbor, or malicious npm postinstall script) can repeatedly POST multi-megabyte bodies to rapidly fill the disk. On daemon restart, _rebuildIndex() calls fs.readFileSync() synchronously to read the entire messages.jsonl file, causing out-of-memory crashes if the file is multi-gigabytes. The daemon is bound to 127.0.0.1 only, but local access is achievable in multi-tenant dev environments, shared containers, and during npm package installation. Patched in version 1.70.0-beta.5.

Affected products

  • EvoMap evolver <= 1.70.0-beta.4

Timeline

  • 2026-05-05: disclosed
  • 2026-05-05: patched: Fixed in version 1.70.0-beta.5

References

Related threats