T08 · Insecure Dependencies
Warning
- Location
- SKILL.md:19
- Finding
- Unpinned Scaffolding Package Executes Mutable Code from the npm Registry<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:19`; duplicated in `references/create-webflow-extension-reference.md:24` **Vulnerability Type**: Supply-chain risk caused by executing an unpinned package version **Risk Level**: Medium ### Vulnerable Code `SKILL.md:19`: ```bash npx create-webflow-extension@latest ``` `references/create-webflow-extension-reference.md:24`: ```bash npx create-webflow-extension@latest [name] [options] ``` ### Technical Analysis The Skill recommends invoking `create-webflow-extension` through `npx` with the mutable `@latest` distribution tag. This causes npm to resolve, download, and execute whichever package release the registry identifies as latest at invocation time. Consequently, the code executed by this documented workflow is not the same fixed artifact that was available when the Skill was audited. A compromised maintainer account, malicious future release, registry compromise, or package ownership transfer could alter the effective payload without requiring any change to this repository. Package installation can also execute lifecycle scripts from the selected package and its dependency tree. This behavior is directly related to the Skill's scaffolding functionality, but using a mutable version exceeds the minimum supply-chain trust required. The workflow can instead use a reviewed, exact package version. No evidence was found that the current `create-webflow-extension` package is malicious; the vulnerability is the absence of version and integrity controls. ### Attack Path 1. An attacker compromises the package publisher, npm account, release pipeline, or another component capable of publishing a new `create-webflow-extension` release. 2. The attacker publishes a malicious version and assigns it the `latest` distribution tag. 3. A user or agent follows the Skill's documented quick-start command. 4. `npx` downloads the attacker-controlled release and executes its CLI and any applicable installation li ...[truncated 1025 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Replace `@latest` with an exact, reviewed version in every documented command, for example: ```bash npx create-webflow-extension@X.Y.Z ``` 2. Keep the version synchronized between `SKILL.md` and `references/create-webflow-extension-reference.md`. 3. Review release notes and package provenance before intentionally updating the pinned version. 4. For automated or sensitive environments, install through a lockfile-backed project and enforce registry integrity metadata rather than resolving a mutable tag at execution time. 5. Consider scaffolding with dependency installation disabled until generated manifests have been reviewed: ```bash npx create-webflow-extension@X.Y.Z my-extension --skip-install ``` 6. Run scaffolding with a non-privileged account and avoid exposing unrelated secrets in the process environment. 7. Where supported by organizational tooling, require trusted npm provenance, an approved registry proxy, package allowlisting, and lifecycle-script controls. ]]>
