Back to skill

Security audit

Bark Notifications

Security checks for vulnerabilities and agentic risk

Overview

This skill does what it claims: sends Bark push notifications, but users should protect the stored Bark key.

Install only if you are comfortable storing a Bark device key locally and sending notification text through the Bark API. Treat ~/.bark/key as a secret, keep it owner-readable only, and rotate the Bark key if it may have been exposed.

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

Warning
Location
SKILL.md:8
Finding

Plaintext Bark Credential Stored Without Required Access Controls

Content
View full analysis
Remediation
View remediation
"$HOME/.bark/key" chmod 600 "$HOME/.bark/key" ``` 3. Before reading the credential, verify that: - The file is a regular file and not a symbolic link. - The current user owns the file. - Group and other users have no permissions. - The parent directory is owned by the current user and is not writable by untrusted users. 4. Refuse to use the credential until unsafe ownership or permissions are corrected. 5. Prefer an operating-system credential manager or secret store where available. If file storage remains necessary, document its security requirements explicitly. 6. Avoid examples containing literal keys. Prevent shell tracing and verbose request logging from recording credential-bearing URLs. 7. Warn users that the Bark key is a sensitive bearer credential and that notification contents and metadata are transmitted to the configured Bark server. 8. Support credential rotation and instruct users to replace the Bark key if file, process-list, shell-history, proxy-log, or monitoring-system exposure is suspected. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (12)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The trigger phrases include broad language like 'notify me' and 'push to iPhone', which can collide with ordinary conversation and cause the skill to activate unexpectedly. In a skill that performs external network actions and uses stored credentials, accidental invocation can lead to unintended data transmission or notification spam.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill explicitly stores the Bark key in plaintext at ~/.bark/key but does not present this as a security-sensitive behavior or warn the user before doing so. A plaintext device token/API key can be recovered by other local processes, other users on the host, backups, or logs, enabling unauthorized push notifications to the user's device.

Content

No source excerpt is available for this finding.

Session Persistence

Medium
Category
Rogue Agent
Confidence
97% confidence
Finding

Persisting the Bark key in a plaintext file under the user's home directory creates lasting credential exposure beyond the current session. Any local compromise, permissive filesystem permissions, backups, or accidental disclosure of the home directory can grant an attacker the ability to send arbitrary Bark notifications to the user's device.

Content

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

md
Key file: `~/.bark/key` (plain text, just the key string).

If the file doesn't exist or is empty, ask the user for their Bark key and write it to `~/.bark/key`.

## API Overview

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

md
## API Overview

- **Base URL**: `https://api.day.app/`
- **Method**: GET or POST
- **Required**: Bark key (from `~/.bark/key`), body text
- **Optional**: title, subtitle, URL, icon, sound, group, level, etc.

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

md
## API Overview

- **Base URL**: `https://api.day.app/`
- **Method**: GET or POST
- **Required**: Bark key (from `~/.bark/key`), body text
- **Optional**: title, subtitle, URL, icon, sound, group, level, etc.

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

md
## API Overview

- **Base URL**: `https://api.day.app/`
- **Method**: GET or POST
- **Required**: Bark key (from `~/.bark/key`), body text
- **Optional**: title, subtitle, URL, icon, sound, group, level, etc.

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

md
## API Overview

- **Base URL**: `https://api.day.app/`
- **Method**: GET or POST
- **Required**: Bark key (from `~/.bark/key`), body text
- **Optional**: title, subtitle, URL, icon, sound, group, level, etc.

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

md
## API Overview

- **Base URL**: `https://api.day.app/`
- **Method**: GET or POST
- **Required**: Bark key (from `~/.bark/key`), body text
- **Optional**: title, subtitle, URL, icon, sound, group, level, etc.

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

md
## API Overview

- **Base URL**: `https://api.day.app/`
- **Method**: GET or POST
- **Required**: Bark key (from `~/.bark/key`), body text
- **Optional**: title, subtitle, URL, icon, sound, group, level, etc.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

bash
KEY=$(cat ~/.bark/key)
curl -s -X POST "https://api.day.app/$KEY" \
  -d "title=Notification Title" \
  --data-urlencode "body=First line
Second line

Session Persistence

Medium
Category
Rogue Agent
Confidence
97% confidence
Finding

The operational instructions reinforce persistent storage of the Bark key, which extends the attack window and makes credential theft more likely over time. Because the key authorizes pushes to the user's device, compromise enables spam, phishing-style messages, or nuisance alerts.

Content

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

md
## How to Use

1. Read key from `~/.bark/key`
2. If key file doesn't exist or is empty, ask user for their Bark key and write it to `~/.bark/key`
3. Build the request with the key and user-provided parameters
4. Execute via exec/curl
5. Confirm notification received

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

md
1. Read key from `~/.bark/key`
2. If key file doesn't exist or is empty, ask user for their Bark key and write it to `~/.bark/key`
3. Build the request with the key and user-provided parameters
4. Execute via exec/curl
5. Confirm notification received

## Example

Static analysis

No suspicious patterns detected.