Severity by source
CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:N/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N/E:P/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
Network-reachable trigger with high complexity; no confidentiality impact; low integrity and availability loss bounded to the running user's ~/.claude directory.
Primary rating from Vendor (VulDB).
CVSS VectorVendor: VulDB
Lifecycle Timeline
5DescriptionCVE.org
A security flaw has been discovered in poco-ai poco-agent up to 0.5.4. Affected is the function WorkspaceManager._setup_session_persistence of the file executor/app/core/workspace.py of the component Claude File Handler. The manipulation results in incomplete cleanup. The attack may be performed from remote. Attacks of this nature are highly complex. The exploitability is told to be difficult. The exploit has been released to the public and may be used for attacks.
AnalysisAI
Incomplete session cleanup in poco-ai/poco-agent up to version 0.5.4 can permanently destroy the host user's ~/.claude directory - including all Claude Code chat history stored under ~/.claude/projects - when the agent runs outside a container environment. The WorkspaceManager._setup_session_persistence method performs an unconditional rmtree followed by a symlink swap on ~/.claude without verifying a container context, and the corresponding cleanup phase can additionally unlink pre-existing ~/.claude symlinks unrelated to poco-agent. A publicly available exploit exists via GitHub issue #131 and PR #132, though the CVSS 4.0 base score of 2.9 reflects high attack complexity and impact limited to low integrity and availability loss with no confidentiality breach.
Technical ContextAI
The vulnerability resides in the WorkspaceManager class within executor/app/core/workspace.py of the poco-ai/poco-agent project (CPE: cpe:2.3:a:poco-ai:poco-agent:*:*:*:*:*:*:*:*). The _setup_session_persistence method was designed to atomically redirect Claude Code's ~/.claude directory to a workspace-scoped persistent storage area (.claude_data) using a symlink swap - a technique appropriate only inside disposable container environments where ~/.claude holds no real user data. CWE-459 (Incomplete Cleanup) manifests in two places: first, the setup phase invoked rmtree on the real ~/.claude directory and replaced it with a symlink without first confirming a container context (via /.dockerenv, /run/.containerenv, cgroup markers, or explicit env vars), meaning host-deployed instances would silently destroy live user data; second, the cleanup/teardown phase unlinked any ~/.claude symlink regardless of whether poco-agent created it, risking removal of pre-existing user-managed symlinks. The PR #132 fix introduces a _destructive_claude_symlink_allowed() guard and a targeted cleanup that only removes symlinks verifiably pointing at poco-agent's own persistent_claude_data path.
RemediationAI
An upstream fix is available via GitHub PR #132 at https://github.com/poco-ai/poco-claw/pull/132; a formally tagged patched release version has not been independently confirmed from the available data, so users should verify the fix is included in any release they consume. The patch adds the _destructive_claude_symlink_allowed() guard that refuses to perform the destructive rmtree and symlink swap unless a container environment is positively confirmed via /.dockerenv, /run/.containerenv, cgroup patterns (docker, containerd, kubepods, lxc), or the explicit environment variable POCO_IN_CONTAINER=1. As an immediate workaround, run poco-agent exclusively inside Docker or OCI containers where ~/.claude is ephemeral and not backed by real user data. Users on affected versions running poco-agent on host machines should back up ~/.claude before executing any tasks, and should avoid setting POCO_FORCE_CLAUDE_SYMLINK=1 outside of isolated container environments. The cleanup fix ensures symlink removal is scoped only to symlinks poco-agent itself created, preventing accidental destruction of pre-existing user configurations.
Same weakness CWE-459 – Incomplete Cleanup
View allSame technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-53818
GHSA-j255-r942-27q8