CVE-2026-47396
Full vulnerability record from the local CVENow database.
Description
PraisonAI is a multi-agent teams system. Prior to version 4.6.40, PraisonAI's call server exposes a network-facing agent control API without authentication when `CALL_SERVER_TOKEN` is not configured. The affected component is the `praisonai.api.agent_invoke` router as mounted by `praisonai.api.call`. The authentication helper `verify_token()` fails open when `CALL_SERVER_TOKEN` is unset. Since every sensitive agent-control endpoint depends on this helper, starting the call server without a token allows any reachable client to list agents, inspect agent metadata and instructions, invoke agents, and unregister agents. This is security-relevant because the bundled call server includes the vulnerable router and binds to `0.0.0.0`. As a result, operators who launch the call server without explicitly setting `CALL_SERVER_TOKEN` may unintentionally expose an unauthenticated remote agent control plane. Version 4.6.40 fixes the issue.
View original CVE JSON
{
"id": "CVE-2026-47396",
"sourceIdentifier": "[email protected]",
"published": "2026-07-21T16:17:12.760",
"lastModified": "2026-10-24T19:10:00.127",
"vulnStatus": "Deferred",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "PraisonAI is a multi-agent teams system. Prior to version 4.6.40, PraisonAI's call server exposes a network-facing agent control API without authentication when `CALL_SERVER_TOKEN` is not configured. The affected component is the `praisonai.api.agent_invoke` router as mounted by `praisonai.api.call`. The authentication helper `verify_token()` fails open when `CALL_SERVER_TOKEN` is unset. Since every sensitive agent-control endpoint depends on this helper, starting the call server without a token allows any reachable client to list agents, inspect agent metadata and instructions, invoke agents, and unregister agents. This is security-relevant because the bundled call server includes the vulnerable router and binds to `0.0.0.0`. As a result, operators who launch the call server without explicitly setting `CALL_SERVER_TOKEN` may unintentionally expose an unauthenticated remote agent control plane. Version 4.6.40 fixes the issue."
},
{
"lang": "es",
"value": "PraisonAI es un sistema de equipos multiagente. Antes de la versión 4.6.40, el servidor de llamadas de PraisonAI expone una API de control de agente orientada a la red sin autenticación cuando ’CALL_SERVER_TOKEN’ no está configurado. El componente afectado es el router ’praisonai.api.agent_invoke’ tal como lo monta ’praisonai.api.call’. El asistente de autenticación ’verify_token()’ falla en modo abierto cuando ’CALL_SERVER_TOKEN’ no está establecido. Dado que cada endpoint sensible de control de agente depende de este asistente, iniciar el servidor de llamadas sin un token permite a cualquier cliente alcanzable listar agentes, inspeccionar metadatos e instrucciones de agentes, invocar agentes y anular el registro de agentes. Esto es relevante para la seguridad porque el servidor de llamadas incluido incluye el router vulnerable y se enlaza a ’0.0.0.0’. Como resultado, los operadores que inician el servidor de llamadas sin establecer explícitamente ’CALL_SERVER_TOKEN’ pueden exponer involuntariamente un plano de control de agente remoto no autenticado. La versión 4.6.40 corrige el problema."
}
],
"affected": [
{
"source": "[email protected]",
"affectedData": [
{
"vendor": "MervinPraison",
"product": "PraisonAI",
"versions": [
{
"version": "< 4.6.40",
"status": "affected"
}
]
}
]
}
],
"metrics": {
"cvssMetricV31": [
{
"source": "[email protected]",
"type": "Secondary",
"cvssData": {
"version": "3.1",
"vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
"baseScore": 9.8,
"baseSeverity": "CRITICAL",
"attackVector": "NETWORK",
"attackComplexity": "LOW",
"privilegesRequired": "NONE",
"userInteraction": "NONE",
"scope": "UNCHANGED",
"confidentialityImpact": "HIGH",
"integrityImpact": "HIGH",
"availabilityImpact": "HIGH"
},
"exploitabilityScore": 3.9,
"impactScore": 5.9
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"timestamp": "2026-07-22T14:13:08.439122Z",
"id": "CVE-2026-47396",
"options": [
{
"exploitation": "poc"
},
{
"automatable": "yes"
},
{
"technicalImpact": "total"
}
],
"role": "CISA Coordinator",
"version": "2.0.3"
}
}
]
},
"weaknesses": [
{
"source": "[email protected]",
"type": "Secondary",
"description": [
{
"lang": "en",
"value": "CWE-284"
},
{
"lang": "en",
"value": "CWE-306"
}
]
}
],
"references": [
{
"url": "https://github.com/MervinPraison/PraisonAI/commit/ef79b7a0561796ad9807f0f09538c25cc78d3619",
"source": "[email protected]"
},
{
"url": "https://github.com/MervinPraison/PraisonAI/security/advisories/GHSA-86qc-r5v2-v6x6",
"source": "[email protected]"
},
{
"url": "https://github.com/MervinPraison/PraisonAI/security/advisories/GHSA-86qc-r5v2-v6x6",
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0"
}
]
}