T08 · Insecure Dependencies
- Location
SKILL.md:13- Finding
Unpinned Third-Party Package Installation
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:13andSKILL.md:64
Vulnerability Type: Supply-chain risk caused by unpinned dependency installation
Risk Level: MediumVulnerable Code
SKILL.md:13:yaml metadata: {"openclaw": {"emoji": "🏷️", "homepage": "https://github.com/NelsonScott/ebay-lister", "requires": {"bins": ["node"]}, "install": [{"kind": "node", "package": "playwright-core"}]}}SKILL.md:64:bash pip install pillow-heifTechnical Analysis
The Skill metadata requests installation of
playwright-corewithout specifying an exact version. The optional HEIC-processing workflow similarly instructs the Agent to install the latest availablepillow-heifpackage without a version constraint or package hash.Although the committed npm lockfile currently resolves
playwright-coreversion1.61.0from the official npm registry with SHA-512 integrity metadata, an installation performed directly from the Skill metadata may not necessarily enforce that lockfile. The Python installation has no corresponding lockfile or integrity requirement.Package installation can execute package-controlled installation logic and makes third-party code available within the Agent's process environment. Consequently, the effective installed code may differ from the version reviewed during this audit.
This is a supply-chain weakness rather than evidence that either named package is currently malicious.
Attack Path
- An attacker compromises an upstream package release, maintainer account, or package-distribution channel.
- A user installs the Skill through metadata that requests the unversioned
playwright-corepackage, or submits a HEIC image that causes the Agent to follow the documentedpip install pillow-heifinstruction. - The package manager resolves the currently published version rather than a specifically reviewed artifact.
- The compromised package is installed an ...[truncated 920 chars]
- Remediation
View remediation
Remediation Suggestions
-
Pin every dependency to an exact reviewed version:
yaml "install": [{"kind": "node", "package": "playwright-core@1.61.0"}] -
Replace the ad hoc Python installation instruction with a committed requirements file containing hashes:
text pillow-heif==REVIEWED_VERSION \ --hash=sha256:REVIEWED_DISTRIBUTION_HASH -
Install Python dependencies with hash enforcement:
bash python -m pip install --require-hashes -r requirements.txt -
Require installation through the committed npm lockfile, preferably using:
bash npm ci --ignore-scriptsIf lifecycle scripts are required, review them before removing
--ignore-scripts. -
Keep the version in
package.json, the lockfile, and Skill metadata synchronized. The audited files currently contain inconsistent project versions (1.1.0inpackage.jsonand1.0.0in the lockfile). -
Perform dependency vulnerability and provenance checks in CI, and review dependency updates before merging them.
-
