Back to skill

Security audit

AI建站SEO优化助手

Security checks for vulnerabilities and agentic risk

Overview

This appears to be a real SEO audit skill, but it needs review because it can crawl arbitrary URLs and includes guidance to bypass normal CMS write controls.

Install only if you trust the publisher and will use it against public sites you own or are authorized to audit. Do not provide CMS Bearer tokens unless you intend to let the agent make site changes, and review every proposed write carefully. Avoid running the crawler from a network that can reach sensitive internal services until URL validation and redirect controls are fixed. Treat the YunZhi registration link as optional promotional material, not a prerequisite for local auditing.

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 (3)

T01 · Skill Instruction Hijacking

Warning
Location
SKILL.md:19
Finding

Mandatory Commercial Promotion Alters Agent Output

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
scripts/seo_audit.py:675
Finding

Unrestricted URL Fetching Enables Server-Side Request Forgery

Content
View full analysis
(.*?)", body, re.S) meta["sitemap_urls"].extend([x.strip() for x in locs]) except Exception: pass return meta def crawl(start_url, max_pages=50, max_depth=3, de ...[truncated 3701 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/seo_audit.py:689
Finding

Crawler Fetches Pages Before Enforcing robots.txt Rules

Content
View full analysis
max_depth: continue visited.add(norm) status, headers, html, final = fetch_url(url) if status != 200 or not is_html(headers, html): pages.append({"url": url, "status": status, "error": "non-200/non-html"}) continue p = analyze_html(html, final) p["status"] = status p["x_robots"] = (headers.get("X-Robots-Tag") or headers.get("x-robots-tag") or "").lower() if rp is not None: try: p["robots_allowed"] = rp.can_fetch(UA, final) except Exception: p["robots_allowed"] = True else: p["robots_allowed"] = True ``` ### Technical Analysis The skill documentation states that the crawler obeys `robots.txt`, ...[truncated 1719 chars]
Remediation
View remediation
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (8)

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
97% confidence
Finding

Introducing direct backend write capability expands the skill beyond its declared CMS/MCP writeback model and weakens the trust assumptions operators make about its scope. In practice, this creates a path to perform writes outside the constrained toolset, potentially bypassing confirmation, validation, logging, or allowlisted operations enforced by the MCP interface.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The document explicitly allows bypassing host-side schema validation by directly calling backend APIs when the wrapper blocks write tools. That undermines the stated MCP-only control boundary, defeats validation and policy enforcement in the host layer, and can enable unauthorized or less-audited write operations with privileged credentials.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
93% confidence
Finding

The skill clearly describes capabilities that involve network access, local file creation/reading, and potentially write actions via scripts and CMS/MCP writeback, but it does not declare an explicit tool scope such as permissions or allowed-tools. That mismatch weakens policy enforcement and reviewability, increasing the chance an agent invokes broader tools than intended during crawling, report generation, or writeback flows.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The activation guidance includes broad language like using the skill for 'any' task needing SEO diagnosis, optimization landing, or rescoring, which can cause over-triggering beyond narrowly intended scenarios. Overbroad routing can lead the agent to perform unnecessary crawling, analysis, or even modification-oriented workflows in contexts where a simpler, safer response would suffice.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

For an SEO assistant, a backend bypass is not necessary to achieve the stated purpose of analysis plus controlled SEO edits, making the capability unjustified and risky. Even if intended as an operational workaround, it normalizes evasion of safety checks and increases the chance of accidental or excessive modifications to CMS content or configuration.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

The heading is entirely in Chinese and presents the tool reference in a single language with no indication that other languages are supported. Under the language/locale policy rule, forcing one language without user opt-in can be a natural-language policy concern.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

This markdown file is natural-language documentation, and all user-facing content is presented exclusively in Chinese. Under the policy, forcing a specific language without user opt-in can be a locale/language policy violation when no alternative or justification is provided.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
92% confidence
Finding

This file’s natural-language comments are entirely in Chinese, and there is no indication that the skill supports other languages or that the locale restriction is intentional and justified. Under the policy, forcing a specific language without user opt-in can be a natural-language policy violation.

Content

No source excerpt is available for this finding.