T08 · Insecure Dependencies
- Location
SKILL.md:65- Finding
Mutable Remote OpenAPI Schema Controls Generated CLI Behavior
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 65-69
Vulnerability Type: Supply-chain risk through an unpinned remote dependency
Risk Level: Mediumbash command -v whatsapp-openapi-cli # If missing, create it: uxc link whatsapp-openapi-cli https://graph.facebook.com/v25.0 --schema-url https://raw.githubusercontent.com/holon-run/uxc/main/skills/whatsapp-openapi-skill/references/whatsapp-cloud.openapi.json whatsapp-openapi-cli -hTechnical Analysis
The documented setup command instructs UXC to generate or link the WhatsApp CLI using an OpenAPI schema retrieved from the mutable
mainbranch of an external GitHub repository. The URL is not pinned to a reviewed commit, release artifact, or cryptographic digest.Although the project includes a local audited schema at
references/whatsapp-cloud.openapi.json, the default setup does not use it. Consequently, the effective API definition consumed at installation time may differ from the version reviewed with this package. An upstream repository compromise or unauthorized schema change could modify server metadata, exposed operations, parameters, or request construction.The bearer credential is bound to
graph.facebook.comand/v25.0, which limits some credential-redirection scenarios. However, this binding does not preserve the integrity of operations generated from the remote schema.The same vulnerable pattern also appears in
references/usage-patterns.md, lines 5-7:bash uxc link whatsapp-openapi-cli https://graph.facebook.com/v25.0 \ --schema-url https://raw.githubusercontent.com/holon-run/uxc/main/skills/whatsapp-openapi-skill/references/whatsapp-cloud.openapi.jsonAttack Path
- An attacker compromises the referenced upstream repository or obtains permission to modify its
mainbranch. - The attacker changes
whatsapp-cloud.openapi.json, altering API operations, parameters, request bodies, or server-related metadata. - A user follows the documented ...[truncated 1186 chars]
- An attacker compromises the referenced upstream repository or obtains permission to modify its
- Remediation
View remediation
Remediation Suggestions
-
Use the schema bundled with the reviewed skill package instead of retrieving it from a remote branch:
bash uxc link whatsapp-openapi-cli https://graph.facebook.com/v25.0 \ --schema-url ./references/whatsapp-cloud.openapi.jsonIf UXC requires an absolute path or file URI, resolve the package directory and supply the corresponding local URI.
-
If remote retrieval is operationally required, pin the URL to an immutable reviewed commit rather than
main:text https://raw.githubusercontent.com/holon-run/uxc/<reviewed-commit>/skills/whatsapp-openapi-skill/references/whatsapp-cloud.openapi.json -
Publish and verify a SHA-256 digest before passing the downloaded schema to UXC. Abort setup if verification fails.
-
Update both
SKILL.mdandreferences/usage-patterns.mdso all installation examples use the same pinned or local schema. -
Extend
scripts/validate.shto reject schema URLs containing mutable branch names such asmainand to verify that documentation references either the bundled schema or an approved immutable commit. -
Retain the existing host, HTTPS scheme, and
/v25.0path credential binding as defense in depth.
-
