T09 · Insecure Skill Coding Practices
- Location
scripts/search_context.js:76- Finding
Project-Level Configuration Can Redirect User Credentials to an Attacker-Controlled Endpoint
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This skill has a coherent recall purpose, but its credentialed outbound lookup can be redirected by project-level configuration in a way that may expose a user's stored API key.
Install only if you trust the repositories where it will run and the configured AgentLoop endpoint. Avoid project-level .agentloop/recall.env files from untrusted repos, do not enable AGENTLOOP_CONFIRM_OUTBOUND broadly, and verify the destination before allowing recall with reusable API keys.
scripts/search_context.js:76Project-Level Configuration Can Redirect User Credentials to an Attacker-Controlled Endpoint
Referenced artifact was not completely inspected
or AgentLoop experience one of your very first actions, using the local CLI at `scripts/search_context.js`.
Referenced artifact was not completely inspected
or AgentLoop experience one of your very first actions, using the local CLI at `scripts/search_context.js`.
Referenced artifact was not completely inspected
or AgentLoop experience one of your very first actions, using the local CLI at `scripts/search_context.js`.
Referenced artifact was not completely inspected
or AgentLoop experience one of your very first actions, using the local CLI at `scripts/search_context.js`.
Referenced artifact was not completely inspected
or AgentLoop experience one of your very first actions, using the local CLI at `scripts/search_context.js`.
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
- `AGENTLOOP_RECALL_ENDPOINT`: AgentLoop Recall or SearchContext HTTP endpoint.
- `AGENTLOOP_CONFIRM_OUTBOUND`: optional automation setting. When `true`, permits outbound recall without passing `--confirm-outbound`; set only after user or operator approval.
- `AGENTLOOP_ACCESS_KEY`: Alibaba Cloud access key for AK/SK signed requests.
- `AGENTLOOP_ACCESS_SECRET`: Alibaba Cloud access secret for AK/SK signed requests.
- `AGENTLOOP_BEARER_API_KEY`: ContextStore API Key copied from the Memory/Experience store API Key tab. The CLI sends it as `Authorization: Token ...`.
## HTTP Request
The skill clearly expects access to environment-based credentials via recall.env and network egress to an external Recall endpoint, but it declares no explicit tool scope or permissions boundary. That mismatch can cause the host agent to invoke the skill with broader capabilities than intended or without clear user/auditor visibility into secret and outbound-data use.
The trigger conditions are broad enough to activate on many ordinary requests about checking prior work, including vague or implied references and multilingual phrases. In this skill’s context, unintended activation can cause unnecessary transmission of user task details to an external recall service, increasing privacy and data-exposure risk even when the user did not specifically intend outbound recall.
The skill instructs the agent to use recall proactively as one of its first actions based on implied need, without strong boundaries on when not to send data. Because the workflow treats many phrases as implicit approval, this increases the chance that sensitive incident details, file paths, service names, or error strings are sent to an external endpoint before necessity is established.
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.
- AK/SK mode: `context_type` (`experience` only in the current rollout), `limit`, `threshold`, `filter`, and `formatted`
- API Key mode: `top_k`, `threshold`, and `filters` for `/v2/memories/search`
The CLI requires `--confirm-outbound` or `AGENTLOOP_CONFIRM_OUTBOUND=true` before transmitting query data. Without confirmation, it exits before reading credential variables.
After confirmation, the CLI reads `AGENTLOOP_ACCESS_KEY` / `AGENTLOOP_ACCESS_SECRET` or `AGENTLOOP_BEARER_API_KEY` only from `~/.agentloop/recall.env`, the nearest project `.agentloop/recall.env`, or process environment variables. Secrets must not be passed as command-line arguments.