T05 · Unauthorized Access and Privilege Escalation
- Location
scripts/skill-health-check.mjs:99- Finding
Unrestricted Reading of Agent Session Transcripts
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a legitimate skill-maintenance tool, but it needs review because it broadly reads local Agent transcripts and contains an unsafe heartbeat command runner.
Review the scripts before installing in a sensitive environment. Run only against workspaces and Agent data you are comfortable having locally scanned, and avoid the daily heartbeat until the shell command construction is fixed or you can guarantee the workspace path is trusted and simple. Prefer a test workspace or a least-privileged account.
scripts/skill-health-check.mjs:99Unrestricted Reading of Agent Session Transcripts
scripts/daily-health-heartbeat.mjs:13Shell Command Injection Through the Workspace Argument
Referenced artifact was not completely inspected
node scripts/skill-health-check.mjs /path/to/workspace
Referenced artifact was not completely inspected
node scripts/skill-health-check.mjs /path/to/workspace
This JSON file is a manifest-like evaluation file, so vague-trigger review applies. The input phrase "do a retro for this week" relies on the broad phrase "do a retro," which is common workplace language and could ambiguously match multiple retrospective or meeting-related skills without additional scope constraints or negative examples in the trigger itself.
The script recursively scans agent session transcript JSONL files under a fixed agents directory and infers skill usage by matching skill names and IDs in transcript lines. Even if intended for health metrics, this creates an unnecessary cross-boundary data collection behavior because transcripts may contain sensitive prompts, outputs, or identifiers unrelated to skill maintenance.
The script reads recent lines from all discovered session transcript files without any notice, consent flow, or narrowing to only telemetry fields. Because transcripts can contain sensitive conversation data, this silent processing creates a privacy risk and may leak or repurpose data beyond what a user expects from a skill audit tool.
This markdown file explains that the daily heartbeat writes summaries and enumerates several output files under .learnings/, but it does not explicitly warn users that running the skill will create or overwrite files in their workspace. Because markdown files should disclose behaviors that affect user data or system state, this is a missing warning for filesystem changes.
The README describes functionality that scans agent session records for usage signals and writes multiple report artifacts into the target workspace, but it does not clearly warn about these side effects in the quick-start or requirements sections. This can lead users to run the tool against sensitive workspaces without realizing conversational logs may be traversed and metadata-derived reports persisted, creating privacy, compliance, or data handling concerns.
The script expands its inventory beyond the provided workspace by enumerating globally installed system skills from a hard-coded user-specific path. This exceeds the apparent scope of a workspace health check and can expose metadata about other installed skills, creating unnecessary visibility into environment-wide configuration.
This code creates a directory and writes a persistent report file to .learnings/skill-health-report.json, which modifies the user's workspace state. The script does not provide advance notice beyond the final JSON console output, and there is no inline comment or prompt warning that a file will be created or overwritten.