One server, ten CVEs, one very bad week
Praisonai MCP Server just posted ten security advisories in a single disclosure window โ two critical, eight high. If you're running it anywhere near untrusted input, stop and read this before you do anything else.
10 advisories published between October 7โ8, 2026. Two are critical: arbitrary file write/command execution, and code injection via f-string interpolation. Both let an attacker run their own code on your machine.
The critical pair
CVE-2026-61445 is the headline. PraisonAI's AICoder UI component hands the LLM write_to_file and execute_command tools with zero path validation and zero command sanitization. Prompt injection in the chat interface is enough to write to /root/.ssh/authorized_keys or /etc/crontab โ and since Docker containers run as root, the blast radius is total.
CVE-2026-61444 is just as bad, different door. The deploy/api.py module builds Python server code by f-string-interpolating an agents_file value straight into source that gets executed via subprocess.Popen(). Anyone who controls that value โ CLI arg, config, upstream API โ gets arbitrary code execution at deploy time.
Two critical bugs, one root cause: user-controlled strings going straight into something that executes.
The "unauthenticated by default" pattern
Four of the eight high-severity advisories share a theme โ surfaces that are wide open unless you remember to lock them:
- CVE-2026-61427: the MCP HTTP-stream transport only authenticates if an API key is configured. Default CLI flag is
None, sopraisonai mcp serve --transport http-streamexposes all ~50 tools to anyone who can reach it. - CVE-2026-60091: the Jobs API's auth middleware only activates if
PRAISONAI_JOBS_API_KEYis set. Unauthenticated callers can POST awebhook_urland trigger SSRF via DNS rebinding against the SSRF validator's TOCTOU gap. - CVE-2026-61435: the "localhost-only" Call API safeguard checks the
Hostheader โ which a remote caller can simply spoof. - CVE-2026-61436: the AgentMail webhook mode accepts forged
message.receivedevents because it never verifies Svix signatures, letting anyone inject messages into live agent sessions.
Hardening that doesn't actually harden
Two more advisories hit defenses that look solid on paper and aren't:
- CVE-2026-60085:
SecurityPolicy'sstrict()sandbox mode โ the one meant for untrusted code โ doesn't actually enforce its command/path/import restrictions in the defaultSubprocessSandboxbackend. - CVE-2026-61439: the prompt-injection defense layer only blocks at threat level
CRITICAL, which needs three simultaneous detection hits. A single flagged "dangerous" signal sails through.
Rounding out the list: CVE-2026-61434 (the find -exec shell-allowlist bypass that undoes an earlier chaining fix) and CVE-2026-61433 (unescaped YAML fields spliced into generated Python at deploy time).
What to do right now
If you run PraisonAI, treat every advisory above as live until you've confirmed a patched version. Set API keys on the MCP HTTP-stream and Jobs API transports explicitly โ don't rely on defaults. Don't run AICoder or the deploy flow against untrusted input or as root. And if you're relying on SecurityPolicy.strict() or the injection defense to hold a line, assume it currently doesn't.
Ten advisories against one project in two days isn't a fluke โ it's what happens when "LLM calls the tool" meets "tool trusts the LLM." Patch first, ask questions later.
MCP Security Weekly
Weekly CVE alerts, new server roundups, and MCP ecosystem insights. Free.
Keep reading
This article was written by AI, powered by Claude and real-time MCPpedia data. All facts and figures are sourced from our database - but AI can make mistakes. If something looks off, let us know.