Back to skill

Security audit

string-utils

Security checks for vulnerabilities and agentic risk

Overview

This is a straightforward string utility skill with some input-validation bugs, but no hidden access, persistence, network behavior, or deceptive instructions.

Reasonable to install for local string formatting helpers, but avoid exposing its chunk or custom-trim functions directly to untrusted user input unless you add validation and error handling. Treat HTML escaping as a convenience helper, not a complete security sanitizer for complex web contexts.

Vulnerability Patterns
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (2)

T09 · Insecure Skill Coding Practices

Error
Location
index.js:292
Finding

Unvalidated chunk size causes an infinite loop and memory exhaustion

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
index.js:98
Finding

Unescaped input in dynamic regular expressions permits regex manipulation and exceptions

Content
View full analysis
Remediation
View remediation
start && removable.has(str[end - 1])) end--; return str.slice(start, end); } ``` Apply equivalent logic to `trimLeft` and `trimRight`. If dynamic regular expressions must be retained: - Escape all character-class metacharacters, including `\`, `]`, `-`, and `^`, before interpolation. - Do not rely solely on the existing `escapeRegex` helper because escaping requirements inside a character class differ from general regex escaping. - Place construction in controlled error handling so malformed input cannot terminate a request or worker. - Limit the accepted length of `chars`. - Add tests covering backslashes, brackets, hyphens, carets, Unicode input, and combinations of metacharacters. - Do not treat the output as security-grade sanitization without validating the final value against an explicit allowlist. ]]>
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • 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
Findings (2)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The manifest description says to use the skill whenever you need to 'transform, format, or manipulate strings,' which is a very broad activation condition for a markdown/manifest file. It does not provide narrower trigger boundaries, examples of when not to invoke it, or context constraints, increasing the chance of unintended invocation during ordinary text-related requests.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
87% confidence
Finding

The manifest description says the skill 'Provides string manipulation and transformation operations for working with text,' which is a very general capability statement rather than a specific trigger scope. In a manifest file, this broad phrasing can overlap with many common text-editing requests and does not clarify when the skill should or should not activate.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.