T08 · Insecure Dependencies
- Location
SKILL.md:96- Finding
Unpinned Third-Party Package Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:96andSKILL.md:105
Vulnerability Type: Supply-chain exposure through unpinned dependencies
Risk Level: MediumVulnerable Code
bash # Install the Rust core cargo install surrealfsbash # Install the Python agent pip install surrealfs-aiTechnical Analysis
The documented installation commands retrieve mutable package versions without specifying an exact version, package hash, lockfile, signature, or other artifact verification mechanism. Although the metadata references an upstream commit, the installation commands do not bind the installed packages to that commit.
Consequently, the code installed by a user can differ from the version that was reviewed. A compromised package publisher, registry account, release artifact, or transitive dependency could introduce attacker-controlled code. Package installation or subsequent package execution may then run that code with the privileges of the user following the instructions.
The repository contains only
SKILL.md; therefore, no dependency manifests or integrity controls elsewhere in the project were available to mitigate this exposure.Attack Path
- An attacker compromises the
surrealfsorsurrealfs-aipublishing account, package registry entry, release process, or a resolved transitive dependency. - The attacker publishes a malicious package version that becomes the version selected by an unpinned installation.
- A user follows the Quick Start instructions and runs
cargo install surrealfsorpip install surrealfs-ai. - The package manager downloads the attacker-controlled release.
- Malicious code executes during installation, import, startup, or normal package operation.
Impact Assessment
Exploitation could provide code execution with the privileges of the installing or executing user. Depending on the environment, this may expose local files, environ ...[truncated 226 chars]
- An attacker compromises the
- Remediation
View remediation
Remediation Suggestions
- Pin both packages to exact, reviewed versions in every installation example.
- Use Rust lockfiles and Python hash-locked dependency files where applicable.
- Require package hashes or verified signatures for release artifacts.
- Document the expected package registry and verify package ownership and provenance.
- Bind documented package releases to the reviewed upstream commit.
- Use isolated virtual environments or containers and avoid installing packages with administrative privileges.
- Add a controlled dependency-update process that reviews changes before updating pins.
