T09 · Insecure Skill Coding Practices
- Location
SKILL.md:341- Finding
API Tokens May Be Persisted in an Unprotected Plaintext Directory
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This API testing skill is mostly coherent, but it gives broad execution, network, credential, load-testing, sharing, scheduling, and privilege guidance without enough safeguards.
Review before installing. Use only against systems you own or are authorized to test, avoid production and third-party load testing unless explicitly approved, redact recordings/reports before sharing, do not store tokens in plaintext credential folders, and do not run the agent or toolkit as administrator for routine API testing.
SKILL.md:341API Tokens May Be Persisted in an Unprotected Plaintext Directory
SKILL.md:626Unpinned Dependency Installation From an Implicit Package Source
SKILL.md:493Generic Troubleshooting Guidance Encourages Administrator Execution
The skill encourages recording and replaying real API traffic without clearly warning that requests and responses may contain credentials, tokens, PII, session identifiers, or proprietary payloads. In an API-testing skill with read/write/exec capabilities, this is dangerous because captured artifacts can persist locally, be checked into repos, or be reused in unsafe contexts, creating a realistic secret and data-leak path.
The load-testing section provides concrete instructions for stressing target services, including third-party endpoints, but omits a clear warning that such actions can degrade service, trigger abuse controls, incur costs, or violate acceptable-use policies. In context, this is especially risky because the skill is operational and exec-enabled, making harmful testing against production or external systems more likely.
The display name, summaries, and the body of the document are written in Chinese, while the skill is otherwise presented as a general-purpose development tool rather than a clearly China-only or Chinese-only tool. There is no indication that users may choose another language or that the locale restriction is required for compliance or regional use.
The description says the skill should be used when there is a need for "代码生成、编程辅助、调试测试、开发部署", which is much broader than the API-testing scope implied elsewhere. These generic trigger conditions overlap with everyday developer requests and do not clearly define when this skill should activate versus more specialized skills.
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Load Test Report - 2026-07-18
================================
Target: https://api.example.com/v1/users
Duration: 300s | Total Requests: 150,000
# ...
Concurrency | QPS | P95(ms) | P99(ms) | Error%
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Load Test Report - 2026-07-18
================================
Target: https://api.example.com/v1/users
Duration: 300s | Total Requests: 150,000
# ...
Concurrency | QPS | P95(ms) | P99(ms) | Error%
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Load Test Report - 2026-07-18
================================
Target: https://api.example.com/v1/users
Duration: 300s | Total Requests: 150,000
# ...
Concurrency | QPS | P95(ms) | P99(ms) | Error%
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Load Test Report - 2026-07-18
================================
Target: https://api.example.com/v1/users
Duration: 300s | Total Requests: 150,000
# ...
Concurrency | QPS | P95(ms) | P99(ms) | Error%
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Load Test Report - 2026-07-18
================================
Target: https://api.example.com/v1/users
Duration: 300s | Total Requests: 150,000
# ...
Concurrency | QPS | P95(ms) | P99(ms) | Error%
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Load Test Report - 2026-07-18
================================
Target: https://api.example.com/v1/users
Duration: 300s | Total Requests: 150,000
# ...
Concurrency | QPS | P95(ms) | P99(ms) | Error%
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Load Test Report - 2026-07-18
================================
Target: https://api.example.com/v1/users
Duration: 300s | Total Requests: 150,000
# ...
Concurrency | QPS | P95(ms) | P99(ms) | Error%
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.
Load Test Report - 2026-07-18
================================
Target: https://api.example.com/v1/users
Duration: 300s | Total Requests: 150,000
# ...
Concurrency | QPS | P95(ms) | P99(ms) | Error%
The collaboration features describe cloud/shared repositories, result diffs, change notifications, and webhooks without clearly warning that test assets and reports may include request bodies, tokens, headers, error payloads, or tenant data. This is dangerous because collaborative distribution expands the blast radius of any sensitive API artifacts beyond a single operator to teammates and external integrations.
The documented on-failure webhook posts data to an external endpoint, which creates an external transmission path. Even though the example only sends a short fixed message, in context this pattern normalizes outbound notifications from an exec-enabled skill and could easily be adapted to include sensitive test names, environment details, or failure artifacts without adequate review.
api-toolkit test run ./tests/smoke.yaml --schedule "*/5 * * * *" \
--on-failure "curl -X POST $ALERT_WEBHOOK -d 'API冒烟测试失败'"
L387 states '本地运行,不支持多设备同步', which directly conflicts with earlier documented capabilities such as '团队协作空间' with cloud repositories, role management, webhook notifications, and uploads/notifications to Slack/钉钉/飞书/Confluence/Notion in L140-L148 and L362-L373. This is not just incomplete documentation; it actively contradicts the described behavior of the skill.
The manifest description focuses on API testing/debugging, regression, local mock server, load testing, contract validation, error-code dictionaries, and team collaboration. In contrast, L542-L873 describes much broader product behavior including API directory management, monitoring/alerting, API generation/editing, authentication/authorization frameworks, anti-abuse defenses, deployment management, and API publishing/management-platform functions, which materially expands the represented scope.
No suspicious patterns detected.