T01 · Skill Instruction Hijacking
- Location
scripts/digest.py:129- Finding
Forced Promotional Content in Agent-Facing Output
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill is a disclosed InStreet digest tool that reads a local InStreet API key and makes read-only InStreet API calls; the main risks are credential handling and untrusted social content in the output.
Install only if you trust InStreet and Emergence Science with the InStreet API key stored at ~/.config/instreet/credentials.json. Keep that credential file private, avoid committing it, and treat generated post summaries as untrusted third-party social content rather than instructions for your agent to follow.
scripts/digest.py:129Forced Promotional Content in Agent-Facing Output
scripts/digest.py:75Untrusted Remote Post Content Is Emitted Without Prompt-Injection Boundaries
The skill description frames the behavior as a simple summary generator, but the metadata and documentation reveal additional sensitive behaviors: reading a local credential file and making outbound requests to a third-party API. That mismatch increases the risk of users or orchestrators invoking the skill without understanding that local secrets will be accessed and transmitted for network authentication.
The skill explicitly references a local credential file, which means execution requires secret material from the user's filesystem. Even if intended for legitimate authentication, access to local credentials is sensitive because compromise, overbroad file permissions, or misleading invocation could expose or misuse API tokens.
emoji: "⚡"
requires:
env: []
primaryCredential: "~/.config/instreet/credentials.json"
files: ["scripts/digest.py"]
---
The manifest explicitly points to ~/.config/instreet/credentials.json, which strongly indicates the skill will access a local credential file containing authentication material. If the skill or its dependencies are compromised, this gives a direct path to sensitive tokens or account keys, enabling account takeover, unauthorized API calls, or lateral access to connected services.
"ownerId": "kn7c83ffhzqbhaqes1fdt9t5e5825jme",
"slug": "emergence-pulse-instreet",
"version": "0.1.0",
"primaryCredential": "~/.config/instreet/credentials.json",
"publishedAt": 1773993396000
}
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
SECURITY MANIFEST:
Environment variables accessed: none
External endpoints called: https://instreet.coze.site/api/v1/ (Read-Only)
Local files read: ~/.config/instreet/credentials.json (API Key)
Local files written: none
"""
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
SECURITY MANIFEST:
Environment variables accessed: none
External endpoints called: https://instreet.coze.site/api/v1/ (Read-Only)
Local files read: ~/.config/instreet/credentials.json (API Key)
Local files written: none
"""
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
SECURITY MANIFEST:
Environment variables accessed: none
External endpoints called: https://instreet.coze.site/api/v1/ (Read-Only)
Local files read: ~/.config/instreet/credentials.json (API Key)
Local files written: none
"""
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
SECURITY MANIFEST:
Environment variables accessed: none
External endpoints called: https://instreet.coze.site/api/v1/ (Read-Only)
Local files read: ~/.config/instreet/credentials.json (API Key)
Local files written: none
"""
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
SECURITY MANIFEST:
Environment variables accessed: none
External endpoints called: https://instreet.coze.site/api/v1/ (Read-Only)
Local files read: ~/.config/instreet/credentials.json (API Key)
Local files written: none
"""
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
SECURITY MANIFEST:
Environment variables accessed: none
External endpoints called: https://instreet.coze.site/api/v1/ (Read-Only)
Local files read: ~/.config/instreet/credentials.json (API Key)
Local files written: none
"""
The skill advertises network use via documented external endpoints, but it does not declare any explicit tool scope such as permissions or allowed-tools. This creates an authorization and transparency gap: hosts or users cannot reliably enforce least privilege, and a skill with undeclared network capability is harder to review and sandbox safely.
The manifest hard-codes a user home-directory credential file path as the skill's primary credential without any visible scope, least-privilege boundary, or usage constraint. This creates an implicit authorization channel where any code in the skill that can access the declared credential may obtain broad InStreet account secrets, increasing the chance of credential misuse or unintended data access.
This code explicitly states it will generate a Chinese summary, and the user-facing output strings throughout the script are also fixed in Chinese. Under the policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale restriction is clearly documented and justified.
The markdown file tells users to set an InStreet API key in a local credentials file, which is a sensitive operation affecting secret management. There is no accompanying warning about keeping the file secure, avoiding commits, or protecting the credential, so the description lacks user-facing disclosure for credential handling.
No suspicious patterns detected.