Back to skill

Security audit

SEO Content Factory

Security checks for vulnerabilities and agentic risk

Overview

This SEO writing skill is mostly coherent, but it asks for unnecessary shell access and encourages publish-ready content with unsupported experience claims and weak sourcing.

Review this skill before installing. It can be useful for SEO drafts, but you should remove Bash from allowed tools, require explicit citations for statistics, forbid first-person testing or experience claims unless you provide the evidence, and use batch mode only in a controlled output directory where overwrites are acceptable.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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 (2)

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
SKILL.md:5
Finding
Unnecessary Bash Permission Violates Least Privilege<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:5` **Vulnerability Type**: Excessive tool permission **Risk Level**: Medium ### Vulnerable Code ```yaml allowed-tools: Read, Write, Grep, Glob, Bash, WebFetch, WebSearch ``` ### Technical Analysis The skill grants access to the general-purpose `Bash` tool even though its documented SEO workflow does not identify any operation that requires shell command execution. Web research can be performed with `WebFetch` and `WebSearch`, keyword files can be processed with `Read`, and generated articles can be stored with `Write`. A general-purpose shell substantially expands the skill's authority. If untrusted keyword-file content, search results, or fetched pages influence agent behavior through prompt injection, the unnecessary shell capability could turn an instruction-level compromise into command execution. The permission declaration does not itself execute a command, and successful exploitation remains dependent on the host agent accepting malicious instructions and allowing the Bash invocation. Nevertheless, exposing a command-execution channel without a documented operational need violates least-privilege principles. ### Attack Path 1. An attacker places prompt-injection instructions in a webpage likely to appear in the SEO research results or in a user-supplied batch keyword file. 2. The skill reads or fetches the attacker-controlled content as part of its documented workflow. 3. The malicious content instructs the agent to disregard the SEO task and invoke `Bash`. 4. Because `Bash` is included in `allowed-tools`, the agent may attempt to run attacker-selected shell commands. 5. If the runtime does not provide an additional approval or sandbox boundary, those commands execute with the operating-system privileges and filesystem access of the agent process. ### Impact Assessment Potential impact includes reading or modifying files accessible to the agent process, executing local programs, al ...[truncated 423 chars]
Remediation
<![CDATA[ ## Remediation Suggestions - Remove `Bash` from `allowed-tools` because no documented phase requires shell execution. - Retain only the minimum required capabilities, such as `Read`, `Write`, `WebFetch`, and `WebSearch`. - Restrict reads to the explicitly supplied keyword file and project-owned resources. - Restrict writes to a dedicated directory such as `output/`, rejecting path traversal and absolute paths. - Treat search results, fetched pages, and keyword files as untrusted data rather than executable instructions. - If shell access later becomes necessary, replace unrestricted Bash access with a narrowly scoped operation using fixed commands, validated arguments, an isolated working directory, and explicit user approval. - Run the skill in a sandbox with limited filesystem permissions, network egress controls, resource limits, and no access to credentials. ]]>

other

Warning
Location
SKILL.md:96
Finding
Instructions Encourage Fabricated Experience and Unsupported Statistics<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:96-99` **Vulnerability Type**: Content integrity manipulation **Risk Level**: Medium ### Vulnerable Code ```markdown **E-E-A-T Signals** (Experience, Expertise, Authoritativeness, Trustworthiness): - Include first-person experience markers ("In my experience...", "When I tested...") - Reference specific tools, processes, or methodologies by name - Cite statistics with implied sources - Provide nuanced opinions, not just generic advice ``` ### Technical Analysis The instructions require first-person experience markers without requiring evidence that the author or agent performed the claimed testing. They also direct the agent to use statistics with only “implied sources,” rather than requiring explicit and verifiable citations. These requirements can cause generated content to represent synthetic statements as genuine personal experience and to present unsupported numerical claims as authoritative facts. The issue affects provenance and content integrity rather than operating-system security. The behavior is especially concerning because it is framed as an E-E-A-T trust signal. The generated claims may therefore be intentionally positioned to increase reader confidence despite lacking documented evidence. ### Attack Path 1. A user requests an SEO article about a product, process, or industry. 2. The skill applies the mandatory E-E-A-T instructions during content generation. 3. In the absence of user-provided testing records, the agent generates statements such as “When I tested...” or “In my experience...”. 4. The agent introduces numerical claims while identifying sources only implicitly or not at all. 5. The article is emitted as publish-ready Markdown and WordPress HTML. 6. A publisher posts the content without independently verifying the claimed experience or statistics, causing readers and search systems to receive unsupported claims as authoritative content. ### Impact Assessment Th ...[truncated 458 chars]
Remediation
<![CDATA[ ## Remediation Suggestions - Replace the first-person requirement with a provenance rule: first-person testing or experience claims may be used only when the user provides verifiable notes, measurements, or source material. - Require the agent to distinguish clearly between documented experience, sourced third-party findings, and general analysis. - Prohibit invented testing, ownership, usage, interviews, credentials, and personal observations. - Replace “implied sources” with a requirement for an explicit source name, publication date, title, and URL for each statistic. - Instruct the agent to omit a statistic when it cannot locate and verify the original or an authoritative source. - Require qualification of uncertain or time-sensitive claims and include the applicable date. - Add a prepublication quality check confirming that every first-person claim is supported and every quantitative claim has a traceable citation. ]]>
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • 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 (2)

Natural-Language Policy Violations

High
Confidence
99% confidence
Finding
The skill explicitly tells the model to include first-person experience markers and to cite statistics with implied sources, which encourages fabricated expertise and unverifiable claims. In an SEO content generation context, this is especially dangerous because it systematizes deceptive content production at scale, creating legal, reputational, and misinformation risk for users and their audiences.

Missing User Warnings

Low
Confidence
94% confidence
Finding
The skill instructs the agent to write multiple files in batch mode (`output/[url-slug].md`, `.html`, and a summary) without an explicit warning, confirmation step, or clear constraint on where writes may occur. This can surprise users and cause unintended filesystem modification, especially because batch mode amplifies the number of writes from a single invocation.

Static analysis

No suspicious patterns detected.