T09 · Insecure Skill Coding Practices
- Location
bin/run.mjs:22- Finding
API Token Exposed Through Process Arguments and URL Query Parameters
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill does what it claims, but it handles the API token in ways that can expose the credential through process arguments and URL query strings.
Review this skill before installing if the JustOneAPI token is sensitive or tied to billing. Prefer a version that reads the token from a safer secret channel and sends it via an authorization header if the provider supports that; otherwise use a narrowly scoped, revocable token and avoid logging full command lines or request URLs.
bin/run.mjs:22API Token Exposed Through Process Arguments and URL Query Parameters
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
"parameters": [
{
"defaultValue": null,
"description": "API access token.",
"enumValues": [],
"location": "query",
"name": "token",
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
"parameters": [
{
"defaultValue": null,
"description": "API access token.",
"enumValues": [],
"location": "query",
"name": "token",
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
"parameters": [
{
"defaultValue": null,
"description": "API access token.",
"enumValues": [],
"location": "query",
"name": "token",
The skill invokes a network-capable helper (node {baseDir}/bin/run.mjs) and is designed to call an external API, but it does not declare an explicit tool scope such as permissions or allowed-tools. This creates a governance and least-privilege gap: an agent runtime or reviewer cannot easily restrict or reason about the network access the skill requires, increasing the risk of unintended outbound requests or overbroad execution in permissive environments.
The skill sends the API access token as a URL query parameter, which is commonly exposed in logs, browser history, reverse proxies, analytics tooling, and error messages. Although the request uses HTTPS, query-string secrets are still more broadly propagated than header-based credentials, increasing the chance of accidental credential disclosure.
The manifest requires an API access token to be sent as a query parameter, but provides no warning about credential exposure or handling. Query-string tokens are commonly logged by clients, proxies, browser histories, and monitoring systems, which increases the risk of accidental credential disclosure.
This JSON manifest describes the skill in general terms as calling a Weibo comments endpoint, but it does not provide any explicit trigger phrases, scope limitations, or negative examples to clarify when the skill should or should not be invoked. For manifest files, this can create overly broad matching against generic requests about Weibo comments.
Detected: suspicious.secret_argv_exposure