Back to skill

Security audit

Blogwatcher

Security checks for vulnerabilities and agentic risk

Overview

This skill is a simple wrapper for a blog/RSS monitoring CLI, with a disclosed but unpinned third-party Go install users should review.

Before installing, consider pinning the Go module to a specific reviewed version or checking the upstream repository yourself. The skill does not show hidden behavior, but the CLI installed through @latest will run with your user account's normal permissions.

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:5
Finding
Unpinned Third-Party CLI Installation## Vulnerability Details **File Location**: `SKILL.md`, line 5; repeated at line 13 **Vulnerability Type**: Unpinned executable dependency **Risk Level**: Medium **Vulnerable code snippet:** ```yaml metadata: {"clawdbot":{"emoji":"📰","requires":{"bins":["blogwatcher"]},"install":[{"id":"go","kind":"go","module":"github.com/Hyaxia/blogwatcher/cmd/blogwatcher@latest","bins":["blogwatcher"],"label":"Install blogwatcher (go)"}]}} ``` The same unsafe installation target is presented to users at line 13: ```markdown - Go: `go install github.com/Hyaxia/blogwatcher/cmd/blogwatcher@latest` ``` ### Technical Analysis The Skill installs the executable `blogwatcher` CLI from a third-party GitHub-hosted Go module using the mutable `@latest` version selector. The downloaded source code is not included in this artifact, and `@latest` may resolve to a different release after the Skill has been reviewed. This prevents reproducible security verification and creates a supply-chain trust boundary between the audited Skill and the upstream repository. The repository path is consistent with the homepage declared by the Skill, so there is no evidence of typosquatting, dependency confusion, or currently malicious upstream code. The risk arises from installing future, unreviewed executable content. ### Attack Path 1. An attacker compromises the upstream repository, its release process, or a maintainer account, or publishes a malicious future release. 2. The mutable `@latest` selector resolves to the attacker-controlled release during installation. 3. The Go toolchain downloads and compiles the changed source code. 4. The resulting `blogwatcher` executable is installed into the user's Go binary directory. 5. When the agent or user invokes a documented command such as `blogwatcher scan`, the malicious code executes with the privileges of that user. ### Impact Assessment Successful exploitation could provide arbitrary code execution un ...[truncated 548 chars]
Remediation
## Remediation Suggestions 1. Replace `@latest` with a specific, security-reviewed semantic version, for example: ```yaml "module":"github.com/Hyaxia/blogwatcher/cmd/blogwatcher@vX.Y.Z" ``` 2. Record the approved version in both the installation metadata and the human-readable installation instructions so they cannot diverge. 3. Prefer an immutable reviewed commit when stronger reproducibility is required. 4. Verify downloaded module checksums through the Go checksum database or an organization-controlled trusted proxy. 5. Review source changes and release provenance before updating the pinned version. 6. Use an automated dependency-update process that opens reviewed changes rather than silently resolving the newest upstream release during installation. 7. Where supported, verify signed releases or attestations and build the executable in a restricted environment with minimal credentials and filesystem access.
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.