Back to skill

Security audit

Case Writer Hybrid

Security checks for vulnerabilities and agentic risk

Overview

The skill is a coherent local article-drafting tool, but its unvalidated slug can write generated files outside the documented draft folders.

Install only if you trust the briefs being processed or can first validate the slug field. Avoid running it on third-party or automatically generated briefs until slug/date validation and output-path containment are added.

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

T09 · Insecure Skill Coding Practices

Error
Location
runtime.py:60
Finding

Path Traversal Through an Unvalidated Brief Slug

Content
View full analysis
Path: return workspace_root / "content-production" / "drafts" / f"{slug}-article.md" def writing_pack_md_path(workspace_root: Path, slug: str) -> Path: return workspace_root / "content-production" / "drafts" / f"{slug}-writing-pack.md" def writing_pack_json_path(workspace_root: Path, slug: str) -> Path: return workspace_root / "content-production" / "drafts" / f"{slug}-writing-pack.json" def review_trace_path(workspace_root: Path, slug: str) -> Path: return workspace_root / "content-production" / "drafts" / f"{slug}-review-trace.json" ``` Those paths are subsequently used as file-write destinations: ```python article_path = article_output_path(workspace_root, brief["slug"]) pack_md_path = writing_pack_md_path(workspace_root, brief["slug"]) pack_json_path = writing_pack_json_path(workspace_root, brief["slug"]) trace_path = review_trace_path(workspace_root, brief["slug"]) notice_path = quality_gate_path(workspace_root, date=brief["date"], slug=brief["slug"]) write_text(article_path, best_article) write_text(pack_md_path, build_writing_pack_markdown(package, best_judge)) dump_json(pack_json_path, package) dump_json( trace_path, { "slug": brief["slug"], "topic": brief["topic"], "source_path": brief["source_path"], "publish_ready": p ...[truncated 2817 chars]
Remediation
View remediation
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 (3)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The input requirements and workflow are written to require Chinese section names such as 基础信息, 核心观点, and a humanizer-zh step, which indicates a fixed Chinese-language workflow. The file does not state that the skill is China/Chinese-specific or offer users an opt-in or alternative locale, creating a natural-language policy concern.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
86% confidence
Finding

This code persists generated article content, metadata, review traces, and possibly a quality-gate notice to disk via several write_text and dump_json calls. There is no confirmation prompt, print/log statement, or comment/docstring in this file disclosing that the skill will create and overwrite files under the workspace.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
91% confidence
Finding

The skill explicitly instructs writing multiple files into local draft and published directories, including a published quality-gate artifact, but does not clearly warn the operator that running the skill will modify the workspace. In an agentic environment, undisclosed file writes can cause unintended content creation, overwrite collisions, or accidental promotion of intermediate artifacts into publication paths.

Content

No source excerpt is available for this finding.