T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:62
- Finding
- Mutable Remote OpenAPI Schema Creates a Supply-Chain Risk<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:62-65` and `references/usage-patterns.md:4-9` **Vulnerability Type**: Unpinned remote dependency **Risk Level**: Medium ### Vulnerable Code `SKILL.md:62-65`: ```bash 1. Use the fixed link command by default: - `command -v moralis-openapi-cli` - If missing, create it: `uxc link moralis-openapi-cli https://deep-index.moralis.io/api/v2.2 --schema-url https://raw.githubusercontent.com/holon-run/uxc/main/skills/moralis-openapi-skill/references/moralis-evm.openapi.json` ``` `references/usage-patterns.md:4-9`: ```bash ```bash command -v moralis-openapi-cli uxc link moralis-openapi-cli https://deep-index.moralis.io/api/v2.2 \ --schema-url https://raw.githubusercontent.com/holon-run/uxc/main/skills/moralis-openapi-skill/references/moralis-evm.openapi.json moralis-openapi-cli -h ``` ``` ### Technical Analysis The documented runtime setup instructs users to retrieve the OpenAPI schema from the mutable `main` branch of an external GitHub repository. The URL is not pinned to a reviewed commit, release artifact, or cryptographic digest. Consequently, the effective API definition used by `uxc link` can change after this skill package has been reviewed. A compromised upstream repository, malicious maintainer update, or unauthorized branch modification could add or alter endpoints, parameters, HTTP methods, or schema metadata presented through the generated CLI. The project already includes a local reviewed schema at `references/moralis-evm.openapi.json`, but the default setup does not use that bundled artifact. The configured UXC credential binding is restricted to HTTPS, `deep-index.moralis.io`, and `/api/v2.2`, which limits credential-redirection opportunities; however, it does not prevent the remotely supplied schema from changing behavior within that authorized API scope. ### Attack Path 1. An attacker compromises or gains modification rights to the upstream repository, or a malicious ...[truncated 1505 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Use the bundled, reviewed schema instead of retrieving it from the network during linking: ```bash uxc link moralis-openapi-cli https://deep-index.moralis.io/api/v2.2 \ --schema-url file:///absolute/path/to/references/moralis-evm.openapi.json ``` If `uxc` supports a direct local schema option, prefer that option rather than a `file://` URL. 2. If remote retrieval is operationally required, pin the GitHub URL to a reviewed immutable commit SHA rather than `main`: ```text https://raw.githubusercontent.com/holon-run/uxc/<reviewed-commit-sha>/skills/moralis-openapi-skill/references/moralis-evm.openapi.json ``` 3. Publish and verify a SHA-256 or stronger cryptographic digest before passing the downloaded schema to UXC. Fail closed when the digest does not match. 4. Extend `scripts/validate.sh` to reject schema URLs containing mutable branch names such as `main` or `master`, and require either a local artifact or an approved immutable revision. 5. Continue enforcing the existing HTTPS host and path-scoped credential binding. Where supported, also restrict allowed HTTP methods and operations to the seven reviewed GET endpoints. 6. Establish an update process in which schema changes are reviewed, checksummed, tested, and explicitly versioned before deployment. ]]>
