highCVSS 8.2Vulnerability

GHSA-5qw8-f2g9-ff29

# PraisonAI `recipe serve` Typer command bypasses the non-localhost authentication guard ## Summary PraisonAI's installed console entrypoint is Typer-first. In current releases, the `recipe` command is registered in the Typer app and `praisonai recipe serve` dispatches to the deprecated Typer command in `src/praisonai/praisonai/cli/commands/recipe.py`. That Typer command can start the Recipe HTTP server on a non-localhost interface with no authentication: ```text praisonai recipe serve --host 0.0.0.0 --admin ``` It prints a deprecation warning, then launches the server with: ```json { "host": "0.0.0.0", "config": { "cors_origins": "*", "enable_admin": true } } ``` Because `config.auth` is absent, `create_app()` does not attach the API-key or JWT middleware. Unauthenticated requests can then reach the recipe API and, when enabled, `/admin/reload`. This is an incomplete hardening / sibling-callsite issue. The legacy feature handler in `src/praisonai/praisonai/cli/features/recipe.py` rejects the same non-localhost/no-auth combination, and current `create_auth_middleware()` now fails closed if API-key/JWT auth is selected without a secret. The installed Typer command bypasses both expectations by never requiring or setting `auth`. ## Affected product - Repository: `MervinPraison/PraisonAI` - Package: `praisonai` - Component: - `src/praisonai/praisonai/__main__.py` - `src/praisonai/praisonai/cli/app.py` - `src/praisonai/praisonai/cli/commands/recipe.py` - `src/praisonai/praisonai/cli/features/recipe.py` - `src/praisonai/praisonai/recipe/serve.py` Confirmed affected: ```text v4.6.58 1ad58ca02975ff1398efeda694ea2ab78f20cf3e v4.6.57 e90d92231853161ad931f3498da57651a9f8b528 v4.6.56 d3c4a2afadfbf3a3e172e460e607ba4efad263a6 v4.6.34 e5928449f73f66cc8af1de61621aa974ab255133 v4.6.33 dfbb8d78ec7e8dc7118bc722ab1b2524bc98ddab v4.6.10 4b1b17b963cbd0625e41394a30168c95b26429b2 v4.5.128 b4e3a8a84ade44ac3dd9102b792cdb4311a95937 v4.5.112 bfe3d94ba

Properties

ghsa_id
GHSA-5qw8-f2g9-ff29
summary
PraisonAI recipe serve Typer command bypasses the non-localhost authentication guard
severity
high
cvss_score
8.2
cve_id
GHSA-5qw8-f2g9-ff29
cvss_vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N
is_ghsa_only
true
ghsa_published
2026-06-18T13:52:44Z
source_url
https://github.com/advisories/GHSA-5qw8-f2g9-ff29
ghsa_updated
2026-06-18T13:52:45Z

Related Entities (6)

REPORTED_BY (1)

[Source]GitHub Advisory Database

VULNERABLE_TO (1)

[Software]pip/praisonai

AFFECTS (1)

[Software]pip/praisonai

HAS_WEAKNESS (3)

[Weakness]Missing Authorization
[Weakness]Missing Authentication for Critical Function
[Weakness]Improper Authentication

Explore deeper with Ninja Signal's threat intelligence graph