CWE-306
AllowedMissing Authentication for Critical Function
Abstraction: Base · Status: Draft
The product does not perform any authentication for functionality that requires a provable user identity or consumes a significant amount of resources.
4625 vulnerabilities reference this CWE, most recent first.
GHSA-7V3Q-R4CR-W389
Vulnerability from github – Published: 2026-08-29 18:31 – Updated: 2026-08-29 18:31KubeEdge CloudCore through 1.23.1 accepts node task status reports on its HTTPS server without authentication verification. Attackers can reach CloudCore on port 10002 to mark upgrade jobs as succeeded or failed, deceiving the control plane about node upgrade status and blocking further upgrade scheduling.
{
"affected": [],
"aliases": [
"CVE-2026-82473"
],
"database_specific": {
"cwe_ids": [
"CWE-306"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2026-08-29T17:17:59Z",
"severity": "HIGH"
},
"details": "KubeEdge CloudCore through 1.23.1 accepts node task status reports on its HTTPS server without authentication verification. Attackers can reach CloudCore on port 10002 to mark upgrade jobs as succeeded or failed, deceiving the control plane about node upgrade status and blocking further upgrade scheduling.",
"id": "GHSA-7v3q-r4cr-w389",
"modified": "2026-08-29T18:31:32Z",
"published": "2026-08-29T18:31:32Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-82473"
},
{
"type": "WEB",
"url": "https://github.com/geo-chen/oss/blob/main/kubeedge.md"
},
{
"type": "WEB",
"url": "https://github.com/kubeedge/kubeedge"
},
{
"type": "WEB",
"url": "https://github.com/kubeedge/kubeedge/blob/v1.23.1/cloud/pkg/cloudhub/servers/httpserver/nodetask/report_status.go"
},
{
"type": "WEB",
"url": "https://github.com/kubeedge/kubeedge/blob/v1.23.1/cloud/pkg/cloudhub/servers/httpserver/server.go"
},
{
"type": "WEB",
"url": "https://www.vulncheck.com/advisories/kubeedge-cloudcore-through-1.23.1-missing-authentication-on-node-task-endpoints"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:L",
"type": "CVSS_V3"
},
{
"score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:L/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X",
"type": "CVSS_V4"
}
]
}
GHSA-7V4X-V824-898C
Vulnerability from github – Published: 2022-07-18 00:00 – Updated: 2022-07-26 00:00In Montala ResourceSpace through 9.8 before r19636, csv_export_results_metadata.php allows attackers to export collection metadata via a non-NULL k value.
{
"affected": [],
"aliases": [
"CVE-2022-31260"
],
"database_specific": {
"cwe_ids": [
"CWE-306",
"CWE-668"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2022-07-17T20:15:00Z",
"severity": "MODERATE"
},
"details": "In Montala ResourceSpace through 9.8 before r19636, csv_export_results_metadata.php allows attackers to export collection metadata via a non-NULL k value.",
"id": "GHSA-7v4x-v824-898c",
"modified": "2022-07-26T00:00:28Z",
"published": "2022-07-18T00:00:33Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2022-31260"
},
{
"type": "WEB",
"url": "https://github.com/grymer/CVE/blob/master/CVE-2022-31260.md"
},
{
"type": "WEB",
"url": "https://www.resourcespace.com"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N",
"type": "CVSS_V3"
}
]
}
GHSA-7V7F-8GW6-2Q2X
Vulnerability from github – Published: 2026-08-25 12:31 – Updated: 2026-08-25 12:31Ech0 before 4.7.3 contains an authentication bypass vulnerability in the PUT /api/echo/like/:id endpoint that allows unauthenticated attackers to increment engagement metrics without identity verification or rate limiting. Attackers can send repeated requests to arbitrarily inflate the fav_count field for any known echo identifier, compromising the integrity of engagement metrics and social ranking systems.
{
"affected": [],
"aliases": [
"CVE-2026-79668"
],
"database_specific": {
"cwe_ids": [
"CWE-306"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2026-08-25T12:16:34Z",
"severity": "MODERATE"
},
"details": "Ech0 before 4.7.3 contains an authentication bypass vulnerability in the PUT /api/echo/like/:id endpoint that allows unauthenticated attackers to increment engagement metrics without identity verification or rate limiting. Attackers can send repeated requests to arbitrarily inflate the fav_count field for any known echo identifier, compromising the integrity of engagement metrics and social ranking systems.",
"id": "GHSA-7v7f-8gw6-2q2x",
"modified": "2026-08-25T12:31:27Z",
"published": "2026-08-25T12:31:27Z",
"references": [
{
"type": "WEB",
"url": "https://github.com/lin-snow/Ech0/security/advisories/GHSA-rgj7-vg8v-j4wr"
},
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-79668"
},
{
"type": "WEB",
"url": "https://www.vulncheck.com/advisories/ech0-before-unauthenticated-like-endpoint-metric-inflation"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N",
"type": "CVSS_V3"
},
{
"score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X",
"type": "CVSS_V4"
}
]
}
GHSA-7VGW-G2HC-25J8
Vulnerability from github – Published: 2024-10-15 12:30 – Updated: 2025-11-03 21:31An unauthenticated remote attacker can execute OS commands via UDP on the device due to missing authentication.
{
"affected": [],
"aliases": [
"CVE-2024-45274"
],
"database_specific": {
"cwe_ids": [
"CWE-306"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2024-10-15T11:15:12Z",
"severity": "CRITICAL"
},
"details": "An unauthenticated remote attacker can execute OS commands via UDP on the device due to missing authentication.",
"id": "GHSA-7vgw-g2hc-25j8",
"modified": "2025-11-03T21:31:16Z",
"published": "2024-10-15T12:30:37Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2024-45274"
},
{
"type": "WEB",
"url": "https://cert.vde.com/en/advisories/VDE-2024-056"
},
{
"type": "WEB",
"url": "https://cert.vde.com/en/advisories/VDE-2024-066"
},
{
"type": "WEB",
"url": "https://www.syss.de/fileadmin/dokumente/Publikationen/Advisories/SYSS-2024-063.txt"
},
{
"type": "WEB",
"url": "http://seclists.org/fulldisclosure/2025/Jul/38"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
}
]
}
GHSA-7VQF-8QWW-RQCW
Vulnerability from github – Published: 2026-09-15 21:32 – Updated: 2026-09-15 21:32Vulnerability in the Oracle Hyperion Financial Management product of Oracle Hyperion (component: Security). The supported version that is affected is 11.2.26.0.000. Easily exploitable vulnerability allows unauthenticated attacker with network access via HTTP to compromise Oracle Hyperion Financial Management. Successful attacks of this vulnerability can result in unauthorized access to critical data or complete access to all Oracle Hyperion Financial Management accessible data. CVSS 3.1 Base Score 7.5 (Confidentiality impacts). CVSS Vector: (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N).
{
"affected": [],
"aliases": [
"CVE-2026-87205"
],
"database_specific": {
"cwe_ids": [
"CWE-306"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2026-09-15T20:19:08Z",
"severity": "HIGH"
},
"details": "Vulnerability in the Oracle Hyperion Financial Management product of Oracle Hyperion (component: Security). The supported version that is affected is 11.2.26.0.000. Easily exploitable vulnerability allows unauthenticated attacker with network access via HTTP to compromise Oracle Hyperion Financial Management. Successful attacks of this vulnerability can result in unauthorized access to critical data or complete access to all Oracle Hyperion Financial Management accessible data. CVSS 3.1 Base Score 7.5 (Confidentiality impacts). CVSS Vector: (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N).",
"id": "GHSA-7vqf-8qww-rqcw",
"modified": "2026-09-15T21:32:53Z",
"published": "2026-09-15T21:32:53Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-87205"
},
{
"type": "WEB",
"url": "https://www.oracle.com/security-alerts/cspusep2026.html"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N",
"type": "CVSS_V3"
}
]
}
GHSA-7VR9-XC65-CX9C
Vulnerability from github – Published: 2022-05-24 17:34 – Updated: 2022-08-07 00:00A CWE-284: Improper Access Control vulnerability exists in Easergy T300 (with firmware 2.7 and older) that could cause a wide range of problems, including information exposure, denial of service, and command execution when access to a resource from an attacker is not restricted or incorrectly restricted.
{
"affected": [],
"aliases": [
"CVE-2020-7561"
],
"database_specific": {
"cwe_ids": [
"CWE-284",
"CWE-306"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2020-11-19T22:15:00Z",
"severity": "CRITICAL"
},
"details": "A CWE-284: Improper Access Control vulnerability exists in Easergy T300 (with firmware 2.7 and older) that could cause a wide range of problems, including information exposure, denial of service, and command execution when access to a resource from an attacker is not restricted or incorrectly restricted.",
"id": "GHSA-7vr9-xc65-cx9c",
"modified": "2022-08-07T00:00:29Z",
"published": "2022-05-24T17:34:44Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2020-7561"
},
{
"type": "WEB",
"url": "https://us-cert.cisa.gov/ics/advisories/icsa-20-343-03"
},
{
"type": "WEB",
"url": "https://www.se.com/ww/en/download/document/SEVD-2020-315-06"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
}
]
}
GHSA-7W6X-34CJ-2VPH
Vulnerability from github – Published: 2026-04-02 09:30 – Updated: 2026-04-16 21:31SEPPmail Secure Email Gateway before version 15.0.3 allows an attacker with access to a victim's GINA account to bypass a second-password check and read protected emails.
{
"affected": [],
"aliases": [
"CVE-2026-29132"
],
"database_specific": {
"cwe_ids": [
"CWE-306"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2026-04-02T09:16:21Z",
"severity": "MODERATE"
},
"details": "SEPPmail Secure Email Gateway before version 15.0.3 allows an attacker with access to a victim\u0027s GINA account to bypass a second-password check and read protected emails.",
"id": "GHSA-7w6x-34cj-2vph",
"modified": "2026-04-16T21:31:09Z",
"published": "2026-04-02T09:30:24Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-29132"
},
{
"type": "WEB",
"url": "https://downloads.seppmail.com/extrelnotes/150/ERN15.0.html#seppmail-vulnerability-disclosure-1503"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N",
"type": "CVSS_V3"
},
{
"score": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:N/SC:L/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X",
"type": "CVSS_V4"
}
]
}
GHSA-7WW9-85PG-CV4X
Vulnerability from github – Published: 2026-08-25 14:42 – Updated: 2026-08-25 14:42Summary
PraisonAI's praisonai serve agents command exposes --api-key as the documented
authentication control for production/external deployments, but the configured key is not
enforced on the public agent invocation compatibility endpoints.
An operator can start the server with --api-key and bind it to 0.0.0.0, but any network-
reachable caller can still invoke agents through POST /agents or POST /agents/
{agent_name} without Authorization, X-API-Key, a query token, or any other credential.
Confirmed vulnerable:
- v4.6.48 / commit d5f1114aaf1a2e9f121a6e66b929149ca2201f1d
- v4.6.34 / commit e5928449f73f66cc8af1de61621aa974ab255133
Likely affected range: >= 4.6.34, <= 4.6.48.
This is distinct from CVE-2026-44338 / GHSA-6rmh-7xcm-cpxj, which covered the legacy Flask
api_server.py path before 4.6.34. This report concerns the newer FastAPI serve agents
--api-key code path and is confirmed in v4.6.48.
### Details
The CLI accepts and forwards an API key:
src/praisonai/praisonai/cli/commands/serve.py:156definespraisonai serve agentssrc/praisonai/praisonai/cli/commands/serve.py:162exposes--api-keysrc/praisonai/praisonai/cli/commands/serve.py:175-176forwards the supplied keysrc/praisonai/praisonai/cli/features/serve.py:191handles theagentssubcommandsrc/praisonai/praisonai/cli/features/serve.py:199parsesapi_keyinto the config
However, _create_agents_app() never uses config["api_key"] to create middleware or a
FastAPI auth dependency:
src/praisonai/praisonai/cli/features/serve.py:228creates the FastAPI appsrc/praisonai/praisonai/cli/features/serve.py:287registersPOST {path}with no auth dependencysrc/praisonai/praisonai/cli/features/serve.py:346registersPOST /agents/{agent_name}with no auth dependencysrc/praisonai/praisonai/cli/features/serve.py:356-370executes the registered agent directly
The same app also mounts praisonai.api.agent_invoke, whose /api/v1/agents/{agent_id}/
invoke route is protected separately by CALL_SERVER_TOKEN. That means the protected /
api/v1 route and the unauthenticated /agents compatibility routes coexist in the same
server. Setting --api-key does not protect the compatibility routes.
### PoC
This local-only PoC does not open a network listener and does not call an LLM provider. It
constructs the FastAPI app through the real ServeHandler._create_agents_app() path with
api_key set, registers a fake agent, and sends an unauthenticated request using FastAPI
TestClient.
```python #!/usr/bin/env python3 from future import annotations
import sys import tempfile from pathlib import Path
REPO = Path("/path/to/PraisonAI") sys.path[:0] = [ str(REPO / "src" / "praisonai"), str(REPO / "src" / "praisonai-agents"), ]
class FakeAgent: def init(self): self.calls = []
def start(self, query):
self.calls.append(query)
return f"fake-agent-ran:{query}"
def main() -> None: from fastapi.testclient import TestClient from praisonai.cli.features.serve import ServeHandler from praisonai.api import agent_invoke
with tempfile.TemporaryDirectory() as tmp:
agents_yaml = Path(tmp) / "agents.yaml"
agents_yaml.write_text(
"roles:\n"
" placeholder:\n"
" role: Placeholder\n"
" goal: Placeholder\n"
" backstory: Placeholder\n",
encoding="utf-8",
)
handler = ServeHandler()
app = handler._create_agents_app(
{
"file": str(agents_yaml),
"host": "0.0.0.0",
"port": 8000,
"path": "/agents",
"reload": False,
"api_key": "operator-secret-api-key",
}
)
fake_agent = FakeAgent()
agent_invoke.register_agent("poc", fake_agent)
client = TestClient(app)
response = client.post(
"/agents/poc",
json={"query": "unauthenticated request"},
)
print(f"STATUS_CODE={response.status_code}")
print(f"RESPONSE_JSON={response.json()!r}")
print(f"AGENT_CALLS={fake_agent.calls!r}")
print(f"UNAUTHENTICATED_AGENT_EXECUTED={fake_agent.calls == ['unauthenticated
request']}")
if name == "main": main()
Run:
cd /path/to/PraisonAI python3 praisonai-serve-agents-api-key-bypass.py
Observed output:
STATUS_CODE=200 RESPONSE_JSON={'response': 'fake-agent-ran:unauthenticated request'} AGENT_CALLS=['unauthenticated request'] UNAUTHENTICATED_AGENT_EXECUTED=True
The important condition is that the app was configured with:
"api_key": "operator-secret-api-key"
but the request was sent without any auth header:
client.post("/agents/poc", json={"query": "unauthenticated request"})
The agent still executed and returned HTTP 200.
### Impact
Any attacker who can reach a praisonai serve agents server can invoke configured agents even when the operator explicitly configured --api-key.
Impact depends on the configured agents and their tools, but can include:
- unauthorized LLM/API usage and provider cost consumption;
- execution of agent workflows;
- access to connected tool integrations;
- reads/writes through file, database, cloud, browser, MCP, or messaging tools;
- availability impact from repeated or long-running agent invocations.
This is especially risky because the documented production pattern recommends using --api- key when binding the server publicly.
### Suggested fix
Fail closed when --api-key is configured and require it on every agent invocation route in the serve agents app.
Recommended changes:
- In _create_agents_app(), derive an auth dependency from config.get("api_key").
- Apply it to both POST {path} and POST /agents/{agent_name}.
-
Prefer Authorization: Bearer . Optionally also support X-API-Key for compatibility.
-
Use constant-time comparison for the expected key.
- Clarify or unify the relationship between --api-key and CALL_SERVER_TOKEN.
- Add tests proving:
- key configured + no header returns 401/403;
- key configured + wrong header returns 401/403;
- key configured + correct header executes;
- both /agents and /agents/{agent_name} are covered.
{
"affected": [
{
"package": {
"ecosystem": "PyPI",
"name": "PraisonAI"
},
"ranges": [
{
"events": [
{
"introduced": "4.6.34"
},
{
"fixed": "4.6.58"
}
],
"type": "ECOSYSTEM"
}
]
}
],
"aliases": [
"CVE-2026-55534"
],
"database_specific": {
"cwe_ids": [
"CWE-306"
],
"github_reviewed": true,
"github_reviewed_at": "2026-08-25T14:42:25Z",
"nvd_published_at": null,
"severity": "HIGH"
},
"details": "### Summary\n\n PraisonAI\u0027s `praisonai serve agents` command exposes `--api-key` as the documented\n authentication control for production/external deployments, but the configured key is not\n enforced on the public agent invocation compatibility endpoints.\n\n An operator can start the server with `--api-key` and bind it to `0.0.0.0`, but any network-\n reachable caller can still invoke agents through `POST /agents` or `POST /agents/\n {agent_name}` without `Authorization`, `X-API-Key`, a query token, or any other credential.\n\n Confirmed vulnerable:\n - v4.6.48 / commit `d5f1114aaf1a2e9f121a6e66b929149ca2201f1d`\n - v4.6.34 / commit `e5928449f73f66cc8af1de61621aa974ab255133`\n\n Likely affected range: `\u003e= 4.6.34, \u003c= 4.6.48`.\n\n This is distinct from CVE-2026-44338 / GHSA-6rmh-7xcm-cpxj, which covered the legacy Flask\n `api_server.py` path before 4.6.34. This report concerns the newer FastAPI `serve agents\n --api-key` code path and is confirmed in v4.6.48.\n\n ### Details\n\n The CLI accepts and forwards an API key:\n\n - `src/praisonai/praisonai/cli/commands/serve.py:156` defines `praisonai serve agents`\n - `src/praisonai/praisonai/cli/commands/serve.py:162` exposes `--api-key`\n - `src/praisonai/praisonai/cli/commands/serve.py:175-176` forwards the supplied key\n - `src/praisonai/praisonai/cli/features/serve.py:191` handles the `agents` subcommand\n - `src/praisonai/praisonai/cli/features/serve.py:199` parses `api_key` into the config\n\n However, `_create_agents_app()` never uses `config[\"api_key\"]` to create middleware or a\n FastAPI auth dependency:\n\n - `src/praisonai/praisonai/cli/features/serve.py:228` creates the FastAPI app\n - `src/praisonai/praisonai/cli/features/serve.py:287` registers `POST {path}` with no auth\n dependency\n - `src/praisonai/praisonai/cli/features/serve.py:346` registers `POST /agents/{agent_name}`\n with no auth dependency\n - `src/praisonai/praisonai/cli/features/serve.py:356-370` executes the registered agent\n directly\n\n The same app also mounts `praisonai.api.agent_invoke`, whose `/api/v1/agents/{agent_id}/\n invoke` route is protected separately by `CALL_SERVER_TOKEN`. That means the protected `/\n api/v1` route and the unauthenticated `/agents` compatibility routes coexist in the same\n server. Setting `--api-key` does not protect the compatibility routes.\n\n ### PoC\n\n This local-only PoC does not open a network listener and does not call an LLM provider. It\n constructs the FastAPI app through the real `ServeHandler._create_agents_app()` path with\n `api_key` set, registers a fake agent, and sends an unauthenticated request using FastAPI\n `TestClient`.\n\n ```python\n #!/usr/bin/env python3\n from __future__ import annotations\n\n import sys\n import tempfile\n from pathlib import Path\n\n REPO = Path(\"/path/to/PraisonAI\")\n sys.path[:0] = [\n str(REPO / \"src\" / \"praisonai\"),\n str(REPO / \"src\" / \"praisonai-agents\"),\n ]\n\n class FakeAgent:\n def __init__(self):\n self.calls = []\n\n def start(self, query):\n self.calls.append(query)\n return f\"fake-agent-ran:{query}\"\n\n def main() -\u003e None:\n from fastapi.testclient import TestClient\n from praisonai.cli.features.serve import ServeHandler\n from praisonai.api import agent_invoke\n\n with tempfile.TemporaryDirectory() as tmp:\n agents_yaml = Path(tmp) / \"agents.yaml\"\n agents_yaml.write_text(\n \"roles:\\n\"\n \" placeholder:\\n\"\n \" role: Placeholder\\n\"\n \" goal: Placeholder\\n\"\n \" backstory: Placeholder\\n\",\n encoding=\"utf-8\",\n )\n\n handler = ServeHandler()\n app = handler._create_agents_app(\n {\n \"file\": str(agents_yaml),\n \"host\": \"0.0.0.0\",\n \"port\": 8000,\n \"path\": \"/agents\",\n \"reload\": False,\n \"api_key\": \"operator-secret-api-key\",\n }\n )\n\n fake_agent = FakeAgent()\n agent_invoke.register_agent(\"poc\", fake_agent)\n\n client = TestClient(app)\n response = client.post(\n \"/agents/poc\",\n json={\"query\": \"unauthenticated request\"},\n )\n\n print(f\"STATUS_CODE={response.status_code}\")\n print(f\"RESPONSE_JSON={response.json()!r}\")\n print(f\"AGENT_CALLS={fake_agent.calls!r}\")\n print(f\"UNAUTHENTICATED_AGENT_EXECUTED={fake_agent.calls == [\u0027unauthenticated\n request\u0027]}\")\n\n if __name__ == \"__main__\":\n main()\n\n Run:\n\n cd /path/to/PraisonAI\n python3 praisonai-serve-agents-api-key-bypass.py\n\n Observed output:\n\n STATUS_CODE=200\n RESPONSE_JSON={\u0027response\u0027: \u0027fake-agent-ran:unauthenticated request\u0027}\n AGENT_CALLS=[\u0027unauthenticated request\u0027]\n UNAUTHENTICATED_AGENT_EXECUTED=True\n\n The important condition is that the app was configured with:\n\n \"api_key\": \"operator-secret-api-key\"\n\n but the request was sent without any auth header:\n\n client.post(\"/agents/poc\", json={\"query\": \"unauthenticated request\"})\n\n The agent still executed and returned HTTP 200.\n\n ### Impact\n\n Any attacker who can reach a praisonai serve agents server can invoke configured agents even\n when the operator explicitly configured --api-key.\n\n Impact depends on the configured agents and their tools, but can include:\n\n - unauthorized LLM/API usage and provider cost consumption;\n - execution of agent workflows;\n - access to connected tool integrations;\n - reads/writes through file, database, cloud, browser, MCP, or messaging tools;\n - availability impact from repeated or long-running agent invocations.\n\n This is especially risky because the documented production pattern recommends using --api-\n key when binding the server publicly.\n\n ### Suggested fix\n\n Fail closed when --api-key is configured and require it on every agent invocation route in\n the serve agents app.\n\n Recommended changes:\n\n - In _create_agents_app(), derive an auth dependency from config.get(\"api_key\").\n - Apply it to both POST {path} and POST /agents/{agent_name}.\n - Prefer Authorization: Bearer \u003capi_key\u003e. Optionally also support X-API-Key for\n compatibility.\n\n - Use constant-time comparison for the expected key.\n - Clarify or unify the relationship between --api-key and CALL_SERVER_TOKEN.\n - Add tests proving:\n - key configured + no header returns 401/403;\n - key configured + wrong header returns 401/403;\n - key configured + correct header executes;\n - both /agents and /agents/{agent_name} are covered.",
"id": "GHSA-7ww9-85pg-cv4x",
"modified": "2026-08-25T14:42:25Z",
"published": "2026-08-25T14:42:25Z",
"references": [
{
"type": "WEB",
"url": "https://github.com/MervinPraison/PraisonAI/security/advisories/GHSA-7ww9-85pg-cv4x"
},
{
"type": "WEB",
"url": "https://github.com/MervinPraison/PraisonAI/commit/2f9677abb2ea68eab864ee8b6a828fd0141612e1"
},
{
"type": "PACKAGE",
"url": "https://github.com/MervinPraison/PraisonAI"
},
{
"type": "WEB",
"url": "https://github.com/MervinPraison/PraisonAI/releases/tag/v4.6.58"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:H",
"type": "CVSS_V3"
}
],
"summary": "PraisonAI serve agents --api-key is ignored, allowing unauthenticated remote agent execution"
}
GHSA-7WX4-96FX-CVWQ
Vulnerability from github – Published: 2026-07-22 00:31 – Updated: 2026-07-22 00:31Vulnerability in the PeopleSoft Enterprise CS Student Financials product of Oracle PeopleSoft (component: Billing). The supported version that is affected is 9.2.38. Easily exploitable vulnerability allows low privileged attacker with network access via HTTP to compromise PeopleSoft Enterprise CS Student Financials. Successful attacks of this vulnerability can result in takeover of PeopleSoft Enterprise CS Student Financials. CVSS 3.1 Base Score 8.8 (Confidentiality, Integrity and Availability impacts). CVSS Vector: (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H).
{
"affected": [],
"aliases": [
"CVE-2026-60602"
],
"database_specific": {
"cwe_ids": [
"CWE-306"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2026-07-21T22:18:00Z",
"severity": "HIGH"
},
"details": "Vulnerability in the PeopleSoft Enterprise CS Student Financials product of Oracle PeopleSoft (component: Billing). The supported version that is affected is 9.2.38. Easily exploitable vulnerability allows low privileged attacker with network access via HTTP to compromise PeopleSoft Enterprise CS Student Financials. Successful attacks of this vulnerability can result in takeover of PeopleSoft Enterprise CS Student Financials. CVSS 3.1 Base Score 8.8 (Confidentiality, Integrity and Availability impacts). CVSS Vector: (CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H).",
"id": "GHSA-7wx4-96fx-cvwq",
"modified": "2026-07-22T00:31:50Z",
"published": "2026-07-22T00:31:50Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2026-60602"
},
{
"type": "WEB",
"url": "https://www.oracle.com/security-alerts/cpujul2026.html"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
"type": "CVSS_V3"
}
]
}
GHSA-7X48-359H-28RM
Vulnerability from github – Published: 2025-07-16 21:30 – Updated: 2025-07-16 21:30An unauthenticated arbitrary file upload vulnerability exists in Idera Up.Time Monitoring Station versions up to and including 7.2. The wizards/post2file.php script accepts arbitrary POST parameters, allowing attackers to upload crafted PHP files to the webroot. Successful exploitation results in remote code execution as the web server user. NOTE: The bypass for this vulnerability is tracked as CVE-2015-9263.
{
"affected": [],
"aliases": [
"CVE-2025-34121"
],
"database_specific": {
"cwe_ids": [
"CWE-306"
],
"github_reviewed": false,
"github_reviewed_at": null,
"nvd_published_at": "2025-07-16T21:15:27Z",
"severity": "CRITICAL"
},
"details": "An unauthenticated arbitrary file upload vulnerability exists in Idera Up.Time Monitoring Station versions up to and including 7.2. The `wizards/post2file.php` script accepts arbitrary POST parameters, allowing attackers to upload crafted PHP files to the webroot. Successful exploitation results in remote code execution as the web server user. NOTE: The bypass for this vulnerability is tracked as CVE-2015-9263.",
"id": "GHSA-7x48-359h-28rm",
"modified": "2025-07-16T21:30:36Z",
"published": "2025-07-16T21:30:36Z",
"references": [
{
"type": "ADVISORY",
"url": "https://nvd.nist.gov/vuln/detail/CVE-2025-34121"
},
{
"type": "WEB",
"url": "https://raw.githubusercontent.com/rapid7/metasploit-framework/master/modules/exploits/multi/http/uptime_file_upload_1.rb"
},
{
"type": "WEB",
"url": "https://web.archive.org/web/20150210113937/http://www.security-assessment.com/files/documents/advisory/Up.Time%207.2%20-%20Arbitrary%20File%20Upload.pdf"
},
{
"type": "WEB",
"url": "https://www.exploit-db.com/exploits/38732"
},
{
"type": "WEB",
"url": "https://www.vulncheck.com/advisories/idera-uptime-arbitrary-file-upload-rce"
}
],
"schema_version": "1.4.0",
"severity": [
{
"score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X",
"type": "CVSS_V4"
}
]
}
Mitigation
- Divide the software into anonymous, normal, privileged, and administrative areas. Identify which of these areas require a proven user identity, and use a centralized authentication capability.
- Identify all potential communication channels, or other means of interaction with the software, to ensure that all channels are appropriately protected, including those channels that are assumed to be accessible only by authorized parties. Developers sometimes perform authentication at the primary channel, but open up a secondary channel that is assumed to be private. For example, a login mechanism may be listening on one network port, but after successful authentication, it may open up a second port where it waits for the connection, but avoids authentication because it assumes that only the authenticated party will connect to the port.
- In general, if the software or protocol allows a single session or user state to persist across multiple connections or channels, authentication and appropriate credential management need to be used throughout.
Mitigation MIT-15
For any security checks that are performed on the client side, ensure that these checks are duplicated on the server side, in order to avoid CWE-602. Attackers can bypass the client-side checks by modifying values after the checks have been performed, or by changing the client to remove the client-side checks entirely. Then, these modified values would be submitted to the server.
Mitigation
- Where possible, avoid implementing custom, "grow-your-own" authentication routines and consider using authentication capabilities as provided by the surrounding framework, operating system, or environment. These capabilities may avoid common weaknesses that are unique to authentication; support automatic auditing and tracking; and make it easier to provide a clear separation between authentication tasks and authorization tasks.
- In environments such as the World Wide Web, the line between authentication and authorization is sometimes blurred. If custom authentication routines are required instead of those provided by the server, then these routines must be applied to every single page, since these pages could be requested directly.
Mitigation MIT-4.5
Strategy: Libraries or Frameworks
- Use a vetted library or framework that does not allow this weakness to occur or provides constructs that make this weakness easier to avoid.
- For example, consider using libraries with authentication capabilities such as OpenSSL or the ESAPI Authenticator [REF-45].
Mitigation
When storing data in the cloud (e.g., S3 buckets, Azure blobs, Google Cloud Storage, etc.), use the provider's controls to require strong authentication for users who should be allowed to access the data [REF-1297] [REF-1298] [REF-1302].
CAPEC-12: Choosing Message Identifier
This pattern of attack is defined by the selection of messages distributed via multicast or public information channels that are intended for another client by determining the parameter value assigned to that client. This attack allows the adversary to gain access to potentially privileged information, and to possibly perpetrate other attacks through the distribution means by impersonation. If the channel/message being manipulated is an input rather than output mechanism for the system, (such as a command bus), this style of attack could be used to change the adversary's identifier to more a privileged one.
CAPEC-166: Force the System to Reset Values
An attacker forces the target into a previous state in order to leverage potential weaknesses in the target dependent upon a prior configuration or state-dependent factors. Even in cases where an attacker may not be able to directly control the configuration of the targeted application, they may be able to reset the configuration to a prior state since many applications implement reset functions.
CAPEC-216: Communication Channel Manipulation
An adversary manipulates a setting or parameter on communications channel in order to compromise its security. This can result in information exposure, insertion/removal of information from the communications stream, and/or potentially system compromise.
CAPEC-36: Using Unpublished Interfaces or Functionality
An adversary searches for and invokes interfaces or functionality that the target system designers did not intend to be publicly available. If interfaces fail to authenticate requests, the attacker may be able to invoke functionality they are not authorized for.
CAPEC-62: Cross Site Request Forgery
An attacker crafts malicious web links and distributes them (via web pages, email, etc.), typically in a targeted manner, hoping to induce users to click on the link and execute the malicious action against some third-party application. If successful, the action embedded in the malicious link will be processed and accepted by the targeted application with the users' privilege level. This type of attack leverages the persistence and implicit trust placed in user session cookies by many web applications today. In such an architecture, once the user authenticates to an application and a session cookie is created on the user's system, all following transactions for that session are authenticated using that cookie including potential actions initiated by an attacker and simply "riding" the existing session cookie.