T02 · Agent Memory Poisoning
- Location
scripts/ber.js:645- Finding
Rejected, Quarantined, Superseded, or Unreviewed Lessons Can Be Promoted into Durable Agent Instructions
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill has a coherent purpose, but its helper can persist lessons that were not approved and can be tricked into writing outside the project boundary.
Review before installing. This skill is not trying to hide its persistence model, but it can modify durable agent instruction files; only run promotion commands for lessons you have explicitly reviewed, avoid sensitive lesson text, and do not use symlinked promotion or eval targets. Maintainers should add lifecycle checks and canonical path validation before broad use.
scripts/ber.js:645Rejected, Quarantined, Superseded, or Unreviewed Lessons Can Be Promoted into Durable Agent Instructions
scripts/ber.js:229Lexical Path Validation Allows Symlink-Based Writes Outside the Project
Referenced artifact was not completely inspected
- Skill promotions must target `SKILL.md` in the current skill project.
The example exposes a bare "/ber report" trigger without indicating what data it reports on, what scope it uses, or whether confirmation is required before surfacing stored lessons or local evidence. In a skill centered on capturing and promoting behavioral lessons, an underspecified report command can cause overbroad disclosure of internal memory, project-local artifacts, or prior corrections if the agent interprets the request too broadly.
The command uses npx --yes svg-term-cli without pinning an exact package version, so it may fetch and execute whatever version is current at runtime. That creates a supply-chain risk: a compromised upstream release, dependency takeover, or unexpected breaking change could lead to arbitrary code execution on the operator's machine when following the documented demo steps.
The script creates a temporary working directory and deletes it on exit via rm -rf, but there is no confirmation prompt, warning comment, or user-facing disclosure explaining that filesystem changes and cleanup will occur. It also later writes demo files, and this file itself does not document those side effects.
The script writes direct.md and later memory/decisions.md as part of the demo, but there is no explicit warning or comment in the file that local files will be created. Although the operations are part of the demo flow, the lack of direct disclosure means users may not realize the script modifies the working directory.