T08 · Insecure Dependencies
- Location
SKILL.md:15- Finding
Unpinned Third-Party CLI Dependency
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 15–17
Vulnerability Type: Unpinned executable dependency
Risk Level: MediumVulnerable Code
yaml "kind": "go", "module": "github.com/tylerwince/grizzly/cmd/grizzly@latest", "bins": ["grizzly"],Technical Analysis
The Skill installs the third-party
grizzlyCLI using the mutable Go version selector@latest. As a result, installations performed at different times may retrieve and compile different source revisions, including revisions that were not reviewed during this audit.The dependency is necessary for the Skill's declared Bear Notes functionality. However, using a moving version grants future upstream releases implicit trust beyond the minimum required. This is particularly sensitive because
grizzlyis invoked to read and modify private Bear notes and may receive access to the Bear API token through--token-file.No evidence indicates that the currently referenced project is malicious. The vulnerability is the absence of immutable dependency pinning, which creates a supply-chain attack opportunity.
Attack Path
- An attacker compromises the upstream repository, a maintainer account, or the module's release process.
- The attacker publishes a malicious revision that becomes the version resolved by
@latest. - A user installs or reinstalls the Skill dependency.
- Go retrieves and compiles the compromised revision.
- The Agent invokes the resulting
grizzlyexecutable during ordinary Skill operations. - The compromised executable runs with the invoking user's privileges and can misuse the Bear note data and token-file access available during those operations.
Impact Assessment
A compromised dependency would execute with the privileges of the user running the Agent. It could potentially:
- Read or modify Bear notes made available through normal operations.
- Misuse the Bear API token when invoked with
--token-file. - Access other resources ava ...[truncated 527 chars]
- Remediation
View remediation
Remediation Suggestions
-
Replace
@latestwith a reviewed, explicit release version:yaml "module": "github.com/tylerwince/grizzly/cmd/grizzly@vX.Y.Z", -
For stronger immutability, pin the dependency to a reviewed commit-derived Go pseudo-version.
-
Verify the selected module version through the Go checksum database and retain the expected module version and checksum in release documentation or a controlled build manifest.
-
Review upstream source changes before updating the pinned version. Dependency updates should be deliberate rather than automatically tracking the newest release.
-
Build and distribute the reviewed binary through a controlled release process where practical, with platform-specific cryptographic hashes that users can verify.
-
Continue passing the Bear credential by file reference rather than printing or embedding it, and restrict the token file to the minimum filesystem permissions supported by the environment.
-
