Back to skill

Security audit

standup

Security checks for vulnerabilities and agentic risk

Overview

This standup skill is mostly coherent, but it requires running an unbundled validator script from a discovered skills root, which needs review before installation.

Install only if you trust the Groundcrew skills root and can verify the referenced groundcrew-doctor.py script. Treat connected SEO and analytics providers as access to your site/business data, prefer read-only credentials, and confirm paid connectors before use.

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:7
Finding

Execution of an Unverified External Validation Script

Content
View full analysis

Vulnerability Details

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

Vulnerable Code

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. 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 mandates locating and executing groundcrew-doctor.py from an external “active skills root.” That executable is not included in the audited project. The instruction does not define a fixed trusted root, pin the script to a verified version or cryptographic digest, validate its signature, or require safe file ownership and permissions.

As a result, the code ultimately executed can differ from the content reviewed in this audit. If an attacker can create, replace, or redirect the discovered script—including through an attacker-controlled skills root or filesystem link—the legitimate-looking validation operation can invoke attacker-controlled Python code.

The project also references references/provider-selection.md, but that file is absent. This is an integrity and completeness issue in source-selection behavior, although it is not independently treated as an exploitable vulnerability here.

Attack Path

  1. An attacker gains write access to the active skills root, influences how that root is discovered, or redirects the expected path.
  2. The attacker creates or replaces .groundcrew/groundcrew-doctor.py with a malicious script.
  3. A user invokes the standup Skill with an evidence record.
  4. Following the mandatory instruction in SKILL.md, the Agent runs the substituted script.
  5. The malicious script executes with the operating-system permissions a ...[truncated 971 chars]
Remediation
View remediation

Remediation Suggestions

  1. Bundle the validator inside the reviewed Skill package and resolve it relative to a fixed, canonical package directory.
  2. If external distribution is unavoidable, pin the validator to an approved version and verify a cryptographic hash or trusted digital signature before every execution.
  3. Canonicalize the path and reject symbolic links, unexpected ownership, group/world-writable files, and roots outside an explicit allowlist.
  4. Execute the validator with least privilege in a sandbox that restricts filesystem access, subprocess creation, environment-variable access, and outbound networking.
  5. Pass evidence through a constrained interface rather than granting broad directory access, and avoid exposing connector secrets to the validator process.
  6. Fail closed when the validator is absent or fails integrity checks; do not discover and run an alternative executable automatically.
  7. Add the missing references/provider-selection.md file or remove the requirement to read it so source-selection behavior is complete and reviewable.
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.