T08 · Insecure Dependencies
- Location
SKILL.md:16- Finding
Unpinned and Unnecessary npm Dependency
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 16–18
Vulnerability Type: Unpinned third-party dependency and unnecessary supply-chain exposure
Risk Level: MediumVulnerable Code:
yaml install: npm: - "@sardis/sdk"Technical Analysis
The skill metadata requests installation of
@sardis/sdkwithout specifying an exact version or package-integrity hash. Consequently, installations may resolve to different package releases over time, including a release published after this audit.The documented functionality uses
curlandjqexclusively; no command inSKILL.mdimports or invokes the Sardis SDK. Installing this package therefore adds a third-party execution and dependency surface that is unnecessary for the skill's declared read-only operations.If the package, its publishing account, or a transitive dependency is compromised, malicious package content or lifecycle scripts could execute during installation. The finding does not establish that the current package is malicious; it identifies an avoidable and insufficiently constrained supply-chain path.
Attack Path
- An attacker compromises the package publisher, a transitive dependency, or the package-distribution channel.
- The attacker publishes a malicious version that remains compatible with the unconstrained package reference.
- A user or automated skill installer installs the skill and resolves
@sardis/sdkto the malicious release. - The package manager downloads the attacker-controlled package.
- Malicious package code or npm lifecycle scripts execute with the privileges and environment available to the installation process.
Impact Assessment
Successful exploitation could provide arbitrary local code execution under the account installing the skill. Depending on that account's privileges and environment, the attacker could access local files, environment variables—including
SARDIS_API_KEYif ...[truncated 215 chars]- Remediation
View remediation
Remediation Suggestions
- Remove
@sardis/sdkfrom the installation metadata because the documented skill operations do not use it. - If the SDK becomes necessary, pin it to an exact, reviewed version rather than using an unconstrained package reference.
- Commit and enforce a lockfile containing integrity hashes for the package and all transitive dependencies.
- Verify package provenance and signatures where supported, and use a trusted registry with namespace controls.
- Disable npm lifecycle scripts during installation when they are not required, for example through an appropriate
ignore-scriptspolicy. - Run dependency installation in a sandbox with minimal filesystem, network, credential, and environment-variable access.
- Add automated dependency auditing and require security review before updating the pinned version.
- Remove
