T08 · Insecure Dependencies
- Location
SKILL.md:37- Finding
Mutable Remote OpenAPI Schema Creates a Supply-Chain Risk
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:14,SKILL.md:37-41,references/usage-patterns.md:5-8
Vulnerability Type: Unpinned remote dependency
Risk Level: MediumThe skill instructs users to retrieve an OpenAPI schema from the mutable
mainbranch of an external GitHub repository.markdown - Access to the curated OpenAPI schema URL: - `https://raw.githubusercontent.com/holon-run/uxc/main/skills/kucoin-openapi-skill/references/kucoin-public.openapi.json`markdown 1. Use the fixed link command by default: - `command -v kucoin-openapi-cli` - If missing, create it: `uxc link kucoin-openapi-cli https://api.kucoin.com --schema-url https://raw.githubusercontent.com/holon-run/uxc/main/skills/kucoin-openapi-skill/references/kucoin-public.openapi.json` - `kucoin-openapi-cli -h`The same unsafe dependency pattern appears in the usage reference:
bash command -v kucoin-openapi-cli uxc link kucoin-openapi-cli https://api.kucoin.com \ --schema-url https://raw.githubusercontent.com/holon-run/uxc/main/skills/kucoin-openapi-skill/references/kucoin-public.openapi.json kucoin-openapi-cli -hTechnical Analysis
The URL references the mutable
mainbranch rather than an immutable commit. No digest, signature, or other integrity check is specified. Consequently, the schema used at runtime can differ from the bundled and auditedreferences/kucoin-public.openapi.json.If the upstream repository or its publishing workflow is compromised, an attacker can modify the remote schema after this skill has passed review. When
uxc linksubsequently retrieves that schema, the generated CLI can expose API operations that were not included in the reviewed package. This undermines the stated guarantee that the skill is restricted to four curated public, read-only endpoints.The remote resource is an API description rather than an executable script, so direct arbitrary l ...[truncated 1521 chars]
- Remediation
View remediation
Remediation Suggestions
- Prefer the bundled, reviewable
references/kucoin-public.openapi.jsoninstead of downloading a schema at runtime. - If remote retrieval is required, replace
mainwith a full immutable Git commit identifier. - Record an expected SHA-256 digest and verify the downloaded schema before passing it to
uxc. - Fail closed when integrity verification fails; do not silently fall back to the mutable remote resource.
- Extend
scripts/validate.shto reject schema URLs containing mutable branch references such as/main/or/master/. - Validate that the effective schema contains only the four intended
GEToperations and no security schemes, private endpoints, alternate servers, or state-changing methods. - Keep the documentation, usage examples, and validation logic synchronized so all setup paths enforce the same pinned and integrity-checked schema.
- Prefer the bundled, reviewable
