CVE-2026-40152
Full vulnerability record from the local CVENow database.
Description
PraisonAIAgents is a multi-agent teams system. Prior to 1.5.128, he list_files() tool in FileTools validates the directory parameter against workspace boundaries via _validate_path(), but passes the pattern parameter directly to Path.glob() without any validation. Since Python's Path.glob() supports .. path segments, an attacker can use relative path traversal in the glob pattern to enumerate arbitrary files outside the workspace, obtaining file metadata (existence, name, size, timestamps) for any path on the filesystem. This vulnerability is fixed in 1.5.128.
Severity
MEDIUM
CVSS score
5.3
(v3.1)
Vulnerability status
Analyzed
Source identifier
Published
2026-04-09 22:16:36.193000
Last modified
2026-10-26 22:10:00.163000
View original CVE JSON
{
"id": "CVE-2026-40152",
"sourceIdentifier": "[email protected]",
"published": "2026-04-09T22:16:36.193",
"lastModified": "2026-10-26T22:10:00.163",
"vulnStatus": "Analyzed",
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "PraisonAIAgents is a multi-agent teams system. Prior to 1.5.128, he list_files() tool in FileTools validates the directory parameter against workspace boundaries via _validate_path(), but passes the pattern parameter directly to Path.glob() without any validation. Since Python's Path.glob() supports .. path segments, an attacker can use relative path traversal in the glob pattern to enumerate arbitrary files outside the workspace, obtaining file metadata (existence, name, size, timestamps) for any path on the filesystem. This vulnerability is fixed in 1.5.128."
},
{
"lang": "es",
"value": "PraisonAIAgents es un sistema de equipos multiagente. Antes de la versión 1.5.128, la herramienta list_files() en FileTools valida el parámetro directory contra los límites del espacio de trabajo a través de _validate_path(), pero pasa el parámetro pattern directamente a Path.glob() sin ninguna validación. Dado que Path.glob() de Python admite segmentos de ruta .., un atacante puede usar un salto de ruta relativo en el patrón glob para enumerar archivos arbitrarios fuera del espacio de trabajo, obteniendo metadatos de archivos (existencia, nombre, tamaño, marcas de tiempo) para cualquier ruta en el sistema de archivos. Esta vulnerabilidad se corrige en la versión 1.5.128."
}
],
"affected": [
{
"source": "[email protected]",
"affectedData": [
{
"vendor": "MervinPraison",
"product": "PraisonAIAgents",
"versions": [
{
"version": "< 1.5.128",
"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:L/I:N/A:N",
"baseScore": 5.3,
"baseSeverity": "MEDIUM",
"attackVector": "NETWORK",
"attackComplexity": "LOW",
"privilegesRequired": "NONE",
"userInteraction": "NONE",
"scope": "UNCHANGED",
"confidentialityImpact": "LOW",
"integrityImpact": "NONE",
"availabilityImpact": "NONE"
},
"exploitabilityScore": 3.9,
"impactScore": 1.4
}
],
"ssvcV203": [
{
"source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
"ssvcData": {
"timestamp": "2026-04-13T20:40:26.767077Z",
"id": "CVE-2026-40152",
"options": [
{
"exploitation": "poc"
},
{
"automatable": "yes"
},
{
"technicalImpact": "partial"
}
],
"role": "CISA Coordinator",
"version": "2.0.3"
}
}
]
},
"weaknesses": [
{
"source": "[email protected]",
"type": "Secondary",
"description": [
{
"lang": "en",
"value": "CWE-22"
}
]
}
],
"configurations": [
{
"nodes": [
{
"operator": "OR",
"negate": false,
"cpeMatch": [
{
"vulnerable": true,
"criteria": "cpe:2.3:a:praison:praisonaiagents:*:*:*:*:*:*:*:*",
"versionEndExcluding": "1.5.128",
"matchCriteriaId": "B1797C27-7EBC-4CEF-90B8-F84E8198632D"
}
]
}
]
}
],
"references": [
{
"url": "https://github.com/MervinPraison/PraisonAI/security/advisories/GHSA-7j2f-xc8p-fjmq",
"source": "[email protected]",
"tags": [
"Exploit",
"Vendor Advisory"
]
}
]
}