Back to skill

Security audit

Deep Digest

Security checks for vulnerabilities and agentic risk

Overview

The skill is a text-digest tool with no persistence or network behavior, but it mishandles sensitive user text by placing raw input into emitted workflow prompts despite claiming redaction.

Review this skill before installing if you plan to process private notes, chats, credentials, or personal data. As written, it does not implement its promised sensitive-content redaction and may place raw input into outputs or logs; use only with non-sensitive text until redaction and runtime handling are fixed.

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

Warning
Location
main.py:76
Finding

Untrusted Input Is Embedded Directly into LLM Instruction Prompts

Content
View full analysis
2000 else ""} ``` ``` ### Technical Analysis The skill inserts arbitrary source text directly into an instruction-bearing prompt using an f-string. The content is surrounded only by Markdown fences, which do not establish a security boundary for an LLM. An attacker can include another fence or instruction-like content in the source document and attempt to make the downstream model treat it as a higher-priority task. The same trust-boundary failure occurs in the evaluator prompt. Both `generator_output` and `original_text` are inserted without escaping or structural separation. Consequently, an attacker-controlled generator response or original document can attempt to influence the evaluator, force a passing score, suppress reported issues, or alter the expected JSON response. The reviewed code emits a workflow rather than directly invoking an LLM. Exploitation therefore depends on the surrounding OpenClaw runtime or another consumer subsequently executing the generated prompts. There is no evidence in the reviewed project that this issue grants operating-system command execution. ### Attack Path 1. An attacker supplies a document containing crafted prompt instructions, for example content that closes the Markdown fence and directs the model to ignore the digest task. 2. `build_generator_prompt()` inserts the content verbatim into the generated prompt. 3. The skill prints that prompt as part of the w ...[truncated 1075 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
main.py:200
Finding

Sensitive Input Is Reproduced in Workflow Output Without Contractually Required Redaction

Content
View full analysis
= {veto_threshold}: accept; else: retry (max {max_retries} times)", "description": "veto 决策" } ] output["veto_config"] = { "threshold": veto_threshold, "max_retries": max_retries, "reference": "Spotify LLM-as-judge veto 25% 实测数据" } else: output["workflow"] = [ { "step": 1, "role": "generator", "prompt": prompt, "description": "生成三区分析(无 veto 检查)" } ] output["note"] = "V1.1: Generator/Evaluator 分离架构。veto 机制参考 Spotify LLM-as-judge 实测数据。" print(json.dumps(output, indent=2)) ``` The contract explicitly states that sensitive content must be redacted: ```json { "condition": "sensitive_content_detected", "description": "PII, credentials, or sensitive data in input", "action": "redact_and_warn", "fallback": "Return redacted digest with warni ...[truncated 2201 chars]
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • System Prompt LeakageDirect Leakage, Indirect Extraction, Tool-Based Exfiltration
  • 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 (6)

Direct Prompt Extraction

High
Category
System Prompt Leakage
Confidence
85% confidence
Finding

Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.

Content

Scanner excerpt · main.py (reported line 82)May include surrounding context.

python
{text}
```
"""
    return prompt


def build_evaluator_prompt(generator_output: str, original_text: str, mode: str = "full") -> str:

Direct Prompt Extraction

High
Category
System Prompt Leakage
Confidence
85% confidence
Finding

Skill contains instructions that could directly expose system prompts, internal rules, or hidden instructions to users or external parties.

Content

Scanner excerpt · main.py (reported line 154)May include surrounding context.

python
{text}
```
"""
    return prompt


def build_evaluator_prompt(generator_output: str, original_text: str, mode: str = "full") -> str:

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The natural-language content of the skill documentation from the title onward is entirely in Chinese, while the file does not state that the skill is intended only for Chinese-speaking users or provide an alternative language option. This can violate language/locale policy because it effectively forces a specific language without user opt-in.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The description and author-facing metadata use Chinese-only natural language, and the input/output descriptions throughout the manifest also assume Chinese comprehension. For a general skill manifest, this can effectively force a specific language without user opt-in or justification, which fits the language/locale policy violation category.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The file description and all user-facing prompt templates are written in Chinese and direct the model to produce analysis in Chinese, but there is no opt-in, fallback, or documented region-specific reason for that language constraint. This is a natural-language policy issue because it imposes a specific locale on users regardless of their preference.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The manifest defines a language condition with a default of "zh-CN" while also allowing "en-US", but it does not indicate that the user is asked to choose or opt in. This can create a natural-language policy issue by implicitly forcing a specific language/locale preference.

Content

No source excerpt is available for this finding.