T08 · Insecure Dependencies
- Location
references/shadcn-setup.md:16- Finding
Unpinned shadcn CLI Packages Execute Mutable Third-Party Code
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
This is a coherent UI-building skill, with the main caveat that its setup examples use mutable third-party package commands users should review or pin before running.
Before installing or using this skill, treat its package-manager commands as examples to adapt: pin CLI/package versions where possible, run scaffolding and upgrades from an unprivileged clean branch or disposable workspace, and review all generated or overwritten files before committing.
references/shadcn-setup.md:16Unpinned shadcn CLI Packages Execute Mutable Third-Party Code
references/shadcn-setup.md:120Unpinned shadcn Update Command Can Overwrite Reviewed Component Source
references/tailwind-v4-setup.md:10Unpinned Project Scaffolding Commands Execute Mutable npm Packages
references/tailwind-v4-setup.md:114Unpinned Tailwind Upgrade Tool Can Modify Existing Project Files
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.
The documentation instructs users to run npx shadcn@latest init, which fetches and executes the latest published CLI code at runtime without version pinning. If the upstream package is compromised or a breaking/malicious release is published, users of this skill could execute unreviewed code on their development machines.
The command npx shadcn@latest add ... executes the newest remote CLI release and can modify project files. Using @latest means the exact code run is uncontrolled and may change over time, creating supply-chain risk and reducing reproducibility.
The Vite setup also uses npx shadcn@latest init -t vite, again causing execution of unpinned external code. Because this is an installation path likely to be copied verbatim by users, it meaningfully increases exposure to malicious or compromised upstream releases.
The documented add command at this line executes the remote shadcn CLI without version pinning while generating or updating source files. An attacker controlling or compromising the package distribution could leverage this to run arbitrary code in developer environments.
Using npx shadcn@latest add button --overwrite is especially risky because it both executes unpinned code and overwrites existing component files. A malicious or bad upstream release could therefore both execute code and silently replace trusted local source with unsafe content.
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.
npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.
This code renders a person's full name and email address in the UI, which affects user privacy but is not accompanied by any warning, comment, or disclosure about exposing identifying data. Under the markdown/code warning rule, privacy-affecting behavior in code can warrant a finding when there is no visible disclosure and the sensitivity is not otherwise called out.
No suspicious patterns detected.