PraisonAI Legacy API Server Authentication Bypass (CVE-2026-44338)
PraisonAI ships a legacy Flask API server with authentication disabled by default, allowing any reachable caller to access `/agents` and trigger the configured `agents.yaml` workflow through `/chat` without providing a token (CVE-2026-44338).
PraisonAI includes a legacy Flask API server (src/praisonai/api_server.py) that, by default, ships with authentication disabled. This is due to hardcoded values AUTH_ENABLED = False and AUTH_TOKEN = None, causing the check_auth() function to always return True and effectively bypass authentication checks on /agents and /chat endpoints. The affected versions range from v2.5.6 to 4.6.33, which is the current PyPI release as of May 1, 2026. The serve agents command is not affected, but the older api_server.py binds to 0.0.0.0:8080 by default, and the generated sample API deployment YAML recommends host: 0.0.0.0 together with auth_enabled: false, further exacerbating the issue. This vulnerability, identified as CVE-2026-44338, allows unauthenticated access to sensitive functionality.
Attack Chain
- Target identifies a PraisonAI instance running the vulnerable legacy API server.
- Target sends a GET request to
/agentsendpoint to enumerate available agents. - The API server, due to disabled authentication, grants access to the
/agentsendpoint without requiring any authentication credentials. - The server responds with agent metadata, revealing the configured
agents.yamlfile. - Target crafts a POST request to the
/chatendpoint, including amessagekey in the JSON payload. - The API server processes the request, bypassing authentication, and executes the workflow defined in
agents.yamlby callingPraisonAI(agent_file="agents.yaml").run(). - The API server returns the result of the
PraisonAI.run()call to the unauthenticated attacker. - Depending on the configuration specified in agents.yaml, this can result in data exfiltration, code execution, or denial of service via resource exhaustion.
Impact
Successful exploitation allows any attacker with network access to the vulnerable PraisonAI instance to enumerate configured agents, trigger workflows defined in agents.yaml, consume model/API quota, and potentially expose sensitive information. The impact is determined by the capabilities defined in the agents.yaml file, but the authentication bypass itself is unconditional in the shipped legacy server. This vulnerability affects PraisonAI versions 2.5.6 through 4.6.33.
Recommendation
- Deploy the Sigma rule “Detect Unauthenticated Access to PraisonAI Agents Endpoint” to detect unauthenticated access attempts to the
/agentsendpoint within your web server logs. - Deploy the Sigma rule “Detect Unauthenticated Chat Request to PraisonAI API Server” to identify unauthorized requests being made to the
/chatendpoint to trigger workflow executions. - Upgrade PraisonAI to a version that addresses CVE-2026-44338 or migrate to the newer
serve agentscommand which defaults to binding on localhost and supports API keys. - If upgrading is not immediately feasible, ensure the legacy API server’s
AUTH_ENABLEDsetting is set toTrueand configure a strongAUTH_TOKENto mitigate the unauthenticated access vulnerability. - Review and restrict network access to the legacy API server to minimize the attack surface and prevent unauthorized external access to the vulnerable endpoints.
Detection coverage 2
Detect Unauthenticated Access to PraisonAI Agents Endpoint
highDetects CVE-2026-44338 exploitation — GET requests to the /agents endpoint without authentication headers, indicating a potential authentication bypass attempt.
Detect Unauthenticated Chat Request to PraisonAI API Server
highDetects CVE-2026-44338 exploitation — POST requests to the /chat endpoint without authentication headers, indicating a potential authentication bypass and workflow trigger attempt.
Detection queries are available on the platform. Get full rules →