T08 · Insecure Dependencies
- Location
SKILL.md:279- Finding
Unpinned Third-Party and Mutable Remote Skill Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 279–300
Vulnerability Type: Unpinned third-party dependencies and mutable remote skill content
Risk Level: MediumVulnerable code:
markdown ### Skills CLI ```bash npx skills add OriginwiseAI/skills --skill kpainterWhile this repository contains one public skill, this also works:
bash npx skills add OriginwiseAI/skillsDirect URL
Give the agent:
https://kpainter.ai/skill.mdLocal Folder
bash mkdir -p ~/.codex/skills/kpainter curl -s https://kpainter.ai/skill.md > ~/.codex/skills/kpainter/SKILL.mdtext ### Technical Analysis The documented installation procedures retrieve dependencies or skill instructions without pinning them to an immutable, audited version. The `npx skills add` commands do not specify a fixed CLI package version or an immutable repository commit. The direct URL and `curl` installation methods download a mutable `SKILL.md` without checksum verification, signature validation, or an explicit review step. Although the downloaded Markdown is not piped directly into a shell, installing it into the agent's skill directory causes its instructions to be trusted when the skill is subsequently loaded. Consequently, the effective behavior can change after the reviewed project artifact has been audited. A compromise of the package registry, source repository, publishing account, DNS resolution, or hosting endpoint could substitute malicious content. ### Attack Path 1. An attacker compromises an upstream package, repository, publisher account, or the remote `kpainter.ai` skill-hosting path. 2. The attacker replaces the expected package or `SKILL.md` with altered content. 3. A user follows one of the unpinned installation procedures in `SKILL.md`. 4. The mutable content is retrieved and installed without integrity or authenticity verification. 5. The agent later loads the subst ...[truncated 805 chars]- Remediation
View remediation
Remediation Suggestions
- Pin the Skills CLI package to a reviewed, exact version rather than relying on the version selected by
npx. - Pin the skill repository to an immutable commit hash or signed release tag.
- Publish a cryptographic checksum or signature for every released
SKILL.md. - Download remote content to a temporary file and verify its checksum or signature before placing it in the agent's skill directory.
- Use failure-aware download options such as
curl --fail --show-error --locationso HTTP errors are not silently written as skill content. - Avoid overwriting an existing trusted skill until verification succeeds; use an atomic replacement after validation.
- Prefer distributing the audited skill artifact with the project instead of directing users to a mutable remote URL.
- Document the expected release version, commit identifier, checksum, and verification procedure beside every installation command.
- Pin the Skills CLI package to a reviewed, exact version rather than relying on the version selected by
