Summary
PraisonAI's Recipe HTTP server can be exposed on a non-localhost interface without API-key or JWT authentication when started through the affected console command. An unauthenticated attacker who can reach the server may access recipe APIs and, when enabled, the administrative reload endpoint.
PraisonAI's Recipe HTTP server can be exposed on a non-localhost interface without API-key or JWT authentication when started through the affected console command. An unauthenticated attacker who can reach the server may access recipe APIs and, when enabled, the administrative reload endpoint.
Affected context
The issue affects PraisonAI deployments using the affected Typer-based recipe server command. Risk arises when the server binds to an externally reachable interface and authentication configuration is absent, allowing the application to create the API without attaching API-key or JWT middleware.
The issue affects PraisonAI deployments using the affected Typer-based recipe server command. Risk arises when the server binds to an externally reachable interface and authentication configuration is absent, allowing the application to create the API without attaching API-key or JWT middleware.
Exploit preconditions
- Attack surface: PraisonAI Recipe HTTP server and its exposed API endpoints
- Required access: Network reachability to the server; no valid credentials are required
- Trigger point: Starting the recipe server through the affected console command
- Why exploitation is possible: Missing authentication configuration prevents API-key or JWT middleware from being attached, while the server may listen beyond localhost
- Attack surface: PraisonAI Recipe HTTP server and its exposed API endpoints
- Required access: Network reachability to the server; no valid credentials are required
- Trigger point: Starting the recipe server through the affected console command
- Why exploitation is possible: Missing authentication configuration prevents API-key or JWT middleware from being attached, while the server may listen beyond localhost
Why this happens
The underlying flaw is a missing authentication control in the server construction path. When authentication configuration is absent, the application proceeds without installing authentication middleware, even if the server is reachable through a non-localhost interface. This maps primarily to CWE-306: Missing Authentication, with related exposure described by CWE-287: Improper Authentication and CWE-862: Missing Authorization.
The underlying flaw is a missing authentication control in the server construction path. When authentication configuration is absent, the application proceeds without installing authentication middleware, even if the server is reachable through a non-localhost interface. This maps primarily to CWE-306: Missing Authentication, with related exposure described by CWE-287: Improper Authentication and CWE-862: Missing Authorization.
Potential impact
- Unauthenticated users may access recipe API functionality
- Attackers could retrieve or manipulate data exposed by recipe endpoints
- The optional administrative reload operation could be invoked without authorization
- The exposed service could be abused as an entry point for further compromise
- Unauthenticated users may access recipe API functionality
- Attackers could retrieve or manipulate data exposed by recipe endpoints
- The optional administrative reload operation could be invoked without authorization
- The exposed service could be abused as an entry point for further compromise
General mitigation guidance
Mitigation generally focuses on ensuring that externally reachable management and API services fail closed when authentication is not configured.
Common defensive patterns include:
- Require API-key or JWT authentication before starting a non-localhost server
- Refuse insecure configurations rather than silently disabling authentication
- Keep administrative endpoints disabled unless explicitly required
- Bind development and management services to localhost or a protected network by default
- Place exposed services behind authenticated gateways and restrictive network policies
- Apply least privilege to the process and its access to files, secrets, and other services
- Separate administrative routes from general API routes and enforce authorization on every sensitive operation
Mitigation generally focuses on ensuring that externally reachable management and API services fail closed when authentication is not configured.
Common defensive patterns include:
- Require API-key or JWT authentication before starting a non-localhost server
- Refuse insecure configurations rather than silently disabling authentication
- Keep administrative endpoints disabled unless explicitly required
- Bind development and management services to localhost or a protected network by default
- Place exposed services behind authenticated gateways and restrictive network policies
- Apply least privilege to the process and its access to files, secrets, and other services
- Separate administrative routes from general API routes and enforce authorization on every sensitive operation
How teams detect issues like this
Organizations can identify this class of issue through:
- Static analysis and code review for conditional middleware registration based on optional authentication settings
- Checks for HTTP servers binding to wildcard or non-localhost interfaces without mandatory authentication
- Tests verifying that unauthenticated requests receive denial responses for all API and administrative routes
- Configuration-policy rules that prohibit exposed management endpoints without an approved authentication layer
- Runtime monitoring for unexpected access to recipe APIs, reload operations, or externally bound development services
- Automated security review tools that flag missing authentication and authorization middleware
Organizations can identify this class of issue through:
- Static analysis and code review for conditional middleware registration based on optional authentication settings
- Checks for HTTP servers binding to wildcard or non-localhost interfaces without mandatory authentication
- Tests verifying that unauthenticated requests receive denial responses for all API and administrative routes
- Configuration-policy rules that prohibit exposed management endpoints without an approved authentication layer
- Runtime monitoring for unexpected access to recipe APIs, reload operations, or externally bound development services
- Automated security review tools that flag missing authentication and authorization middleware
Sources
| Source | Link |
|---|---|
| github. | github.com/ |

