Back to skill

Security audit

Desktop Notify

Security checks for vulnerabilities and agentic risk

Overview

The skill sends desktop notifications, but its recommended setup persistently changes global agent memory so future conversations run a command after every response.

Install only if you are comfortable with a setup step that changes ~/.workbuddy/MEMORY.md so every future conversation may run a notification command after each response. Prefer using the notify scripts manually, or require the publisher to replace the global memory edit with an explicit, reversible, per-skill setting and to harden the macOS osascript argument handling.

Vulnerability Patterns
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • 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
  • 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)

T02 · Agent Memory Poisoning

Error
Location
scripts/setup.sh:8
Finding

Persistent Global Agent Memory Poisoning Through Setup Scripts

Content
View full analysis
" if grep -qF "$MARKER" "$MEMORY_MD"; then echo "[skip] Global notification rule already exists." echo "Location: $MEMORY_MD" exit 0 fi # 4. Append rule cat >> "$MEMORY_MD" <
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
scripts/notify.sh:7
Finding

AppleScript Injection Through Unescaped Notification Arguments

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (20)

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill is described as a notification helper, but it also promotes a setup step that persists behavioral rules into ~/.workbuddy/MEMORY.md for all future conversations. That creates a hidden scope expansion from one-shot notifications to durable cross-project agent behavior, which can surprise users and weaken consent boundaries around persistent configuration changes.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

The skill is described as a notification helper, but it also promotes a setup step that persists behavioral rules into ~/.workbuddy/MEMORY.md for all future conversations. That creates a hidden scope expansion from one-shot notifications to durable cross-project agent behavior, which can surprise users and weaken consent boundaries around persistent configuration changes.

Content

No source excerpt is available for this finding.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

Scanner excerpt · SKILL.md (reported line 68)May include surrounding context.

md
- `SKILL.md`(本文件)

Hidden Instructions

High
Category
Prompt Injection
Confidence
60% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · scripts/notify.ps1 (reported line 1)May include surrounding context.

text
# desktop-notify 一键全局配置 (Windows)
# 作用:把"每次回答完自动发通知"规则写入用户级全局记忆 ~/.workbuddy/MEMORY.md
# 运行一次即可,之后所有对话全局生效。可重复运行,不会重复写入。

Hidden Instructions

High
Category
Prompt Injection
Confidence
60% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

Scanner excerpt · scripts/setup.ps1 (reported line 1)May include surrounding context.

text
# desktop-notify 一键全局配置 (Windows)
# 作用:把"每次回答完自动发通知"规则写入用户级全局记忆 ~/.workbuddy/MEMORY.md
# 运行一次即可,之后所有对话全局生效。可重复运行,不会重复写入。

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

This setup script does more than configure desktop notifications: it persists a new global behavioral rule into the agent's user-level MEMORY.md so future conversations automatically execute a notification command after every response. That is a cross-session behavior modification mechanism, which exceeds the stated purpose of a notification skill and creates a persistence channel for hidden instructions affecting the agent globally.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The script targets the user's global .workbuddy/MEMORY.md and prepares to modify it so the agent follows a mandatory command in future interactions. For a desktop notification helper, changing user-level global memory is unjustified and dangerous because it establishes durable influence over unrelated projects and conversations.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The script extends a narrowly described task-end notification helper into a persistent global rule that affects all future conversations by writing to ~/.workbuddy/MEMORY.md. This is dangerous because it changes agent behavior outside the declared scope of the skill and creates hidden, durable side effects that the user may not expect or consent to.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The script writes a policy-like instruction into a user-global memory file, giving this notification skill the ability to influence all future assistant responses. For a desktop notification helper, this is an unjustified privilege escalation in scope and persistence, and it can be abused to implant durable behavioral rules unrelated to the skill's stated purpose.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The documentation broadens the skill from transient task-completion notification into persistent global configuration of assistant behavior. Even if user-invoked, this is security-relevant because it changes future execution context outside the immediate task and can normalize hidden persistence in a skill that appears harmless.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The setup instructions recommend a command that changes global behavior across future conversations before adequately foregrounding the persistence and cross-project impact. Users may execute it as a routine install step without understanding they are altering long-term assistant behavior, which is a meaningful consent and safety issue.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

A desktop notification helper does not need the capability to modify a user global memory/configuration file to fulfill its core function. Adding that capability increases attack surface and creates an opportunity for policy persistence or future prompt/agent manipulation under the cover of a benign utility.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The manifest description is entirely in Chinese, which imposes a specific language on users without any opt-in or indication that the skill is intended only for a Chinese-speaking or region-specific audience. The policy requires either user choice or clear documentation of a justified locale constraint.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
87% confidence
Finding

The file's user-facing comments and the rule written into MEMORY.md are entirely in Chinese and prescribe ongoing behavior without indicating that language is configurable or region-specific. Under the policy, forcing a specific language or locale without user opt-in is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The script appends a global rule directly into MEMORY.md without presenting a confirmation prompt or clearly summarizing that it will affect all future conversations. Silent persistence increases the risk of users unknowingly changing agent behavior and makes abuse harder to detect or attribute.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The comments frame the script as simple desktop-notify setup, but it actually installs an always-notify global rule for future dialogues. This mismatch is dangerous because misleading documentation reduces informed consent and makes users more likely to run a script that has broader effects than advertised.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
74% confidence
Finding

The file's user-facing natural language is entirely in Chinese and the script injects Chinese notification text into the global memory rule. This imposes a specific language/locale choice without offering the user an opt-in or alternative, which matches the language-policy concern defined for this audit.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The script silently creates and modifies a user-global memory file without prompting, warning, or showing the user the exact change beforehand. Silent policy changes are risky because they can alter future assistant behavior in ways the user does not notice, making persistence and recovery harder.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
77% confidence
Finding

The natural-language instructions and examples are entirely in Chinese, and the file does not indicate that other languages are supported or that Chinese is optional. Under the policy, forcing a specific language without opt-in can be a locale-policy issue unless the constraint is explicitly justified.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
98% confidence
Finding

Line L58 states '无网络、无文件读取(除写自己的 MEMORY.md)', asserting no file reading while simultaneously documenting a write to MEMORY.md. Elsewhere, L39-L55 makes clear the setup process edits ~/.workbuddy/MEMORY.md, so the wording understates the actual file-system side effect and can mislead readers about the skill's behavior. Even though it carves out an exception, the headline claim conflicts with the documented persistence behavior.

Content

No source excerpt is available for this finding.