T01 · Skill Instruction Hijacking
- Location
scripts/digest.js:267- Finding
Untrusted Mailing-List Content Is Exposed to Agent Instruction Hijacking
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill fetches public Bitcoin development sources and archives summaries as advertised, with some operational and prompt-injection risks users should understand.
Install only if you are comfortable with a daily job that fetches public Bitcoin development content and stores raw copies under ~/workspace/bitcoin-dev-archive. Treat fetched mailing-list text as untrusted, review or disable any cron schedule you enable, and periodically delete archives if you do not want indefinite retention.
scripts/digest.js:267Untrusted Mailing-List Content Is Exposed to Agent Instruction Hijacking
scripts/digest.js:374Archive Read Command Permits Directory Traversal Outside the Archive Root
The skill invokes a Node.js script that fetches remote content and archives data locally, but the manifest does not declare any explicit tool scope or permissions boundaries. That makes the skill's effective capabilities opaque to reviewers and users, increasing the chance of unintended network access, environment access, or broader agent execution than expected.
The skill explicitly describes automatic daily cron execution and persistent archival of raw mailing-list and commit data, but it does not clearly warn users that it performs ongoing scheduled activity and writes files over time. This can surprise users, consume storage, create retention/privacy concerns, and cause the agent to continue operating beyond a one-time user request.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
const ARCHIVE_DIR = path.join(process.env.HOME, 'workspace', 'bitcoin-dev-archive');
const GROUPS_URL = 'https://groups.google.com/g/bitcoindev';
const GITHUB_API = 'https://api.github.com/repos/bitcoin/bitcoin/commits';
// ── Helpers ──
The mailing-list fetch path invokes a child Node.js process via execSync even though the same task can be performed in-process. Introducing shell/process-spawning capability unnecessarily broadens the attack surface, increases operational risk, and can become dangerous if command construction is later modified to include untrusted input or if execution environment assumptions change.
The script stores full fetched thread contents, commit data, and generated summaries under a persistent archive directory, while the skill description emphasizes fetching and summarizing recent activity rather than long-term raw-data retention. Persistently archiving third-party content expands the data footprint and retention risk, especially if mailing-list posts contain personal data or sensitive discussion details that users would not expect to be stored locally.
Detected: suspicious.dangerous_exec, suspicious.env_credential_access