Back to skill

Security audit

SEO Autopilot Pro

Security checks for vulnerabilities and agentic risk

Overview

The skill is a disclosed SEO automation workflow, but it automatically edits, commits, pushes to main, and can trigger production deployment from newly created report files without a clear review gate.

Install only if you intentionally want unattended SEO publishing and can isolate it. Use a dedicated branch or clone, disable direct push to main, require diff review before commit/push/deploy, stage only an explicit allowlist of generated files, and treat incoming report Markdown as untrusted data.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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 (2)

T01 · Skill Instruction Hijacking

Error
Location
SKILL.md:61
Finding

Untrusted Markdown Reports Can Hijack the Autonomous Agent Workflow

Content
View full analysis
deduplicate -> decide page types -> generate pages (max 3) -> register navigation + sitemap -> SEO audit -> git commit and push -> update processed.json." } } ``` ``` The corresponding processing template directs the Agent to discover and parse all new Markdown reports: ```markdown ### Phase 0: Discover New Reports 1. Read processed.json for already-handled reports 2. Scan report directory for new .md files 3. If none found, stop ### Phase 1: Parse Report Extract from each new report: - Top keywords with priority - Search intent (transactional / informational) - Competition score - Recommended page type and URL slug ``` ### Technical Analysis New Markdown files in the configured report directory automatically trigger an Agent task. The report is treated as Agent-readable content, but the workflow does not establish a trust boundary between report data and executable natural-language instructions. There are no requirements to: - Treat report text strictly as untrusted data. - Ignore commands or behavioral instructions embedded in a report. - Parse reports through a deterministic schema. - Validate extracted fields against an allowlist. - Restrict the Agent to approved output paths. - Require human confirmation before repository modifications or Git operations. Consequently, a contributor or compromised ...[truncated 2075 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
references/steering-template.md:54
Finding

Broad Staging and Direct Push to the Primary Branch Can Deploy Unreviewed Changes

Content
View full analysis
Remediation
View remediation
`. - Reject sensitive paths, dotfiles, CI configuration, dependency manifests, executable scripts, and files outside the configured SEO directories unless explicitly approved. 2. **Validate the working tree** - Require a clean working tree before processing begins. - Abort if unrelated tracked or untracked changes are present. - Compare the final diff against the generated-file manifest. 3. **Use a dedicated branch** - Create a uniquely named automation branch for each report. - Push that branch instead of `main`. - Open a pull request containing the source report, generated pages, validation results, and diff summary. 4. **Enforce review and protected branches** - Protect the primary branch against direct pushes. - Require human approval, status checks, and successful CI before merge. - Use a dedicated automation identity with permission limited to creating branches and pull requests. 5. **Add mandatory security and quality gates** - Run framework builds, type checking, linting, link validation, and tests. - Run secret scanning and reject generated executable code or unexpected external resources. - Validate generated slugs, URLs, metadata, JSON-LD, and HTML output. 6. **Fix transaction ordering** - Update and validate `processed.json` before creating the automation commit so state and generated output are committed atomically. - Roll back generated changes if validation, commit, or push fails. 7. **Require explicit deployment approval** - Prevent report-triggered runs from initiating production deployment automatically. - Deploy only after the pull request has been reviewed and merged through protected controls. ]]>
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (14)

Hidden Instructions

High
Category
Prompt Injection
Confidence
60% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/setup-checklist.md (reported line 1)May include surrounding context.

md
# Steering Template — SEO Autopilot

> 复制此文件到你的项目 `.kiro/steering/seo-autopilot.md`,替换 `{placeholder}` 为实际值。

Hidden Instructions

High
Category
Prompt Injection
Confidence
60% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · references/steering-template.md (reported line 1)May include surrounding context.

md
# Steering Template — SEO Autopilot

> 复制此文件到你的项目 `.kiro/steering/seo-autopilot.md`,替换 `{placeholder}` 为实际值。

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The top-level description promotes a fully automated workflow but does not prominently disclose that generated changes will be committed, pushed, and can trigger production deployment. In this context, omission is dangerous because users may invoke the skill expecting content generation only, while it actually performs repository-changing and production-affecting actions.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
93% confidence
Finding

The documented behavior includes autonomous decision-making and autonomous Git push leading to deployment, with no human review step. In the skill context, this is dangerous because untrusted or low-quality report input can be converted directly into production code and content changes.

Content

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

md
4. Decides page type (landing page vs blog post)
5. Generates page code matching your project style
6. Runs SEO audit (Technical + EEAT checks)
7. Pushes to git (triggers auto-deploy)

## Automation Flow

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
95% confidence
Finding

The automation flow describes a closed loop where IDE auto-fetch plus fileCreated hooks cause the agent to run and then push to production automatically. This greatly increases danger because external repository events can cascade into local execution and production deployment without an interactive checkpoint.

Content

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

-> IDE auto-fetches every 2 min -> fileCreated hook triggers Agent -> Agent runs 8-phase pipeline -> git push -> auto-deploy to production

text

## Setup (Agent Runs This)

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The skill explicitly instructs enabling automatic Git fetch/pull behavior while elsewhere claiming it only creates new pages and never overwrites existing content. Automatic pull/merge can modify local files, introduce remote changes into the workspace, and trigger follow-on automation, so the documentation materially understates the write impact of the setup.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The setup directs modification of local IDE Git settings to enable automatic fetch and pull behavior without a clear warning about the consequences. These settings can change repository state outside normal review flow, increase exposure to unreviewed remote changes, and interact dangerously with the file-triggered pipeline.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The hook is configured so that merely creating a matching report file automatically triggers parsing, page generation, registration, Git commit, and push. Without an explicit warning and approval gate, any new file in the watched directory can cause code changes and production deployment, which is especially risky because the file source is described as an external agent.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
85% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

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

md
| Git repo (GitHub/GitLab/Bitbucket) | Yes |
| External keyword report source | Yes |
| Web framework (Next.js/Astro/Nuxt/static) | Yes |
| Auto-deploy (Vercel/Cloudflare/Netlify) | Yes |
| IDE stays open (Kiro/Claude Code/Cursor) | Yes |

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The template directs the workflow to modify navigation, sitemap, blog/state files, and processed tracking data, but it does not include any warning, confirmation gate, or dry-run mode before altering project files. In a fully automated SEO pipeline, this can cause silent repository mutations, accidental overwrites, and persistence of incorrect state that affects future runs.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The template explicitly instructs the agent to run git add, git commit, and git push origin main, which are state-changing operations that can publish repository changes to a remote branch without an explicit approval checkpoint. In the context of an automation skill that generates content and edits multiple files, this increases the risk of unintended code/content publication, branch contamination, and propagation of low-quality or unsafe changes.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
79% confidence
Finding

The 'What It Does' section says the skill 'handles everything else' once reports are pushed, suggesting a self-contained automated flow. Yet the later setup requires manual changes to .vscode/settings.json, hook creation, steering file creation, and state initialization, so the documentation overstates hands-off behavior relative to what the skill actually requires.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

The document content is written in Chinese throughout, starting with the checklist description and continuing across headings and instructions. For a general setup checklist, this imposes a specific language without any user opt-in or stated region-specific justification, which matches the language/locale policy violation category.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
81% confidence
Finding

Line 3 presents the usage instruction only in Chinese, and the placeholder reference descriptions later in the file are also Chinese-only. This imposes a language choice without opt-in or justification, which can violate language/locale policy expectations.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.