T08 · Insecure Dependencies
- Location
SKILL.md:119- Finding
Mutable Remote OpenAPI Schema Creates a Supply-Chain Risk
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:119-122; duplicated inreferences/usage-patterns.md:5-9
Vulnerability Type: Mutable remote dependency without version or integrity pinning
Risk Level: MediumVulnerable Code
SKILL.md:119-122bash 1. Use the fixed link command by default: - `command -v dingtalk-openapi-cli` - If missing, create it: `uxc link dingtalk-openapi-cli https://api.dingtalk.com/v1.0 --schema-url https://raw.githubusercontent.com/holon-run/uxc/main/skills/dingtalk-openapi-skill/references/dingtalk-messaging.openapi.json` - `dingtalk-openapi-cli -h`references/usage-patterns.md:5-9bash command -v dingtalk-openapi-cli uxc link dingtalk-openapi-cli https://api.dingtalk.com/v1.0 \ --schema-url https://raw.githubusercontent.com/holon-run/uxc/main/skills/dingtalk-openapi-skill/references/dingtalk-messaging.openapi.json dingtalk-openapi-cli -hTechnical Analysis
The Skill bundles a curated OpenAPI schema locally, but its primary setup instructions direct
uxc linkto retrieve another copy from the mutable GitHubmainbranch. The URL is neither pinned to an immutable commit nor protected by an expected cryptographic digest.An OpenAPI schema controls the operations, parameters, HTTP methods, and paths exposed by the generated CLI. Consequently, the behavior available after installation may differ from the files that were reviewed during this audit. HTTPS protects transport integrity but does not protect against a compromised upstream repository, malicious maintainer change, or accidental modification to the branch.
This is narrower than arbitrary remote code execution because the retrieved asset is a declarative API schema and the configured base host remains
https://api.dingtalk.com/v1.0. Nevertheless, a changed schema could expose additional DingTalk operations or alter request behavior beyond the four operations present in the a ...[truncated 1305 chars]- Remediation
View remediation
Remediation Suggestions
- Use the bundled schema instead of downloading a remote copy during setup.
- If remote retrieval is necessary, pin the GitHub URL to a reviewed immutable commit SHA rather than
main. - Publish and verify a SHA-256 digest before allowing UXC to consume the schema.
- Fail closed when the digest or expected schema identity does not match.
- Validate an explicit allowlist of paths and methods after retrieval.
- Keep the DingTalk credential binding restricted to HTTPS,
api.dingtalk.com, and the narrowest viable path prefix. - Update both
SKILL.mdandreferences/usage-patterns.mdso users cannot inadvertently follow the unsafe mutable-branch workflow.
