T08 · Insecure Dependencies
- Location
SKILL.md:42- Finding
Mutable Remote OpenAPI Schema Creates a Supply-Chain Trust Risk
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:16-17, 42-44, 82-83;references/usage-patterns.md:5-9, 46-49
Vulnerability Type: Mutable third-party dependency without version or integrity pinning
Risk Level: MediumThe setup instructions direct UXC to retrieve an OpenAPI schema from the mutable
mainbranch of an external GitHub repository, even though an audited schema is included locally inreferences/blockscout-v2.openapi.json.Complete affected setup command from
SKILL.md:42-44:bash command -v blockscout-openapi-cli # If missing, create it: uxc link blockscout-openapi-cli https://eth.blockscout.com/api/v2 --schema-url https://raw.githubusercontent.com/holon-run/uxc/main/skills/blockscout-openapi-skill/references/blockscout-v2.openapi.jsonThe same mutable dependency is used for relinking in
SKILL.md:81-83:bash uxc link blockscout-openapi-cli https://optimism.blockscout.com/api/v2 \ --schema-url https://raw.githubusercontent.com/holon-run/uxc/main/skills/blockscout-openapi-skill/references/blockscout-v2.openapi.jsonIt is repeated in
references/usage-patterns.md:5-9:bash command -v blockscout-openapi-cli uxc link blockscout-openapi-cli https://eth.blockscout.com/api/v2 \ --schema-url https://raw.githubusercontent.com/holon-run/uxc/main/skills/blockscout-openapi-skill/references/blockscout-v2.openapi.json blockscout-openapi-cli -hTechnical Analysis
A URL referencing GitHub's
mainbranch does not identify immutable content. The schema downloaded when a user installs or links the command may therefore differ from the schema that was present during this audit. No commit identifier, release version, cryptographic digest, or signature is used to establish integrity.UXC uses this external schema to define the API operations and request parameters exposed through
blockscout-openapi-cli. Consequently, an upstream repository compromise or uninten ...[truncated 2087 chars]- Remediation
View remediation
Remediation Suggestions
- Use the schema bundled with the Skill as the default source instead of downloading it at runtime:
bash uxc link blockscout-openapi-cli https://eth.blockscout.com/api/v2 \ --schema-url /absolute/path/to/references/blockscout-v2.openapi.json - If remote retrieval is operationally required, pin the raw GitHub URL to a full immutable commit hash rather than
main. - Publish and verify a SHA-256 digest or a cryptographic signature before passing a downloaded schema to UXC.
- Update every occurrence in
SKILL.mdandreferences/usage-patterns.mdso that fallback and multi-instance examples use the same pinned source. - Extend
scripts/validate.shto reject schema URLs containing mutable branch names such as/main/or/master/. - Validate the effective schema before linking: allow only the expected Blockscout host, the seven approved paths, and the HTTP
GETmethod. - Review dependency updates explicitly and update the pinned commit and integrity digest only after the new schema has passed security review.
- Use the schema bundled with the Skill as the default source instead of downloading it at runtime:
