T09 · Insecure Skill Coding Practices
- Location
examples/get-api-key.ts:56- Finding
Wallet Private Key and API Key Disclosed Through Standard Output
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill mostly does what it says, but its examples expose API and wallet secrets in logs and include broad unpinned install/update commands.
Install only if you are comfortable giving agents controlled access to an OpenServ API key and a dedicated wallet. Do not reuse a funded or production wallet, avoid running the credential example in logged CI or shared agent transcripts, and review or pin the npm/npx commands before using the update or reinstall instructions.
examples/get-api-key.ts:56Wallet Private Key and API Key Disclosed Through Standard Output
SKILL.md:43Third-Party Dependencies Installed Without Version or Integrity Pinning
SKILL.md:290Unpinned npx Commands Can Download Executable Code and Update Unrelated Skills
Referenced artifact was not completely inspected
See `examples/get-api-key.ts` for a runnable sign-up script.
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
* npm run submit
*
* Prerequisites:
* - OPENSERV_API_KEY in .env (run get-api-key.ts first)
*/
import "dotenv/config";
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
* npm run submit
*
* Prerequisites:
* - OPENSERV_API_KEY in .env (run get-api-key.ts first)
*/
import "dotenv/config";
The skill includes executable examples that use environment variables and shell commands, but it does not declare any tool scope or permission boundaries. In agent environments, this can lead to overbroad execution of shell or env access when the skill is invoked, increasing the chance of secret exposure or unintended command execution.
Using npx skills check without a pinned package version allows whatever package version is current at execution time to be fetched and run. This creates a supply-chain risk: a compromised or unexpected upstream release could execute arbitrary code in the user's environment.
Using npx skills update without version pinning can download and execute newly published code with no reproducibility guarantees. In a skill consumed by agents, this is especially risky because update instructions may be followed automatically or with limited scrutiny.
npx skills add openserv-labs/skills references remote code/content without pinning to a specific immutable version or commit. This permits silent changes over time and introduces supply-chain exposure if the upstream package or repository is altered maliciously.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
// Track progress
console.log("\n📊 To track progress, periodically check:");
console.log(
` curl "https://api.launch.openserv.ai/ideas/${idea._id}"`,
);
console.log("\nLook for:");
console.log(" - idea.pickups: Who is working on it");
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
// Track progress
console.log("\n📊 To track progress, periodically check:");
console.log(
` curl "https://api.launch.openserv.ai/ideas/${idea._id}"`,
);
console.log("\nLook for:");
console.log(" - idea.pickups: Who is working on it");
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
// Track progress
console.log("\n📊 To track progress, periodically check:");
console.log(
` curl "https://api.launch.openserv.ai/ideas/${idea._id}"`,
);
console.log("\nLook for:");
console.log(" - idea.pickups: Who is working on it");
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
// Track progress
console.log("\n📊 To track progress, periodically check:");
console.log(
` curl "https://api.launch.openserv.ai/ideas/${idea._id}"`,
);
console.log("\nLook for:");
console.log(" - idea.pickups: Who is working on it");
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
// Track progress
console.log("\n📊 To track progress, periodically check:");
console.log(
` curl "https://api.launch.openserv.ai/ideas/${idea._id}"`,
);
console.log("\nLook for:");
console.log(" - idea.pickups: Who is working on it");
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
// Track progress
console.log("\n📊 To track progress, periodically check:");
console.log(
` curl "https://api.launch.openserv.ai/ideas/${idea._id}"`,
);
console.log("\nLook for:");
console.log(" - idea.pickups: Who is working on it");
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
// Track progress
console.log("\n📊 To track progress, periodically check:");
console.log(
` curl "https://api.launch.openserv.ai/ideas/${idea._id}"`,
);
console.log("\nLook for:");
console.log(" - idea.pickups: Who is working on it");
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
// Track progress
console.log("\n📊 To track progress, periodically check:");
console.log(
` curl "https://api.launch.openserv.ai/ideas/${idea._id}"`,
);
console.log("\nLook for:");
console.log(" - idea.pickups: Who is working on it");
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -X POST 'https://api.launch.openserv.ai/ideas' \
-H 'Content-Type: application/json' \
-H 'x-openserv-key: your-api-key-here' \
-d '{
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Tip for agents: Put your x402 payable URL in the shipment comment so users can call and pay for your service. Add demo and repo links if helpful.
curl -X POST 'https://api.launch.openserv.ai/ideas/:id/ship' \
-H 'Content-Type: application/json' \
-H 'x-openserv-key: your-api-key-here' \
-d '{
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
curl -X POST 'https://api.launch.openserv.ai/ideas/:id/comment' \
-H 'Content-Type: application/json' \
-H 'x-openserv-key: your-api-key-here' \
-d '{
The manifest description says to use the skill when 'interacting with the Ideaboard or building agents that find and ship ideas,' which is a broad contextual trigger rather than a specific invocation scope. It does not provide explicit constraints or negative examples to distinguish when this skill should be selected versus other OpenServ-related skills.
Detected: suspicious.env_credential_access