CVE-2026-56078
PraisonAI - Arbitrary File Read and Write via Path Traversal in MultiAgentMonitor
PraisonAI before 1.5.115 contains a path traversal vulnerability in MultiAgentMonitor that fails to sanitize agent IDs when building file paths. Attackers can include traversal sequences like ../ in agent IDs to read, write, or overwrite arbitrary files, enabling sensitive disclosure, denial of service, or code execution.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- High
- Integrity
- High
- Availability
- High
Exploit likelihood
What each source reports
CVE List Score used
8.7
PraisonAI - Arbitrary File Read and Write via Path Traversal in MultiAgentMonitor
PraisonAI before 1.5.115 contains a path traversal vulnerability in MultiAgentMonitor that fails to sanitize agent IDs when building file paths. Attackers can include traversal sequences like ../ in agent IDs to read, write, or overwrite arbitrary files, enabling sensitive disclosure, denial of service, or code execution.
- Record
CVE-2026-56078- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-22
- Updated
- 2026-11-02
EUVDEUVD-2026-37962
8.7
PraisonAI before 1.5.115 contains a path traversal vulnerability in MultiAgentMonitor that fails to sanitize agent IDs when building file paths. Attackers can include traversal sequences like ../ in agent IDs to read, write, or overwrite arbitrary files, enabling sensitive disclosure, denial of service, or code execution.
- Record
EUVD-2026-37962- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-766v-q9x3-g744
6.5
PraisonAI has Memory State Leakage and Path Traversal in MultiAgent Context Handling
Summary
The MultiAgentLedger and MultiAgentMonitor components in the provided code exhibit vulnerabilities that can lead to context leakage and arbitrary file operations. Specifically:
- Memory State Leakage via Agent ID Collision: The
MultiAgentLedgeruses a dictionary to store ledgers by agent ID without enforcing uniqueness. This allows agents with the same ID to share ledger instances, leading to potential leakage of sensitive context data. - Path Traversal in MultiAgentMonitor: The
MultiAgentMonitorconstructs file paths by concatenating thebase_pathand agent ID without sanitization. This allows an attacker to escape the intended directory using path traversal sequences (e.g.,../), potentially leading to arbitrary file read/write.
Details
Vulnerability 1: Memory State Leakage
- File:
examples/context/12_multi_agent_context.py:68 - Description: The
MultiAgentLedgerclass uses a dictionary (self.ledgers) to store ledger instances keyed by agent ID. Theget_agent_ledgermethod creates a new ledger only if the agent ID is not present. If two agents are registered with the same ID, they will share the same ledger instance. This violates the isolation policy and can lead to leakage of sensitive context data (system prompts, conversation history) between agents. - Exploitability: An attacker can register an agent with the same ID as a victim agent to gain access to their ledger. This is particularly dangerous in multi-tenant systems where agents may handle sensitive user data.
Vulnerability 2: Path Traversal
- File:
examples/context/12_multi_agent_context.py:106 - Description: The
MultiAgentMonitorclass constructs file paths for agent monitors by directly concatenating thebase_pathand agent ID. Since the agent ID is not sanitized, an attacker can provide an ID containing path traversal sequences (e.g.,../../malicious). This can result in files being created or read outside the intended directory (base_path). - Exploitability: An attacker can create an agent with a malicious ID (e.g.,
../../etc/passwd) to write or read arbitrary files on the system, potentially leading to information disclosure or file corruption.
PoC
Memory State Leakage
multi_ledger = MultiAgentLedger()
# Victim agent (user1) registers and tracks sensitive data
victim_ledger = multi_ledger.get_agent_ledger('user1_agent')
victim_ledger.track_system_prompt("Sensitive system prompt")
victim_ledger.track_history([{"role": "user", "content": "Secret data"}])
# Attacker registers with the same ID
attacker_ledger = multi_ledger.get_agent_ledger('user1_agent')
# Attacker now has access to victim's ledger
print(attacker_ledger.get_ledger().system_prompt) # Outputs: "Sensitive system prompt"
print(attacker_ledger.get_ledger().history) # Outputs: [{'role': 'user', 'content': 'Secret data'}]
Path Traversal
with tempfile.TemporaryDirectory() as tmpdir:
multi_monitor = MultiAgentMonitor(base_path=tmpdir)
# Create agent with malicious ID
malicious_id = '../../malicious'
monitor = multi_monitor.get_agent_monitor(malicious_id)
# The monitor file is created outside the intended base_path
# Example: if tmpdir is '/tmp/safe_dir', the actual path might be '/tmp/malicious'
print(monitor.path) # Outputs: '/tmp/malicious' (or equivalent)
Impact
- Memory State Leakage: This vulnerability can lead to unauthorized access to sensitive agent context, including system prompts and conversation history. In a multi-tenant system, this could result in cross-user data leakage.
- Path Traversal: An attacker can read or write arbitrary files on the system, potentially leading to information disclosure, denial of service (by overwriting critical files), or remote code execution (if executable files are overwritten).
Recommended Fix
For Memory State Leakage
- Enforce unique agent IDs at the application…
- Record
GHSA-766v-q9x3-g744- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-22, CWE-668
- Updated
- 2026-11-02
GitHub AdvisoriesGHSA-fwh2-95jw-g4j6
8.7
Duplicate Advisory: PraisonAI has Memory State Leakage and Path Traversal in MultiAgent Context Handling
Duplicate Advisory
This advisory has been withdrawn because it is a duplicate of GHSA-766v-q9x3-g744. This link is maintained to preserve external references.
Original Description
PraisonAI before 1.5.115 contains a path traversal vulnerability in MultiAgentMonitor that fails to sanitize agent IDs when building file paths. Attackers can include traversal sequences like ../ in agent IDs to read, write, or overwrite arbitrary files, enabling sensitive disclosure, denial of service, or code execution.
- Record
GHSA-fwh2-95jw-g4j6- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-22
- Updated
- 2026-11-02
NVD
8.7
PraisonAI before 1.5.115 contains a path traversal vulnerability in MultiAgentMonitor that fails to sanitize agent IDs when building file paths. Attackers can include traversal sequences like ../ in agent IDs to read, write, or overwrite arbitrary files, enabling sensitive disclosure, denial of service, or code execution.
- Record
CVE-2026-56078- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/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 - CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-22
- Updated
- 2026-11-02
OSVGHSA-766v-q9x3-g744
6.5
PraisonAI has Memory State Leakage and Path Traversal in MultiAgent Context Handling
Summary
The MultiAgentLedger and MultiAgentMonitor components in the provided code exhibit vulnerabilities that can lead to context leakage and arbitrary file operations. Specifically:
- Memory State Leakage via Agent ID Collision: The
MultiAgentLedgeruses a dictionary to store ledgers by agent ID without enforcing uniqueness. This allows agents with the same ID to share ledger instances, leading to potential leakage of sensitive context data. - Path Traversal in MultiAgentMonitor: The
MultiAgentMonitorconstructs file paths by concatenating thebase_pathand agent ID without sanitization. This allows an attacker to escape the intended directory using path traversal sequences (e.g.,../), potentially leading to arbitrary file read/write.
Details
Vulnerability 1: Memory State Leakage
- File:
examples/context/12_multi_agent_context.py:68 - Description: The
MultiAgentLedgerclass uses a dictionary (self.ledgers) to store ledger instances keyed by agent ID. Theget_agent_ledgermethod creates a new ledger only if the agent ID is not present. If two agents are registered with the same ID, they will share the same ledger instance. This violates the isolation policy and can lead to leakage of sensitive context data (system prompts, conversation history) between agents. - Exploitability: An attacker can register an agent with the same ID as a victim agent to gain access to their ledger. This is particularly dangerous in multi-tenant systems where agents may handle sensitive user data.
Vulnerability 2: Path Traversal
- File:
examples/context/12_multi_agent_context.py:106 - Description: The
MultiAgentMonitorclass constructs file paths for agent monitors by directly concatenating thebase_pathand agent ID. Since the agent ID is not sanitized, an attacker can provide an ID containing path traversal sequences (e.g.,../../malicious). This can result in files being created or read outside the intended directory (base_path). - Exploitability: An attacker can create an agent with a malicious ID (e.g.,
../../etc/passwd) to write or read arbitrary files on the system, potentially leading to information disclosure or file corruption.
PoC
Memory State Leakage
multi_ledger = MultiAgentLedger()
# Victim agent (user1) registers and tracks sensitive data
victim_ledger = multi_ledger.get_agent_ledger('user1_agent')
victim_ledger.track_system_prompt("Sensitive system prompt")
victim_ledger.track_history([{"role": "user", "content": "Secret data"}])
# Attacker registers with the same ID
attacker_ledger = multi_ledger.get_agent_ledger('user1_agent')
# Attacker now has access to victim's ledger
print(attacker_ledger.get_ledger().system_prompt) # Outputs: "Sensitive system prompt"
print(attacker_ledger.get_ledger().history) # Outputs: [{'role': 'user', 'content': 'Secret data'}]
Path Traversal
with tempfile.TemporaryDirectory() as tmpdir:
multi_monitor = MultiAgentMonitor(base_path=tmpdir)
# Create agent with malicious ID
malicious_id = '../../malicious'
monitor = multi_monitor.get_agent_monitor(malicious_id)
# The monitor file is created outside the intended base_path
# Example: if tmpdir is '/tmp/safe_dir', the actual path might be '/tmp/malicious'
print(monitor.path) # Outputs: '/tmp/malicious' (or equivalent)
Impact
- Memory State Leakage: This vulnerability can lead to unauthorized access to sensitive agent context, including system prompts and conversation history. In a multi-tenant system, this could result in cross-user data leakage.
- Path Traversal: An attacker can read or write arbitrary files on the system, potentially leading to information disclosure, denial of service (by overwriting critical files), or remote code execution (if executable files are overwritten).
Recommended Fix
For Memory State Leakage
- Enforce unique agent IDs at the application…
- Record
GHSA-766v-q9x3-g744- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N - Weakness
- CWE-22, CWE-668
- Updated
- 2026-11-02
OSVGHSA-fwh2-95jw-g4j6
8.7
Duplicate Advisory: PraisonAI has Memory State Leakage and Path Traversal in MultiAgent Context Handling
Duplicate Advisory
This advisory has been withdrawn because it is a duplicate of GHSA-766v-q9x3-g744. This link is maintained to preserve external references.
Original Description
PraisonAI before 1.5.115 contains a path traversal vulnerability in MultiAgentMonitor that fails to sanitize agent IDs when building file paths. Attackers can include traversal sequences like ../ in agent IDs to read, write, or overwrite arbitrary files, enabling sensitive disclosure, denial of service, or code execution.
- Record
GHSA-fwh2-95jw-g4j6- CVSS 4.0
- 8.7 High
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:H/VA:H/SC:N/SI:N/SA:N - CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Weakness
- CWE-22
- Updated
- 2026-11-02
OSVPYSEC-2026-2943
6.5
PraisonAI has Memory State Leakage and Path Traversal in MultiAgent Context Handling
Summary
The MultiAgentLedger and MultiAgentMonitor components in the provided code exhibit vulnerabilities that can lead to context leakage and arbitrary file operations. Specifically:
- Memory State Leakage via Agent ID Collision: The
MultiAgentLedgeruses a dictionary to store ledgers by agent ID without enforcing uniqueness. This allows agents with the same ID to share ledger instances, leading to potential leakage of sensitive context data. - Path Traversal in MultiAgentMonitor: The
MultiAgentMonitorconstructs file paths by concatenating thebase_pathand agent ID without sanitization. This allows an attacker to escape the intended directory using path traversal sequences (e.g.,../), potentially leading to arbitrary file read/write.
Details
Vulnerability 1: Memory State Leakage
- File:
examples/context/12_multi_agent_context.py:68 - Description: The
MultiAgentLedgerclass uses a dictionary (self.ledgers) to store ledger instances keyed by agent ID. Theget_agent_ledgermethod creates a new ledger only if the agent ID is not present. If two agents are registered with the same ID, they will share the same ledger instance. This violates the isolation policy and can lead to leakage of sensitive context data (system prompts, conversation history) between agents. - Exploitability: An attacker can register an agent with the same ID as a victim agent to gain access to their ledger. This is particularly dangerous in multi-tenant systems where agents may handle sensitive user data.
Vulnerability 2: Path Traversal
- File:
examples/context/12_multi_agent_context.py:106 - Description: The
MultiAgentMonitorclass constructs file paths for agent monitors by directly concatenating thebase_pathand agent ID. Since the agent ID is not sanitized, an attacker can provide an ID containing path traversal sequences (e.g.,../../malicious). This can result in files being created or read outside the intended directory (base_path). - Exploitability: An attacker can create an agent with a malicious ID (e.g.,
../../etc/passwd) to write or read arbitrary files on the system, potentially leading to information disclosure or file corruption.
PoC
Memory State Leakage
multi_ledger = MultiAgentLedger()
# Victim agent (user1) registers and tracks sensitive data
victim_ledger = multi_ledger.get_agent_ledger('user1_agent')
victim_ledger.track_system_prompt("Sensitive system prompt")
victim_ledger.track_history([{"role": "user", "content": "Secret data"}])
# Attacker registers with the same ID
attacker_ledger = multi_ledger.get_agent_ledger('user1_agent')
# Attacker now has access to victim's ledger
print(attacker_ledger.get_ledger().system_prompt) # Outputs: "Sensitive system prompt"
print(attacker_ledger.get_ledger().history) # Outputs: [{'role': 'user', 'content': 'Secret data'}]
Path Traversal
with tempfile.TemporaryDirectory() as tmpdir:
multi_monitor = MultiAgentMonitor(base_path=tmpdir)
# Create agent with malicious ID
malicious_id = '../../malicious'
monitor = multi_monitor.get_agent_monitor(malicious_id)
# The monitor file is created outside the intended base_path
# Example: if tmpdir is '/tmp/safe_dir', the actual path might be '/tmp/malicious'
print(monitor.path) # Outputs: '/tmp/malicious' (or equivalent)
Impact
- Memory State Leakage: This vulnerability can lead to unauthorized access to sensitive agent context, including system prompts and conversation history. In a multi-tenant system, this could result in cross-user data leakage.
- Path Traversal: An attacker can read or write arbitrary files on the system, potentially leading to information disclosure, denial of service (by overwriting critical files), or remote code execution (if executable files are overwritten).
Recommended Fix
For Memory State Leakage
- Enforce unique agent IDs at the application…
- Record
PYSEC-2026-2943- CVSS 3.1
- 6.5 Medium
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N - Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
praisonaiagentsPyPI |
through 1.5.114 | 1.5.115 |
praisonaiagentsPyPI |
before 1.5.115, plus listed versions 0.0.10.0.100.0.1000.0.1010.0.102 Show 45 moreShow less0.0.1030.0.1040.0.1050.0.1060.0.1070.0.1080.0.1090.0.110.0.1100.0.1110.0.1120.0.1130.0.1140.0.1150.0.1160.0.1170.0.1180.0.1190.0.120.0.1200.0.1210.0.1220.0.1230.0.1240.0.1250.0.1260.0.1270.0.1280.0.1290.0.130.0.1300.0.1310.0.1320.0.1330.0.1340.0.1350.0.1360.0.1370.0.1380.0.1390.0.140.0.1400.0.1410.0.1420.0.143 |
1.5.115 |
History
| Recorded | Changed | Sources |
|---|---|---|
| affected | ||
| affected, aliases, products, references | EUVD | |
| first indexed | CVE List, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-56078 is a high vulnerability (CVSS 8.7) in Mervinpraison Praisonai, published April 8, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.92%, the 60th percentile. Fixed in praisonaiagents 1.5.115.
References
github.com/MervinPraison/PraisonAI/security/advisories/GHSA-766v-q9x3-g744
github.com/MervinPraison/PraisonAI
vulncheck.com/advisories/praisonai-arbitrary-file-read-and-write-via-path-traversal-in-multiagentmonitor
nvd.nist.gov/vuln/detail/CVE-2026-56078
github.com/advisories/GHSA-766v-q9x3-g744
github.com/advisories/GHSA-fwh2-95jw-g4j6
pypi.org/project/praisonaiagents
Left out here: 444 versions and the rest of 3 source descriptions. The JSON record has them.