CVE-2026-55538
### Summary `praisonai serve agents` exposes HTTP routes that invoke registered agents. The CLI advertises `--api-key` with help text "API key for authentication", parses it, and forwards it into `ServeHandler`. But `_create_agents_app()` **never reads `config["api_key"]` again** and installs no auth dependency or middleware on its direct routes. The configured key is a no-op flag. As a result, an unauthenticated network caller can invoke exposed agents (`POST /agents` and `POST /agents/{agent_name}`) even when the operator passed `--api-key`. Requests with no credentials, a wrong `Authorization: Bearer`, a wrong `X-API-Key`, or an empty bearer all reach `agent.start()`. The failure is made sharper by the fact that a **working auth dependency already exists in the same module** — `praisonai.api.agent_invoke.verify_token` guards every `/api/v1/...` route with `Depends(verify_token)` and is mounted into the very same app. The direct n8n-compat routes simply do not use it. ## Technical Detail ### Source-to-sink trace **1. CLI advertises and forwards `--api-key`:** ```python # cli/commands/serve.py @app.command("agents") def serve_agents(..., api_key: Optional[str] = typer.Option(None, "--api-key", help="API key for authentication")): ... if api_key: args.extend(["--api-key", api_key]) exit_code = handle_serve_command(args) ``` **2. `cmd_agents()` parses `api_key` into the spec — and that is the last time it is touched:** ```python # cli/features/serve.py — cmd_agents() spec = { ..., "api_key": {"default": None} } parsed = self._parse_args(args, spec) app = self._create_agents_app(parsed) ``` A grep of the entire `cli/features/serve.py` for `api_key` returns **only** the two `spec` entries (`cmd_agents` line ~199 and `cmd_unified` line ~847). `config["api_key"]` is never read inside `_create_agents_app()` / `_create_unified_app()`; it is never compared, and no dependency is attached. **3. `_create_agents_app()` imports `FastAPI, HT
Properties
- ghsa_id
- GHSA-r7v3-x45f-g7hp
- summary
- PraisonAI: [Auth Bypass] `praisonai serve agents --api-key` is silently ignored — agent-invocation routes (`POST /agents`, `POST /agents/{agent_name}`) run unauthenticated
- severity
- high
- cvss_score
- 7.3
- cve_id
- CVE-2026-55538
- cvss_vector
- CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:L
- is_ghsa_only
- false
- ghsa_published
- 2026-08-25T14:56:59Z
- source_url
- https://github.com/advisories/GHSA-r7v3-x45f-g7hp
- ghsa_updated
- 2026-08-25T14:57:00Z
Related Entities (4)
REPORTED_BY (1)
VULNERABLE_TO (1)
AFFECTS (1)
HAS_WEAKNESS (1)
Explore deeper with Ninja Signal's threat intelligence graph