Description
PraisonAI before 4.6.78 contains an authentication bypass in the Call API agent invocation endpoints (src/praisonai/praisonai/api/agent_invoke.py) when PRAISONAI_CALL_AUTH=disabled is configured. The safeguard intended to restrict the disabled-auth opt-out to localhost binding derives the bind host from request.url.hostname, which is taken from the client-controlled HTTP Host header. A remote, unauthenticated attacker who can reach the service over the network can send a spoofed 'Host: 127.0.0.1' header to bypass the localhost-only restriction and list (GET /api/v1/agents) and invoke (POST /api/v1/agents/{agent_id}/invoke) registered agents without authentication.
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| MervinPraison | PraisonAI | < 4.6.78 | 4.6.78 |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| PyPI | praisonai | < 4.6.78 | 4.6.78 | GHSA-2gpf-2492-q9jh |
References
- GitHub Security Advisory (GHSA-2gpf-2492-q9jh) vendor-advisory
- https://github.com/MervinPraison/PraisonAI/commit/2a855c470077c7d2e2479a575f7ef7f548d51c33 patch
- https://github.com/MervinPraison/PraisonAI/commit/846568c7a5d8ce9e71e56e4c213f027c04909753 patch
- VulnCheck Advisory: PraisonAI before 4.6.78 Authentication Bypass via Host Header Spoofing third-party-advisory