Back to skill

Security audit

blogwatcher

Security checks for vulnerabilities and agentic risk

Overview

This skill is a simple wrapper for installing and using a blog/RSS watcher CLI, with one supply-chain caution because it installs the latest upstream version rather than a pinned release.

Before installing, consider that the CLI is fetched from an external Go module at its latest version, so future upstream changes will affect what gets installed. Prefer reviewing or pinning the upstream blogwatcher version if you need stronger reproducibility.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:14
Finding
Unpinned Third-Party CLI Dependency## Vulnerability Details **File Location**: `SKILL.md`, lines 14–17 and line 31 **Vulnerability Type**: Supply-chain risk caused by a mutable dependency reference **Risk Level**: Medium **Vulnerable code snippets**: ```yaml { "id": "go", "kind": "go", "module": "github.com/Hyaxia/blogwatcher/cmd/blogwatcher@latest", "bins": ["blogwatcher"], "label": "Install blogwatcher (go)", }, ``` ```markdown - Go: `go install github.com/Hyaxia/blogwatcher/cmd/blogwatcher@latest` ``` ### Technical Analysis The skill configuration and installation documentation instruct users to install a third-party Go CLI using the mutable `@latest` version selector. This means the installed source code is determined at installation time rather than being fixed to the version reviewed when the skill was published. Consequently, future upstream releases can silently change the effective code executed by users. The skill does not specify an audited version or commit and does not document checksum, signature, or provenance verification. A compromise of the upstream repository, release process, module distribution infrastructure, or maintainer account could therefore turn the installation step into an arbitrary-code execution channel. The audited project contains only `SKILL.md`; it does not include the third-party CLI's implementation. The behavior of the remotely obtained executable could not be verified as part of this audit. ### Attack Path 1. An attacker compromises the upstream repository, a maintainer account, or another relevant part of the dependency publication chain. 2. The attacker publishes malicious source code under a version selected by `@latest`. 3. A user or automated skill installer follows the declared installation configuration or documented `go install` command. 4. Go downloads and compiles the attacker-controlled dependency. 5. The resulting `blogwatcher` binary is installed in the user's Go binary dire ...[truncated 777 chars]
Remediation
## Remediation Suggestions 1. Replace `@latest` with a specific, reviewed semantic version or immutable commit identifier in both the metadata and installation instructions. 2. Establish a controlled dependency-update process that reviews upstream source changes before advancing the pinned version. 3. Verify available module checksums through Go's checksum infrastructure and document any required trusted checksum-database policy. 4. Where supported, verify signed releases, build provenance, and maintainer identity before accepting updates. 5. Consider distributing a reproducibly built artifact with published cryptographic hashes and require hash verification before execution. 6. Keep the metadata and human-readable installation command synchronized so neither path falls back to a mutable version selector.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep

Static analysis

No suspicious patterns detected.