Back to skill

Security audit

diary-conversation

Security checks for vulnerabilities and agentic risk

Overview

This diary skill stores personal journal text and images locally as advertised, with privacy-sensitive behavior users should understand before using it.

Use this skill only if you are comfortable with personal reflections, mood details, keywords, and photos being saved in a local journals directory. Review the storage location, delete or encrypt sensitive entries as needed, and enable Git, cloud sync, or backups only deliberately because those can copy private diary data outside the immediate workspace.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (12)

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
92% confidence
Finding

The skill instructs reading and writing local files but does not declare any explicit tool scope or permissions boundary. This creates ambiguity about what filesystem access the runtime may permit and increases the risk of unintended file operations or over-privileged execution if the platform auto-grants broad file capabilities.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger phrases are broad everyday expressions like writing a diary, reviewing the day, or life recording, which can cause the skill to activate in contexts where the user did not intend persistent journaling or image handling. In this skill, unintended activation matters because it may lead to collection and storage of sensitive personal reflections and photos.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
89% confidence
Finding

The skill instructions and example prompts are entirely in Chinese and direct the assistant to conduct the diary conversation in that language, while the trigger list also mixes in English without clarifying language-selection behavior. There is no opt-in, fallback, or statement that the skill is intentionally limited to Chinese-speaking users for a documented reason.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

The skill explicitly directs saving user text and uploaded images to local files and indexing them, but it does not require clear notice or consent before storage. Because diary entries and photos are highly sensitive personal data, silent persistence significantly raises privacy and retention risks if data is later exposed, synced, or accessed by other components.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

This markdown guidance forces a specific language/locale for the skill content by presenting all instructions and examples exclusively in Chinese. The policy allows locale-specific behavior only when the skill offers user opt-in or clearly documents a justified regional constraint, neither of which appears here.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The document recommends cloud synchronization and backup for highly personal diary content but does not explicitly warn that third-party services may receive sensitive text, images, metadata, and access patterns. In a journaling skill, this omission increases the chance users or implementers will enable syncing without informed consent, encryption, or provider risk review.

Content

No source excerpt is available for this finding.

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
80% confidence
Finding

Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.

Content

Scanner excerpt · references/file-storage.md (reported line 259)May include surrounding context.

md
- **元数据隐藏**:索引文件不包含敏感信息

### 访问控制
- 文件权限设置(chmod 600 for sensitive files)
- 目录访问日志
- 备份文件加密

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

This markdown file presents all prompts, examples, and interaction guidance exclusively in Chinese. Under the stated policy, forcing a specific language without user opt-in is a natural-language policy violation unless the locale constraint is explicitly justified or the user is given a choice.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

This Python file contains natural-language instructions and output text entirely in Chinese, including the stated purpose of generating diaries and later user-facing strings, but it does not indicate that Chinese is optional or user-selected. Under the policy rule, forcing a specific language without opt-in is a locale/language policy violation.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The manifest says the skill supports image upload and automatically organizes images, but save_image only computes a destination path, prints messages, and returns metadata without copying or persisting the source image. This is a semantic mismatch between the claimed image-management behavior and the implemented code.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
81% confidence
Finding

All headings, instructions, examples, and labels are presented only in Chinese, with no indication that the language is optional or that the skill is intentionally limited to a Chinese-speaking context. Under the stated policy, forcing a specific language without user opt-in can be a natural-language policy violation.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
97% confidence
Finding

The comment 复制文件 indicates that the function is copying the image, yet the actual implementation only prints the intended destination and description. This is an active contradiction between documentation/comments and runtime behavior, not merely an omitted detail.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.