CSIRTS // UNIFIED SECURITY ADVISORY FEEDSYS ● ONLINE · POWERED BY INTELFUSIONS.COM

CVE-2026-55529

mediumCVSS 6.9covered by 2 sourcesfirst seen 2026-08-25
Summary PraisonAI's MCP HTTP Stream transport uses an unsafe prefix match when validating the Origin header. The default localhost allowlist includes origins such as http://localhost, and the validation accepts any origin that starts with an allowed value. As a result, an attacker-controlled origin such as http://localhost.evil.example passes the localhost origin check. When the MCP HTTP Stream server is started without an API key, which is the CLI default, this allows a malicious webpage to trigger unauthenticated MCP tools/call requests against a locally running PraisonAI MCP server. This is best framed as a browser-mediated localhost attack / DNS-rebinding-style Origin validation bypass. The default server binds to 127.0.0.1, so this is not a directly internet-facing unauthenticated API in the default configuration. Details Relevant source locations: - src/praisonai/praisonai/mcp_server/cli.py - src/praisonai/praisonai/mcp_server/transports/http_stream.py - src/praisonai/praisonai/mcp_server/server.py - src/praisonai/praisonai/mcp_server/adapters/init.py - src/praisonai/praisonai/mcp_server/adapters/extended_capabilities.py - src/praisonai/praisonai/mcp_server/adapters/cli_tools.py - src/praisonai/praisonai/capabilities/files.py The MCP CLI defaults to HTTP host 127.0.0.1, API key None, and allowed origins None unless explicitly configured: parser.add_argument("--host", default="127.0.0.1") parser.add_argument("--port", type=int, default=8080) parser.add_argument("--api-key", default=None) parser.add_argument("--allowed-origins", default=None, help="Comma-separated allowed origins for security") The CLI registers all tools and passes the optional API key and allowed origins into the HTTP Stream transport: register_all() server.run_http_stream( host=parsed.host, port=parsed.port, endpoint=parsed.endpoint, api_key=parsed.api_key, cors_origins=cors_origins, allowed_origins=allowed_origins, session_ttl=parsed.session_ttl, allow_client_termination=allow_te

⚡ Watch CVE-2026-55529

Get an email if CVE-2026-55529 is added to CISA KEV, gains public exploit code, or a new advisory cites it — max one per day, one-click unsubscribe.

Advisory coverage (2)

External references

NVD record for CVE-2026-55529

CVE.org record

Embed the live status

CVE-2026-55529 live status badge — this badge updates automatically when the KEV or exploit status changes. How to embed it →

[![CVE-2026-55529 status](https://www.csirts.com/badge/CVE-2026-55529)](https://www.csirts.com/cve/CVE-2026-55529)