Back to skill

Security audit

SEO Optimizer

Security checks for vulnerabilities and agentic risk

Overview

The skill is a straightforward local SEO helper; the main issues are low-risk robustness and installation hygiene rather than hidden or harmful behavior.

Install in a virtual environment and avoid running unnecessary unpinned dependency installs. Treat keyword input as local analyzer input, and be aware that unusual regex-like keywords may cause the analyzer to fail until the script escapes them properly.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
Findings (2)

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/seo_analyzer.py:177
Finding

User-Controlled Regular Expression Injection in Keyword Analysis

Content
View full analysis
]*>.*?' + keyword_lower, content_lower, re.I)) ``` ### Technical Analysis The `target_keyword` value is converted to lowercase and concatenated directly into a regular-expression pattern. Because the value is not escaped with `re.escape()`, an attacker can supply regular-expression metacharacters that alter the intended pattern. An invalid expression, such as an unmatched `(`, causes `re.search()` to raise an unhandled `re.error`, terminating the analyzer. More complex expressions can introduce expensive backtracking when evaluated against sufficiently large content, potentially consuming excessive CPU time. The vulnerable value is accepted through the `--keyword` command-line argument and reaches `re.search()` without validation, escaping, or an input-size restriction. ### Attack Path 1. An attacker or untrusted caller supplies a crafted value through `--keyword`. 2. `main()` passes the value to `analyze_content()`, which passes it to `analyze_keywords()`. 3. `analyze_keywords()` stores the lowercase form in `keyword_lower`. 4. The attacker-controlled value is concatenated into the heading-search regular expression. 5. An invalid pattern causes an unhandled exception, while a pathological pattern may cause excessive CPU consumption when applied to large content. 6. The analyzer becomes unavailable or fails to return a result. ### Impact Assessment Successful exploitation does not grant filesystem, network, or operating-system privileges. Its scope is process availability: - Immediate analyzer termination through malformed regular-expression syntax. - Potential CPU exhaustion through pathological backtracking. - Repeated failures in any service or automation pipeline that invokes this script with ...[truncated 168 chars]
Remediation
View remediation
]*>.*?' + escaped_keyword has_in_heading = bool(re.search(pattern, content_lower, re.I)) ``` Additional hardening should include: 1. Limit the maximum accepted length of both content and keyword inputs. 2. Catch `re.error` at the analysis boundary and return a controlled validation error. 3. Consider parsing HTML with a dedicated parser rather than regular expressions. 4. Add regression tests using malformed values such as `(`, `[`, `.*`, and nested repetition patterns. 5. If exposed through a service, apply request-size limits, execution timeouts, and per-client rate limits. ]]>

T08 · Insecure Dependencies

Note
Location
SKILL.md:67
Finding

Unpinned and Unused Third-Party Dependency Installation

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (2)

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill advertises meta <url> analysis, which implies making network requests to retrieve webpage content, but the markdown provides no user-facing warning about contacting external sites or transmitting the supplied URL. For markdown files, behaviors that may affect privacy or system/network activity should be disclosed to the user.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
77% confidence
Finding

This markdown file lists short invocation forms like keyword, meta, analyze, and suggest, but provides no constraints, negative examples, or activation boundaries. In a skill-routing context, such generic verbs can overlap with common user intents and make it unclear when this skill should be selected versus other analysis or suggestion skills.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.