Back to skill

Security audit

Okr Planner

Security checks for vulnerabilities and agentic risk

Overview

This OKR planner is a straightforward Chinese-oriented planning helper with local task storage, with some documentation and quality issues but no evidence of deception, exfiltration, privilege escalation, or unsafe automatic execution.

Install only if you are comfortable with a Chinese-first OKR helper that may store task text locally in plaintext. Avoid entering highly sensitive business or personnel information unless you have checked the storage directory permissions, and do not rely on the clear/done/reminder commands as full persistent task-management features without testing them.

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

Note
Location
scripts/script.sh:5
Finding

Potentially Sensitive Task Data Stored in Plaintext with Umask-Dependent Permissions

Content
View full analysis
> "$DATA_DIR/history.log"; } ``` ```bash cmd_add() { echo "$(date +%Y-%m-%d) $*" >> "$DB"; echo " Added: $*" _log "add" "${1:-}" } ``` ### Technical Analysis The script persistently writes user-provided task content to `data.log` and command-related content to `history.log`. These records are stored as plaintext. The script does not set a restrictive `umask` or explicitly apply access modes to the data directory and files. Consequently, the resulting permissions depend on the invoking process's umask and any pre-existing filesystem permissions. Under a commonly permissive umask such as `022`, the directory may be created with mode `0755` and files with mode `0644`, potentially allowing other local accounts to read their contents. Task and OKR descriptions may contain confidential business plans, personnel information, deadlines, or other sensitive user-provided data. The persistent storage behavior is also not clearly documented in `SKILL.md`, making users less likely to anticipate local retention. ### Attack Path 1. A user runs the task-management script with sensitive content, for example through the `add` command. 2. `cmd_add` appends the complete task text to `data.log`. 3. `_log` also writes command metadata and the first supplied argument to `history.log`. 4. The files are created using permissions derived from the caller's current umask because the script establishes no restrictive permission policy. 5. If those permissions permit access by other local users, another account or process on the same host can re ...[truncated 724 chars]
Remediation
View remediation
Vulnerability Patterns
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • 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 (4)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The description and body present the skill in both Chinese and English, but there is no statement about supported languages, default language behavior, or user opt-in. This can violate language/locale policy expectations when a skill implicitly forces or assumes a language preference without making that choice explicit.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

Multiple command prompts explicitly require the model to respond '用中文', which imposes a specific language on the user. This is a natural-language policy concern because the file does not offer language choice or explain a region-specific requirement.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The help text documents commands like 'done', 'priority', 'remind', and 'clear' as functional task-management operations, implying they update reminders, priorities, completion state, or remove completed items. In the implementations, these commands only echo status text and append to history.log, leaving the main task database unchanged.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
90% confidence
Finding

This markdown file presents all instructional content in Chinese, and there is no natural-language indication that the skill is limited to Chinese-speaking users or that language selection is optional. Under the locale policy rule, forcing a specific language without opt-in can be a policy violation.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.