CVE-2026-61435: PraisonAI: Host header spoof bypasses agent auth
HIGH PoC AVAILABLE CISA: TRACK*PraisonAI's Call API ships an opt-in insecure mode (PRAISONAI_CALL_AUTH=disabled) meant only for localhost, but the code determines 'local' by reading the client-controlled HTTP Host header instead of the actual socket peer — so any remote attacker can send Host: 127.0.0.1 and unlock the API. This matters because the affected endpoints list and invoke registered AI agents (GET /api/v1/agents, POST /api/v1/agents/{id}/invoke) with zero authentication, network access, and no user interaction, and CVSS scores it 8.2 (AC:L, PR:N) reflecting how trivial it is to trigger. There's no EPSS score or CISA KEV listing yet and no public exploit or Nuclei template has surfaced, so this looks pre-exploitation rather than actively weaponized, but the fix is a one-line-config mistake pattern likely to recur in other self-hosted agent frameworks. Only 1 tracked downstream dependent is currently exposed via this pipeline, but any deployment that ever enabled PRAISONAI_CALL_AUTH=disabled and is network-reachable (not just localhost) is exploitable today. Patch to PraisonAI 4.6.78+, and treat PRAISONAI_CALL_AUTH=disabled as unsafe for any host that isn't strictly firewalled to loopback regardless of the app-level check.
What is the risk?
High severity but conditional: exploitation requires the operator to have opted into PRAISONAI_CALL_AUTH=disabled, which is documented as a localhost-only convenience setting. Where that condition holds, exploitability is trivial — a single spoofed Host header, no credentials, no user interaction, low complexity (CVSS AC:L, PR:N, UI:N). Impact per the vector is confidentiality-low/integrity-high/availability-none (C:L/I:H/A:N), meaning the primary risk is unauthorized manipulation via agent invocation rather than mass data exfiltration or service disruption. No EPSS percentile, KEV listing, public PoC, or scanner template exists yet, so real-world exploitation activity is unconfirmed — this is a 'patch before it's targeted' situation, not an active-incident one.
How does the attack unfold?
What systems are affected?
| Package | Ecosystem | Vulnerable Range | Patched |
|---|---|---|---|
| PraisonAI | pip | — | No patch |
Do you use PraisonAI? You're affected.
How severe is it?
What is the attack surface?
What should I do?
1 step-
Upgrade to PraisonAI 4.6.78 or later, which fixes the host-derivation logic per the linked GitHub commits. Until patched, do not rely on PRAISONAI_CALL_AUTH=disabled for security — treat it as equivalent to 'no auth' and enforce isolation at the network layer (bind the service to 127.0.0.1 at the OS/socket level, or block external access with a firewall/security group, not just app-level Host header inspection). Audit any internet- or intranet-exposed PraisonAI instances for this environment variable being set. For detection, monitor access logs for GET /api/v1/agents or POST /api/v1/agents/*/invoke requests carrying a Host: 127.0.0.1 (or other loopback) header that did not originate from the local interface — this is a strong indicator of exploitation attempts.
What does CISA's SSVC say?
Source: CISA Vulnrichment (SSVC v2.0). Decision based on the CISA Coordinator decision tree.
How is it classified?
Which compliance frameworks are affected?
This CVE is relevant to:
Frequently Asked Questions
What is CVE-2026-61435?
PraisonAI's Call API ships an opt-in insecure mode (PRAISONAI_CALL_AUTH=disabled) meant only for localhost, but the code determines 'local' by reading the client-controlled HTTP Host header instead of the actual socket peer — so any remote attacker can send Host: 127.0.0.1 and unlock the API. This matters because the affected endpoints list and invoke registered AI agents (GET /api/v1/agents, POST /api/v1/agents/{id}/invoke) with zero authentication, network access, and no user interaction, and CVSS scores it 8.2 (AC:L, PR:N) reflecting how trivial it is to trigger. There's no EPSS score or CISA KEV listing yet and no public exploit or Nuclei template has surfaced, so this looks pre-exploitation rather than actively weaponized, but the fix is a one-line-config mistake pattern likely to recur in other self-hosted agent frameworks. Only 1 tracked downstream dependent is currently exposed via this pipeline, but any deployment that ever enabled PRAISONAI_CALL_AUTH=disabled and is network-reachable (not just localhost) is exploitable today. Patch to PraisonAI 4.6.78+, and treat PRAISONAI_CALL_AUTH=disabled as unsafe for any host that isn't strictly firewalled to loopback regardless of the app-level check.
Is CVE-2026-61435 actively exploited?
Proof-of-concept exploit code is publicly available for CVE-2026-61435, increasing the risk of exploitation.
How to fix CVE-2026-61435?
Upgrade to PraisonAI 4.6.78 or later, which fixes the host-derivation logic per the linked GitHub commits. Until patched, do not rely on PRAISONAI_CALL_AUTH=disabled for security — treat it as equivalent to 'no auth' and enforce isolation at the network layer (bind the service to 127.0.0.1 at the OS/socket level, or block external access with a firewall/security group, not just app-level Host header inspection). Audit any internet- or intranet-exposed PraisonAI instances for this environment variable being set. For detection, monitor access logs for GET /api/v1/agents or POST /api/v1/agents/*/invoke requests carrying a Host: 127.0.0.1 (or other loopback) header that did not originate from the local interface — this is a strong indicator of exploitation attempts.
What systems are affected by CVE-2026-61435?
This vulnerability affects the following AI/ML architecture patterns: agent frameworks, AI agent APIs, agent orchestration.
What is the CVSS score for CVE-2026-61435?
CVE-2026-61435 has a CVSS v3.1 base score of 8.2 (HIGH). The EPSS exploitation probability is 0.69%.
What is the AI security impact?
Affected AI Architectures
MITRE ATLAS Techniques
AML.T0049 Exploit Public-Facing Application AML.T0053 AI Agent Tool Invocation AML.T0084 Discover AI Agent Configuration Compliance Controls Affected
What are the technical details?
Original Advisory
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.
Exploitation Scenario
An attacker scans for internet- or corporate-network-reachable PraisonAI Call API instances (e.g., a dev/staging agent server left reachable beyond localhost with PRAISONAI_CALL_AUTH=disabled for convenience). They send a GET request to /api/v1/agents with a forged 'Host: 127.0.0.1' header; the flawed localhost check trusts the header and serves the full list of registered agents and their metadata without authentication. The attacker then picks a high-value agent and sends POST /api/v1/agents/{agent_id}/invoke with the same spoofed header, causing the agent to execute its configured tools/actions on the attacker's behalf — potentially reading files, calling internal APIs, or interacting with other connected systems, all without ever presenting valid credentials.
Weaknesses (CWE)
CWE-287 — Improper Authentication: When an actor claims to have a given identity, the product does not prove or insufficiently proves that the claim is correct.
- [Architecture and Design] Use an authentication framework or library such as the OWASP ESAPI Authentication feature.
Source: MITRE CWE corpus.
CVSS Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N References
- github.com/MervinPraison/PraisonAI/commit/2a855c470077c7d2e2479a575f7ef7f548d51c33 patch
- github.com/MervinPraison/PraisonAI/commit/846568c7a5d8ce9e71e56e4c213f027c04909753 patch
- github.com/MervinPraison/PraisonAI/security/advisories/GHSA-2gpf-2492-q9jh vendor-advisory
- vulncheck.com/advisories/praisonai-before-authentication-bypass-via-host-header-spoofing third-party-advisory
Timeline
Related Vulnerabilities
CVE-2026-48168 10.0 PraisonAI: shell injection in Claude Action enables RCE
Same package: praisonai CVE-2026-61447 10.0 PraisonAI: RCE via unsandboxed LLM code execution
Same package: praisonai CVE-2026-61445 9.9 PraisonAI: AICoder root RCE via unsanitized tool calls
Same package: praisonai GHSA-vmmj-pfw7-fjwp 9.9 praisonai: sandbox escape gives RCE via codeMode tool
Same package: praisonai CVE-2026-47392 9.9 praisonaiagents: RCE via Python sandbox bypass
Same package: praisonai