// threat brief
PraisonAI AgentTeam.launch() missing authentication: anyone who can reach the server can list and call your AI agents
- CVSS
- 9.8 CRITICAL
- CISA KEV
- Not listed
- Weakness
- CWE-306 · CWE-862
- Topics
- AI security
AI review 2026-10-17 (not human-reviewed)Command tests: none yetReproduced: not yetVerification record ↓
PraisonAI's AgentTeam.launch() HTTP server has no authentication, so anyone who can reach it can list and call your AI agents.
| Who is affected | Anyone using an affected praisonaiagents version (the CVE record says before 1.6.59 and also lists PraisonAI before 4.6.59; the maintainer's GitHub advisory says praisonaiagents 4.6.57 and earlier, so the two disagree) who starts an HTTP server with AgentTeam.launch() or Agents.launch() that is reachable over the network. |
|---|---|
| What happens | Depending on the deployed agents, an attacker may be able to list agents, call them, use up paid model usage, reach private context connected to the agents, or trigger agent tools and workflow side effects. |
| What to do now | Upgrade praisonaiagents to 1.6.59 or later and set the PRAISONAI_LAUNCH_AUTH_TOKEN environment variable; per the fix commit, all requests are still allowed if it is not set. Until you can upgrade, Vulert suggests temporarily binding the server to 127.0.0.1 so it is not reachable from outside. |
| Affected versions | CVE record — praisonaiagents before 1.6.59 and PraisonAI before 4.6.59; maintainer's GitHub advisory — praisonaiagents 4.6.57 and earlier (the two disagree) |
| Fixed versions | praisonaiagents 1.6.59 or later, with PRAISONAI_LAUNCH_AUTH_TOKEN set to enable authentication (PraisonAI 4.6.59 is probably the matching fixed release; this is our analysis) |
| CVSS vector | Show full vectorCVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| Timeline |
|
Blue team playbook
Check, fix / mitigate, respond, harden. Matching the affected versions does not mean you were compromised, and a check that finds nothing does not prove you are safe; each item says what it can and cannot show. Tagged steps point to where the attack flow below can be stopped.
- 01Check your version
Read-only; it does not change your environment. Run it on the host that runs the agent server, inside the same Python environment where PraisonAI is installed (activate the virtualenv first); otherwise you may be checking a different environment. praisonaiagents below 1.6.59 is in the CVE record's affected range (the CVE record also lists PraisonAI below 4.6.59; the maintainer's GitHub advisory says praisonaiagents 4.6.57 and earlier, which covers every 1.x version).
Read-only checkpip show praisonaiagents praisonai | grep -iE '^(name|version)' - 02Find code that starts a server with launch()
Read-only; it does not change any files. Run it from your own project's source root; it searches all subfolders. The command only lists .launch( calls and cannot tell you the bind address, so check each hit for a host argument and its value. You are exposed only if you start an HTTP server with AgentTeam.launch() or Agents.launch() and it is reachable over the network. Note that Agents.launch() binds to 0.0.0.0 by default, so leaving out host may still expose it.
Read-only checkgrep -rnE '\.launch\(' --include='*.py' . - 03Review access logs for unexpected calls
PlainCVE's suggestion (the sources we reviewed contain no detection guidance): check logs on the agent server or any reverse proxy in front of it for requests to the agent-listing or agent-call paths from unfamiliar sources, and compare against unusual spikes in model provider usage.
- 01Upgrade to praisonaiagents 1.6.59 or later and set PRAISONAI_LAUNCH_AUTH_TOKEN
Changes your environment (installs or upgrades a package). Run it on the host that runs the agent server, inside the same Python environment where PraisonAI is installed (activate the virtualenv first). Per fix commit b4270173, the new version reads the PRAISONAI_LAUNCH_AUTH_TOKEN environment variable; if it is not set, the check allows every request, so upgrading without setting it leaves the endpoints unauthenticated. Once set, requests must carry the token as a Bearer token in the Authorization header or in an X-Auth-Token header, or they get a 401. The fix does not change launch()'s default bind address.
Changes your environmentpip install -U "praisonaiagents>=1.6.59" - 02Can't upgrade yet: bind to 127.0.0.1
A temporary workaround from Vulert that keeps the server unreachable from outside; Vulert says it is not a full fix.
- 01Rotate credentials of services the agents use
PlainCVE's suggestion: if you find suspicious calls, rotate the credentials the agents' tools use and your model provider keys, and check whether the tools performed unexpected actions. This is a precaution, not a confirmation of a leak.
- 01Don't expose agent servers directly to the internet
PlainCVE's suggestion (the sources we reviewed contain no such guidance): even after upgrading, restrict who can reach it behind a firewall or reverse proxy.
- 02Give agents only necessary tools and least privilege
PlainCVE's suggestion (the sources we reviewed contain no such guidance): the real impact of this flaw depends on what the agents can do; the less they can do, the less damage misuse causes.
Full remediation steps and notes
- Upgrade.
pip install -U "praisonaiagents>=1.6.59"(changes your environment; run it on the host that runs the agent server, in the same Python environment where PraisonAI is installed). If you install thepraisonaipackage, the CVE record lists versions before 4.6.59 as affected, and our analysis is that 4.6.59 is the matching release. After upgrading, runpip show praisonaiagentsto confirm you actually have 1.6.59 or later. - You must set a key after upgrading. Per fix commit
b4270173, authentication forlaunch()is only enabled when thePRAISONAI_LAUNCH_AUTH_TOKENenvironment variable is set; without it every request is allowed, so upgrading alone leaves the endpoints unauthenticated. PlainCVE’s suggestion: set a long, random value in the environment that starts the server, and have legitimate callers send it in theAuthorization: BearerorX-Auth-Tokenheader. - The workaround is only temporary. Binding to
127.0.0.1, as Vulert suggests, blocks outside connections, but other programs on the same machine can still connect. Vulert itself says it is not a full fix. - Check for misuse. The sources we reviewed contain no detection guidance. PlainCVE suggests comparing server logs with your model provider’s usage, and rotating the credentials the agents’ tools use if you see suspicious calls.
Attack flow
Read left to right: this is the order the attack happens in. A blue shield means the step can be stopped; the earlier, the better. Click an icon for details.
Read top to bottom: this is the order the attack happens in. A blue shield means the step can be stopped; the earlier, the better. Tap an icon for details.
- Attacker
Finds a PraisonAI agent server reachable over the network
Agents.launch() binds to 0.0.0.0 (all network interfaces) by default, and the official docs show the same for remote access, so servers are more likely to be exposed to the network.
Defense: Vulert's temporary workaround: bind the server to 127.0.0.1 so it can't be reached from outside.
- Attacker
Calls the agent-listing endpoint with no credentials
Requests with no Authorization header are accepted, and so are requests carrying an obviously wrong token.
Defense: Upgrade praisonaiagents to 1.6.59 or later and set PRAISONAI_LAUNCH_AUTH_TOKEN.
- Your system
The server returns the agent list without any access check
Older versions registered these routes without any authentication or authorization check.
Defense: The fix commit adds a token check to these routes, but it only takes effect when PRAISONAI_LAUNCH_AUTH_TOKEN is set.
- Your system
The attacker calls an agent, and the server runs agent.chat() directly
Each call may use up your paid model usage and may let the agent reveal private context it can access.
Defense: Upgrade and set PRAISONAI_LAUNCH_AUTH_TOKEN; also, PlainCVE's suggestion: set usage limits at your model provider.
- External
Agent tools or workflows are triggered
What happens depends on which tools the agents have been given.
Defense: PlainCVE's suggestion: give agents only the tools they need, with least-privilege credentials.
Who is affected
| Condition | Affected? |
|---|---|
praisonaiagents before 1.6.59 (CVE record) / 4.6.57 and earlier (maintainer’s GitHub advisory) + an HTTP server started with AgentTeam.launch() / Agents.launch() + the server is reachable over the network | Affected |
| PraisonAI before 4.6.59 | Listed as affected in the CVE record |
praisonaiagents 1.6.59 or later, with PRAISONAI_LAUNCH_AUTH_TOKEN set | Fixed (both advisories list 1.6.59 or later as fixed; per the fix commit, the variable must be set for authentication to be checked) |
praisonaiagents 1.6.59 or later, without PRAISONAI_LAUNCH_AUTH_TOKEN set | Per the fix commit, the check allows every request, so the endpoints are still unauthenticated |
| PraisonAI 4.6.59 | Probably the matching fixed release (our analysis: the CVE record says versions before 4.6.59 are affected and links to the v4.6.59 release, but no source states the fix outright and the release page has no notes) |
Starting agents only via the praisonai serve agents --api-key CLI | The maintainer’s advisory explicitly does not judge this path; we can’t say |
Sources disagree on the affected range: The CVE record (CNA: GitHub) says praisonaiagents before 1.6.59 and PraisonAI before 4.6.59. The maintainer’s own GitHub security advisory (that page contains attack code, so we don’t link to it) says praisonaiagents 4.6.57 and earlier are affected and 1.6.59 or later is fixed. praisonaiagents uses 1.x version numbers, so in PlainCVE’s view the advisory’s upper bound looks like a PraisonAI version number entered for praisonaiagents by mistake; the GitLab advisory database says before 1.6.59. Both advisories list praisonaiagents 1.6.59 or later as fixed.
The reporter tested release v4.6.57 and the main-branch commit 2f9677ab at the time. An attacker needs to reach the server over the network, and Agents.launch() binds to 0.0.0.0 (all network interfaces) by default; the official docs show the same for remote access. In PlainCVE’s view, this makes accidental exposure more likely.
How it works
PraisonAI can wrap a team of AI agents (programs driven by a language model that call tools to finish tasks) as an HTTP service. AgentTeam.launch() and its alias Agents.launch() register three kinds of endpoints (URL paths on the server that can be called): one lists the agents, two call them. The problem is that these routes never check who is calling before listing agents or running agent.chat(). The maintainer’s advisory says requests with no Authorization header (the field that carries login credentials) are accepted, and so are requests with an obviously wrong token (an access credential).
This maps to CWE-306 (missing authentication for critical function) and CWE-862 (missing authorization). The maintainer’s advisory also describes it as a sibling of earlier PraisonAI advisories about unauthenticated API servers, a variant the earlier fixes did not cover.
According to the CVE record, anyone who can reach the server may be able to list agents, use up model resources (such as paid model usage), reach private context connected to the agents, and trigger agent tools or workflow side effects. Which of these is possible depends on the agents deployed.
The flawed approach (conceptual illustration, not the original source code):
Show code example(python)
@app.post("/{path}/{agent_id}")
def call_agent(agent_id, body):
# No identity check at all; run the agent directly
return agents[agent_id].chat(body.message)The fixed approach:
Show code example(python)
@app.post("/{path}/{agent_id}")
def call_agent(agent_id, body, request):
if not is_authorised(request): # reject without a valid key
raise Unauthorized()
return agents[agent_id].chat(body.message)The fix commit b4270173 is titled as adding API key authentication middleware. Its diff shows that praisonaiagents/agents/agents.py gains an _authorise_launch_request check: the token comes from the PRAISONAI_LAUNCH_AUTH_TOKEN environment variable and is compared against the Authorization: Bearer or X-Auth-Token header, with a 401 on mismatch. Note that if the environment variable is not set, the check allows every request, and the fix does not change launch()’s default bind address.
Timeline
| Date | Event |
|---|---|
| 2026-06-17 | PraisonAI v4.6.59 released (the release page shows no year; 2026 is inferred from the fix commit’s date) |
| 2026-06-17 | Maintainer publishes GitHub security advisory GHSA-x8cv-xmq7-p8xp (per the GitHub API’s published_at; the advisory page contains attack code, so we don’t link to it) |
| 2026-06-18 | Reviewed and added to the GitHub Advisory Database (the date OSV records) |
| 2026-06-24 | CVE ID reserved |
| 2026-07-23 | Python advisory database publishes PYSEC-2026-3537 |
| 2026-10-12 | CVE record published |
| 2026-10-13 | Still not in CISA’s Known Exploited Vulnerabilities catalog |
Further reading
- Scoring: 9.8 is the CVSS 3.1 score from the CNA (GitHub). NVD has not done its own analysis yet (status: Awaiting Analysis, as checked on 2026-10-17), so GitHub’s is the only score.
- Disclosure date: The maintainer’s GitHub security advisory was published on 2026-06-17 (published_at in the GitHub API; that page contains attack code, so we don’t link to it), before the CVE record on 2026-10-12, so this page uses June 17 as the first public disclosure. The 2026-06-18 date shown by OSV and GitLab is when the GitHub Advisory Database reviewed the entry; the 2026-07-23 date on Vulert’s CVE page is the PYSEC-2026-3537 publication date.
- Is it “remote code execution”? Miggo labels this CVE “Unauth RCE” (unauthenticated remote code execution). The maintainer’s advisory and the CVE record describe unauthenticated agent invocation and don’t claim arbitrary code execution. Our analysis: whether it leads to code execution depends on the tools the agents have, so treat the label as unconfirmed.
- Exploitation status: The advisory includes a local-only proof of concept that confirms the endpoints answer without authentication (that page contains attack code, so we don’t link to it). That is a public test, not evidence of attacks. The sources show no evidence of exploitation in the wild or before a patch existed. FIRST’s EPSS (a score predicting the chance of exploitation) is 0.33% (about the 24th percentile, as of 2026-10-16).
- Credit: The maintainer’s GitHub security advisory credits rexpository as the reporter. The CVE record’s discovery field is UNKNOWN; that field describes how the issue was found, not who is credited.
- Other ID: PYSEC-2026-3537.
Verification Checked item by item against sources by AI under our review rules, all passed; not human-reviewed and not yet reproduced in our lab
| AI review | 2026-10-17 · review rules |
|---|
Verification records describe the environment and the result only, never reproduction steps or code that could attack other people’s systems. See our policy.
Sources
- CVE / NVD / OSVCVE-2026-57118 Record (CVE API) · CVE Program, 2026-10-12 · accessed 2026-10-13
- CVE / NVD / OSVNVD API - CVE-2026-57118 · NIST · accessed 2026-10-13
- Patch / releasefeat(auth): implement API key authentication middleware for AgentOS (b4270173) · MervinPraison (GitHub), 2026-06-17 · accessed 2026-10-13
- Patch / releasePraisonAI v4.6.59 release · MervinPraison (GitHub), 2026-06-17 · accessed 2026-10-13
- AdvisoryGitLab Advisory Database - praisonaiagents GHSA-x8cv-xmq7-p8xp · GitLab · accessed 2026-10-13
- ResearchCVE-2026-57118: PraisonAI AgentTeam Unauth RCE · Miggo · accessed 2026-10-13
- OtherCVE-2026-57118 · Vulert · accessed 2026-10-13
Press brief
In one sentence
PraisonAI is an open-source framework for building teams of AI agents that work together. The HTTP server it starts with AgentTeam.launch() had no authentication at all, so anyone who could reach it could list and call the deployed agents. The CVE numbering authority (GitHub) scores it CVSS 9.8, and the fixed version, praisonaiagents 1.6.59, is available, but per the fix commit, authentication is only enabled after setting PRAISONAI_LAUNCH_AUTH_TOKEN. As of October 13, 2026, it is not on CISA's Known Exploited Vulnerabilities catalog.
Key facts
- Severity
- CVSS 3.1 9.8 (CNA: GitHub; NVD not yet analysed) cveawg.mitre.org
- Fixed version
- praisonaiagents 1.6.59 cveawg.mitre.org
- GitHub advisory
- GHSA-x8cv-xmq7-p8xp cveawg.mitre.org
- CVE published
- 2026-10-12 cveawg.mitre.org
Confirmed
- Before praisonaiagents 1.6.59, the agent-listing and agent-call endpoints registered by AgentTeam.launch() and Agents.launch() had no access checks.
- The maintainer's advisory says requests with no Authorization header or a wrong token are accepted, and Agents.launch() binds to 0.0.0.0 by default.
- As of 2026-10-13, it is not in CISA's Known Exploited Vulnerabilities catalog.
Unconfirmed / disputed
- Sources disagree on the affected range: the CVE record says praisonaiagents before 1.6.59, while the maintainer's GitHub advisory says 4.6.57 and earlier (fixed in 1.6.59 or later). In PlainCVE's view, the advisory's upper bound looks like a PraisonAI version number entered for praisonaiagents by mistake.
- Miggo labels it 'unauthenticated RCE', but neither the maintainer's advisory nor the CVE record says so; code execution depends on the agents' tools.
- The sources show no evidence of exploitation in the wild, and nothing shows it was exploited before a patch existed.
- No source states outright that PraisonAI 4.6.59 is the matching fix; that is our analysis.
Quotable line
Putting AI agents on the network without a door means letting strangers work on your bill, with your data and your tools.
Images
Download the share image (PNG) · Attack flow diagram (downloadable)
Please credit "PlainCVE" and link to this page. Full citation format is under "How to cite" below. Found a factual error? Report it.
PraisonAI AgentTeam.launch() missing authentication: anyone who can reach the server can list and call your AI agents PraisonAI is an open-source framework for building teams of AI agents that work together. The HTTP server it starts with AgentTeam.launch() had no authentication at all, so anyone who could reach it could list and call the deployed agents. The CVE numbering authority (GitHub) scores it CVSS 9.8, and the fixed version, praisonaiagents 1.6.59, is available, but per the fix commit, authentication is only enabled after setting PRAISONAI_LAUNCH_AUTH_TOKEN. As of October 13, 2026, it is not on CISA's Known Exploited Vulnerabilities catalog. Key facts: - Severity:CVSS 3.1 9.8 (CNA: GitHub; NVD not yet analysed)(https://cveawg.mitre.org/api/cve/CVE-2026-57118) - Fixed version:praisonaiagents 1.6.59(https://cveawg.mitre.org/api/cve/CVE-2026-57118) - GitHub advisory:GHSA-x8cv-xmq7-p8xp(https://cveawg.mitre.org/api/cve/CVE-2026-57118) - CVE published:2026-10-12(https://cveawg.mitre.org/api/cve/CVE-2026-57118) Confirmed: - Before praisonaiagents 1.6.59, the agent-listing and agent-call endpoints registered by AgentTeam.launch() and Agents.launch() had no access checks. - The maintainer's advisory says requests with no Authorization header or a wrong token are accepted, and Agents.launch() binds to 0.0.0.0 by default. - As of 2026-10-13, it is not in CISA's Known Exploited Vulnerabilities catalog. Unconfirmed / disputed: - Sources disagree on the affected range: the CVE record says praisonaiagents before 1.6.59, while the maintainer's GitHub advisory says 4.6.57 and earlier (fixed in 1.6.59 or later). In PlainCVE's view, the advisory's upper bound looks like a PraisonAI version number entered for praisonaiagents by mistake. - Miggo labels it 'unauthenticated RCE', but neither the maintainer's advisory nor the CVE record says so; code execution depends on the agents' tools. - The sources show no evidence of exploitation in the wild, and nothing shows it was exploited before a patch existed. - No source states outright that PraisonAI 4.6.59 is the matching fix; that is our analysis. 「Putting AI agents on the network without a door means letting strangers work on your bill, with your data and your tools.」— PlainCVE https://plaincve.date/en/vulns/cve-2026-57118-praisonai-agent-launch-missing-auth
How to cite this page
This article is CC BY 4.0. Please keep the attribution and link when republishing.
PlainCVE Team (2026). "PraisonAI AgentTeam.launch() missing authentication: anyone who can reach the server can list and call your AI agents". PlainCVE. https://plaincve.date/en/vulns/cve-2026-57118-praisonai-agent-launch-missing-auth (accessed YYYY-MM-DD)BibTeX
@misc{cve202657118praisonaiagentlaunchmissingauth2026,
title = {PraisonAI AgentTeam.launch() missing authentication: anyone who can reach the server can list and call your AI agents},
author = {PlainCVE Team},
year = {2026},
howpublished = {PlainCVE},
url = {https://plaincve.date/en/vulns/cve-2026-57118-praisonai-agent-launch-missing-auth},
note = {Updated 2026-10-17}
}