T08 · Insecure Dependencies
- Location
SKILL.md:214- Finding
Unpinned npm Package Execution Through npx
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:214,SKILL.md:315, andSKILL.md:479
Vulnerability Type: Unpinned third-party package execution
Risk Level: MediumVulnerable Code Snippets
shell npx onekey agent craftsman-agent/craftsman-agent toy_generator_design_draft '{"prompt":"Stuffed Steve in Minecraft","images":["https://static.aiagenta2z.com/container/craftsman-agent/default/static/derekzz/a49f905b-4e0d-40c6-af7a-c37be3d1741e/3ccb042bbd9b41c3a9f5d31c564ef4c0.png"],"asset_size":"small","template_id":"stuffed-toy","provider_model_id":"default","session_name":"3D Build Plan","tag_list":"","mode":"demo"}'shell npx onekey agent craftsman-agent/craftsman-agent toy_generator_task_create '{"prompt":"","images":["https://static.aiagenta2z.com/container/craftsman-agent/default/static/derekzz/a49f905b-4e0d-40c6-af7a-c37be3d1741e/3ccb042bbd9b41c3a9f5d31c564ef4c0.png"],"multi_view":{"front":"https://craftsman-agent.aiagenta2z.com/static/derekzz/75302fb3-b0f4-4bfe-a406-1c97eda64dbf/build_front.png","right":"https://craftsman-agent.aiagenta2z.com/static/derekzz/75302fb3-b0f4-4bfe-a406-1c97eda64dbf/build_right.png","back":"https://craftsman-agent.aiagenta2z.com/static/derekzz/75302fb3-b0f4-4bfe-a406-1c97eda64dbf/build_back.png"},"asset_size":"small","template_id":"stuffed-toy","provider_model_id":"tripo/tripo","model":"P1-20260311","session_name":"3D Build Plan","tag_list":"","mode":"basic"}'shell npx onekey agent craftsman-agent/craftsman-agent toy_generator_task_poll '{"task_id":"96b2116e-4b86-4d3c-af04-baf0da0c23ac","kwargs":{"provider_model_id":"tripo/tripo","mode":"basic"}}'Technical Analysis
The documented commands invoke
npx onekeywithout specifying an exact package version, package-integrity value, lockfile, or verified publisher. If the package is not already installed locally,npxmay retrieve the currently resolvedonekeypackage from the configured npm registry and execute it.This creates a mut ...[truncated 1743 chars]
- Remediation
View remediation
Remediation Suggestions
- Replace unversioned invocation with an exact, reviewed package version, for example
npx --yes onekey@<verified-exact-version> .... - Verify and document the package's official npm name, publisher identity, repository, release provenance, and expected integrity metadata.
- Install dependencies from a committed lockfile using a reproducible installation process such as
npm ci. - Enforce lockfile integrity and use package-signing or provenance verification where supported.
- Prefer the documented direct HTTPS REST API workflow when the CLI package's provenance cannot be verified.
- Run the CLI in a sandbox or restricted environment with minimal filesystem and network privileges.
- Pass only the required credential to the process rather than exposing unrelated environment variables.
- Use a narrowly scoped, revocable API key; rotate it if package compromise is suspected.
- Add automated dependency auditing and monitoring for publisher changes, unexpected releases, and compromised transitive dependencies.
- Replace unversioned invocation with an exact, reviewed package version, for example
