T08 · Insecure Dependencies
- Location
SKILL.md:22- Finding
Unpinned Third-Party Package and Mutable Source Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:22-29;README.md:5-16;README.md:109-114
Vulnerability Type: Supply-chain exposure through unpinned dependencies and mutable remote source
Risk Level: MediumVulnerable Code
SKILL.md:22-29:bash npm install -g @cyberdrk/tgOr from source:
bash cd ~/Code/cyberdrk305/telegram && npm install && npm run build && npm linkREADME.md:5-16:bash npm install -g @cyberdrk/tgOr install from source:
bash git clone https://github.com/cyberdrk305/telegram.git cd telegram npm install npm run build npm linkREADME.md:109-114:bash mkdir -p ~/.claude/skills ln -s $(npm root -g)/@cyberdrk/tg/SKILL.md ~/.claude/skills/tg.mdOr if installed from source:
bash ln -s ~/Code/cyberdrk305/telegram/SKILL.md ~/.claude/skills/tg.mdTechnical Analysis
The installation instructions retrieve either the latest available version of the
@cyberdrk/tgnpm package or the mutable default branch of a remote GitHub repository. They do not specify a reviewed package version, immutable commit hash, integrity checksum, or other provenance-verification mechanism.An npm installation can execute package lifecycle scripts. The source-based procedure additionally executes
npm installandnpm run buildagainst remotely obtained content, then globally exposes the resulting tool throughnpm link. The Claude Code installation instructions subsequently link the installed package'sSKILL.mdinto an agent skill directory. Consequently, a future package release or repository modification can differ from the content reviewed in this audit and may become trusted local agent instructions.The supplied project contains only documentation, so there is no implementation, lockfile, package manifest, lifecycle script, or credential-storage code available to verify. This finding th ...[truncated 1929 chars]
- Remediation
View remediation
Remediation Suggestions
- Pin the npm dependency to an explicitly reviewed version rather than installing an unconstrained latest release:
bash npm install -g @cyberdrk/tg@X.Y.Z - For source installations, pin and verify an immutable commit:
bash git clone https://github.com/cyberdrk305/telegram.git cd telegram git checkout --detach VERIFIED_COMMIT_SHA - Publish trusted SHA-256 checksums or signed release artifacts and require verification before installation.
- Commit a lockfile and use deterministic installation such as
npm cirather than unconstrainednpm install. - Audit package lifecycle and build scripts before execution. Where compatible, initially install with lifecycle scripts disabled:
bash npm ci --ignore-scripts - Avoid global installation and
npm linkunless operationally necessary. Prefer an isolated, least-privileged environment or a dedicated user account. - Copy a reviewed, versioned skill file into the agent's skill directory instead of symlinking mutable package content, or verify its integrity every time the package changes.
- Document package provenance, expected publisher identity, release-signing procedures, reviewed versions, and rollback instructions.
- Restrict permissions on Telegram credential and session storage, and ensure installation or build scripts cannot access production credentials during package evaluation.
- Add automated dependency scanning, lockfile integrity validation, and release provenance checks to the publication workflow.
- Pin the npm dependency to an explicitly reviewed version rather than installing an unconstrained latest release:
