Back to skill

Security audit

authority-review

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly a coherent SEO authority-review helper, but it tells the agent to run an unbundled local validation script from an ambiguous skills root.

Install only if you trust the Groundcrew skills-root installation and can verify the `groundcrew-doctor.py` script it will execute. Prefer a version that bundles or pins that validator, documents its trusted path and hash, and fails closed if validation cannot be verified. Treat configured SEO/analytics connectors as normal but ensure they are read-only where possible and already under your control.

Vulnerability Patterns
  • Tool Hijacking and SpoofingModifies or replaces tools so legitimate-looking calls execute attacker logic
  • 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)

T07 · Tool Hijacking and Spoofing

Warning
Location
SKILL.md:9
Finding

Execution of an Unverified Out-of-Package Validation Tool

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, line 9
Vulnerability Type: T07: Tool Hijacking and Spoofing
Risk Level: Medium

Vulnerable code snippet:

markdown
Read `references/provider-selection.md` before choosing a source. Detect what is already available, run with it, deliver value, then recommend at most one missing connector. All normalized factual inputs must satisfy the Groundcrew evidence contract (`evidence_type: authority`). Locate the active skills root and run `<skills-root>/.groundcrew/groundcrew-doctor.py --evidence <record.json>` before using them in a conclusion.

Technical Analysis

The skill directs the agent to discover an “active skills root” and execute groundcrew-doctor.py from that location. The executable is outside the audited package and is not present in the supplied project, so its provenance, integrity, and behavior cannot be verified from the reviewed files.

The location-selection instruction is also ambiguous: it does not prescribe a trusted, immutable installation path, ownership checks, cryptographic verification, or an approved executable identity. Consequently, a file with the expected path and name can appear legitimate while containing attacker-controlled logic. If the agent executes it without integrity validation or owner approval, the trust placed in the tool name and location becomes a local tool-spoofing opportunity.

The <record.json> argument may also refer to data controlled by a user or external source. Although no command-injection defect is established by the documentation alone, the validator must receive this value through a direct process argument rather than shell-string interpolation.

Attack Path

  1. An attacker gains write access to a directory that the agent may identify as the active skills root, or compromises an existing installation containing that root.
  2. The attacker creates or replaces .groundcrew/groundcrew-doctor.py with a ...[truncated 1162 chars]
Remediation
View remediation

Remediation Suggestions

  1. Bundle the validator in the reviewed skill package, or depend on a validator installed in a fixed, trusted, administrator-controlled location.
  2. Pin the validator to an approved version and verify a cryptographic signature or trusted SHA-256 digest before every execution.
  3. Resolve the executable with a canonical absolute path. Reject symlinks, unexpected ownership, group/world-writable files, and paths outside an explicit allowlist.
  4. Require explicit owner approval before executing an external validator that has not been reviewed with the skill.
  5. Execute the validator in a sandbox with the minimum required filesystem and network permissions. Do not expose unrelated secrets or connector credentials to the child process.
  6. Invoke the process using an argument array, such as passing --evidence and the record path as separate arguments. Do not construct or evaluate a shell command from user-controlled values.
  7. Validate that the evidence path resolves to an expected regular file within an approved workspace and use -- or an equivalent end-of-options safeguard where supported.
  8. Document the authoritative installation location, expected owner, version, hash, and failure behavior. If verification fails, stop without using the evidence in a conclusion.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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
Findings (1)

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

Scanner excerpt · references/connectors.md (reported line 48)May include surrounding context.

md
- **Tier 1.** Google Suggest for expansion (unofficial endpoint; treat as hints, `confidence: low`). A SERP the user pastes or fetches is an observation for that query, locale, device, and date — record all four.
- **DataForSEO.** Paid, per-request. Read `dataforseo.md`; show the cost preflight and get approval for each batch.
- **Ahrefs MCP** (`https://api.ahrefs.com/mcp/mcp`, API key on a plan that includes MCP) and **Semrush MCP** (`https://mcp.semrush.com/v1/mcp`, OAuth or API key). Use only when the user already pays for the tool and has configured the MCP in their client. Label rows `source: "ahrefs"` / `"semrush"`, `confidence` per the vendor's own accuracy notes; these are third-party estimates, not the user's own data.
- **TrustGrowth.** `keywords` (typed opportunities with volume, difficulty, intent, current position, scores) for the verified site. SERP snapshots per keyword are scheduled (TEC-7796).

### `~~link database` — backlinks and authority

Static analysis

No suspicious patterns detected.