Back to skill

Security audit

structsd-install

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent installer guide, but it asks users or agents to run risky system-level install commands without enough verification or guardrails.

Review this skill before installing. Prefer user-local installs where possible, verify release artifacts and Go downloads with publisher-provided checksums or signatures, avoid the optional curl-to-bash Ignite command unless you inspect it first, and do not let an agent run the sudo rm -rf /usr/local/go steps without explicit approval and a backup or rollback plan.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (2)

T03 · Remote Payload Retrieval and Execution

Error
Location
SKILL.md:158
Finding

Unpinned Remote Script Piped Directly into Bash

Content
View full analysis
Remediation
View remediation

T08 · Insecure Dependencies

Error
Location
SKILL.md:31
Finding

Release Binary Installed Without Cryptographic Integrity Verification

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
Findings (20)

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
94% confidence
Finding

The command sudo rm -rf /usr/local/go is a destructive recursive deletion against a system directory and can break existing Go-dependent workflows or remove the wrong content if copied or adapted incorrectly. In an agent skill, such commands are more dangerous because they may be executed with reduced human scrutiny.

Content

Scanner excerpt · SKILL.md (reported line 67)May include surrounding context.

bash
GO_VER=1.23.6
wget https://go.dev/dl/go${GO_VER}.linux-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go${GO_VER}.linux-amd64.tar.gz
rm go${GO_VER}.linux-amd64.tar.gz

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
94% confidence
Finding

The command sudo rm -rf /usr/local/go is a destructive recursive deletion against a system directory and can break existing Go-dependent workflows or remove the wrong content if copied or adapted incorrectly. In an agent skill, such commands are more dangerous because they may be executed with reduced human scrutiny.

Content

Scanner excerpt · SKILL.md (reported line 67)May include surrounding context.

bash
GO_VER=1.23.6
wget https://go.dev/dl/go${GO_VER}.linux-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go${GO_VER}.linux-amd64.tar.gz
rm go${GO_VER}.linux-amd64.tar.gz

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
94% confidence
Finding

This is the same destructive recursive deletion pattern on macOS Apple Silicon. Although scoped to /usr/local/go, it still enables potentially harmful system modification and service disruption if executed automatically or without careful review.

Content

Scanner excerpt · SKILL.md (reported line 79)May include surrounding context.

bash
GO_VER=1.23.6
curl -OL https://go.dev/dl/go${GO_VER}.darwin-arm64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go${GO_VER}.darwin-arm64.tar.gz
rm go${GO_VER}.darwin-arm64.tar.gz

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
94% confidence
Finding

This is the same destructive recursive deletion pattern on macOS Apple Silicon. Although scoped to /usr/local/go, it still enables potentially harmful system modification and service disruption if executed automatically or without careful review.

Content

Scanner excerpt · SKILL.md (reported line 79)May include surrounding context.

bash
GO_VER=1.23.6
curl -OL https://go.dev/dl/go${GO_VER}.darwin-arm64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go${GO_VER}.darwin-arm64.tar.gz
rm go${GO_VER}.darwin-arm64.tar.gz

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
94% confidence
Finding

This Intel macOS variant also deletes /usr/local/go recursively before replacement. The skill context makes it somewhat less suspicious than overtly malicious payloads, but still dangerous because it normalizes destructive root-level changes in installation automation.

Content

Scanner excerpt · SKILL.md (reported line 89)May include surrounding context.

bash
GO_VER=1.23.6
curl -OL https://go.dev/dl/go${GO_VER}.darwin-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go${GO_VER}.darwin-amd64.tar.gz
rm go${GO_VER}.darwin-amd64.tar.gz

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
94% confidence
Finding

This Intel macOS variant also deletes /usr/local/go recursively before replacement. The skill context makes it somewhat less suspicious than overtly malicious payloads, but still dangerous because it normalizes destructive root-level changes in installation automation.

Content

Scanner excerpt · SKILL.md (reported line 89)May include surrounding context.

bash
GO_VER=1.23.6
curl -OL https://go.dev/dl/go${GO_VER}.darwin-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go${GO_VER}.darwin-amd64.tar.gz
rm go${GO_VER}.darwin-amd64.tar.gz

Missing User Warnings

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The skill presents a curl-piped-to-bash installer for Ignite without any integrity verification, pinning, or warning that it executes remote code directly in the shell. This is especially dangerous in an agent skill because it normalizes immediate execution of network-fetched content with full user privileges.

Content

No source excerpt is available for this finding.

Chaining Abuse

High
Category
Tool Misuse
Confidence
99% confidence
Finding

The command curl https://get.ignite.com/cli! | bash chains network retrieval directly into shell execution, creating a classic remote-code-execution supply-chain risk. In a skill designed for agents, this is particularly dangerous because it encourages immediate execution of unreviewed remote content with whatever privileges the session has.

Content

Scanner excerpt · SKILL.md (reported line 158)May include surrounding context.

bash
# One-time
curl https://get.ignite.com/cli! | bash
ignite version

# In the structsd repo:

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
84% confidence
Finding

The instruction uses sudo to install a downloaded binary into /usr/local/bin, which requires elevated privileges and modifies a system-wide executable path. While common for manual installation, this is risky in an agent skill because the binary comes from the network and the step lacks checksum or signature verification guidance.

Content

Scanner excerpt · SKILL.md (reported line 40)May include surrounding context.

"https://github.com/playstructs/structsd/releases/download/${VERSION}/structsd_$(echo ${VERSION#v})_darwin_arm64.tar.gz"

tar -xzf structsd.tar.gz sudo install -m 0755 structsd /usr/local/bin/structsd rm structsd.tar.gz structsd

text

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
91% confidence
Finding

This line uses sudo rm -rf on /usr/local/go, granting root privileges to a destructive filesystem operation. Even though the target is specific, privileged recursive deletion in a skill is hazardous because path mistakes or automation bugs can cause service disruption or broader system damage.

Content

Scanner excerpt · SKILL.md (reported line 67)May include surrounding context.

bash
GO_VER=1.23.6
wget https://go.dev/dl/go${GO_VER}.linux-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go${GO_VER}.linux-amd64.tar.gz
rm go${GO_VER}.linux-amd64.tar.gz

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The skill instructs users to remove and replace a system-wide Go installation under /usr/local using privileged commands, but it does not clearly warn that these steps are destructive and may overwrite an existing working toolchain. In an agent-executed context, omission of an explicit confirmation or backup step increases the chance of unintended system modification and disruption.

Content

No source excerpt is available for this finding.

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
81% confidence
Finding

The skill instructs sudo tar extraction into /usr/local, a privileged system location, which modifies the host environment with root permissions. In isolation this is standard admin behavior, but in a skill context it increases the blast radius of any compromised or incorrect archive.

Content

Scanner excerpt · SKILL.md (reported line 68)May include surrounding context.

GO_VER=1.23.6 wget https://go.dev/dl/go${GO_VER}.linux-amd64.tar.gz sudo rm -rf /usr/local/go sudo tar -C /usr/local -xzf go${GO_VER}.linux-amd64.tar.gz rm go${GO_VER}.linux-amd64.tar.gz

text

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
70% confidence
Finding

Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Content

Scanner excerpt · SKILL.md (reported line 72)May include surrounding context.

rm go${GO_VER}.linux-amd64.tar.gz

text

If an older Go was installed via apt, remove it first: `sudo apt remove -y golang-go`

#### macOS (Apple Silicon)

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
91% confidence
Finding

This line again uses sudo rm -rf on /usr/local/go, here for macOS Apple Silicon, with the same privileged destructive behavior. In an agent skill, repeated use of root-level recursive deletion without guardrails materially increases operational risk.

Content

Scanner excerpt · SKILL.md (reported line 79)May include surrounding context.

bash
GO_VER=1.23.6
curl -OL https://go.dev/dl/go${GO_VER}.darwin-arm64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go${GO_VER}.darwin-arm64.tar.gz
rm go${GO_VER}.darwin-arm64.tar.gz

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
81% confidence
Finding

The command extracts a downloaded archive into /usr/local using sudo, making a network-sourced package installation a privileged system change. If the archive is tampered with or the URL is wrong, the result is root-level compromise or system instability.

Content

Scanner excerpt · SKILL.md (reported line 80)May include surrounding context.

GO_VER=1.23.6 curl -OL https://go.dev/dl/go${GO_VER}.darwin-arm64.tar.gz sudo rm -rf /usr/local/go sudo tar -C /usr/local -xzf go${GO_VER}.darwin-arm64.tar.gz rm go${GO_VER}.darwin-arm64.tar.gz

text

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
91% confidence
Finding

This is the Intel macOS variant of the same privileged recursive deletion of /usr/local/go. The operation is potentially disruptive and dangerous in an automated or semi-automated agent environment because it removes an existing system component with root access.

Content

Scanner excerpt · SKILL.md (reported line 89)May include surrounding context.

bash
GO_VER=1.23.6
curl -OL https://go.dev/dl/go${GO_VER}.darwin-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go${GO_VER}.darwin-amd64.tar.gz
rm go${GO_VER}.darwin-amd64.tar.gz

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
81% confidence
Finding

This root-level tar extraction into /usr/local performs a system-wide install of a downloaded archive. The context is ordinary software setup, but absent integrity verification and approval gates it remains a meaningful security risk.

Content

Scanner excerpt · SKILL.md (reported line 90)May include surrounding context.

GO_VER=1.23.6 curl -OL https://go.dev/dl/go${GO_VER}.darwin-amd64.tar.gz sudo rm -rf /usr/local/go sudo tar -C /usr/local -xzf go${GO_VER}.darwin-amd64.tar.gz rm go${GO_VER}.darwin-amd64.tar.gz

text

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
70% confidence
Finding

Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Content

Scanner excerpt · SKILL.md (reported line 194)May include surrounding context.

md
- **`ERROR: Go version 1.23+ is required`** from `make install` — Your Go is too old. Re-install per step 1 above; the Makefile's `check_version` target enforces this hard.
- **Build fails on `go mod tidy`** — Network access is required for the first build. Retry once you have connectivity, or set `GOPROXY=direct` if you are behind a restrictive proxy.
- **Permission denied on `/usr/local`** — Use `sudo` for the tar extraction or for `install -m 0755`. On shared systems, ask your administrator. Path B does not require root because it installs to `~/go/bin`.
- **`gcc not installed for ledger support`** — Either install `gcc` (`sudo apt install build-essential` / `xcode-select --install`) or build with `LEDGER_ENABLED=false make install`.

## See Also

External Script Fetching

Low
Category
Supply Chain
Confidence
15% confidence
Finding

Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.

Content

Scanner excerpt · SKILL.md (reported line 32)May include surrounding context.

md
VERSION=v0.19.1

# Linux amd64
curl -L -o structsd.tar.gz \
  "https://github.com/playstructs/structsd/releases/download/${VERSION}/structsd_$(echo ${VERSION#v})_linux_amd64.tar.gz"

# macOS Apple Silicon

External Script Fetching

Low
Category
Supply Chain
Confidence
15% confidence
Finding

Remote code is downloaded and executed. This bypasses code review and could introduce malicious code.

Content

Scanner excerpt · SKILL.md (reported line 66)May include surrounding context.

bash
GO_VER=1.23.6
wget https://go.dev/dl/go${GO_VER}.linux-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go${GO_VER}.linux-amd64.tar.gz
rm go${GO_VER}.linux-amd64.tar.gz