Back to skill

Security audit

Privacy Policy

Security checks for vulnerabilities and agentic risk

Overview

The privacy policy generator is mostly coherent, but the package also includes an unrelated security-tool script that persistently logs command inputs and provides unsafe security commands.

Review this package before installing. The policy-generation script itself is simple and local, but the extra privacy-policy security utility should not be relied on for scanning, encryption, hashing sensitive values, or password generation, and its local history file may retain sensitive command arguments.

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

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/script.sh:35
Finding

Plaintext Logging and Disclosure of Sensitive Command Arguments

Content
View full analysis
> "$DATA_DIR/history.log"; } ``` ```bash cmd_encrypt() { echo " Encrypting: $1" _log "encrypt" "${1:-}" } cmd_hash() { echo "$1" | sha256sum | cut -d" " -f1 _log "hash" "${1:-}" } ``` ### Technical Analysis The `encrypt` and `hash` commands accept values that users may reasonably expect to be confidential, such as passwords, tokens, personal information, or encryption plaintext. Both commands pass the complete raw argument to `_log`, which appends it to the persistent `history.log` file without redaction. The `encrypt` command also prints the supplied value to standard output and does not perform encryption. Consequently, sensitive input can be exposed through both terminal output and persistent command history. The script creates the data directory without explicitly applying restrictive permissions. Its effective permissions depend on the invoking user's `umask` and any pre-existing directory or file permissions. The behavior is also not disclosed in the skill documentation. ### Attack Path 1. A user invokes a command with sensitive content, such as: ```bash privacy-policy hash "SensitivePassword" ``` or: ```bash privacy-policy encrypt "ConfidentialText" ``` 2. The command forwards the original argument to `_log`. 3. `_log` appends the unredacted value to: ```text $DATA_DIR/history.log ``` 4. For `encrypt`, the plaintext is additionally printed to the terminal. 5. A local process, user, backup system, diagnostic bundle, or support workflow capable of reading the ...[truncated 650 chars]
Remediation
View remediation
> "$DATA_DIR/history.log" } ``` 3. Remove plaintext output from `cmd_encrypt`. 4. Remove the `encrypt` command unless genuine, authenticated encryption can be implemented using a reviewed cryptographic tool and an appropriate key-management design. 5. Apply restrictive permissions before creating storage: ```bash umask 077 mkdir -p -m 700 "$DATA_DIR" touch "$DATA_DIR/history.log" chmod 600 "$DATA_DIR/history.log" ``` 6. Prefer reading secrets from standard input without echoing rather than accepting them as command-line arguments, because command-line arguments may be visible in process listings or shell history. 7. Document all persistent logging behavior and provide a mechanism to disable or securely delete logs. 8. Add regression tests confirming that sensitive inputs never appear in standard output or `history.log`. ]]>

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/script.sh:72
Finding

Password Generator Uses a Non-Cryptographic Pseudorandom Number Generator

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

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The help text presents the tool as a bilingual generator, and the generated policies consistently include Chinese alongside English throughout the output. Because the skill forces a specific locale/language format with no user opt-in or configuration, it conflicts with the policy requirement to avoid imposing a language without user choice.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

Scanner excerpt · scripts/privacy.sh (reported line 472)May include surrounding context.

sh
We use cookies in compliance with the ePrivacy Directive. Users are
presented with a cookie consent banner upon first visit. Categories:

  • Strictly Necessary: Always active (no consent required)
  • Analytics: Require consent
  • Marketing: Require consent
  • Preference: Require consent

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The script markets itself as a security scanning and hardening tool, but its core commands mostly emit canned status messages and write logs instead of performing the promised security functions. This can create a false sense of protection, causing users to rely on nonexistent scans, audits, or hardening actions and miss real security issues.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The logging helper writes command names and raw arguments to a persistent history file without notice or consent. Users may pass sensitive values such as targets, paths, tokens, passwords, or other secrets on the command line, which would then be silently retained on disk and exposed to other local users, backups, or forensic collection.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

The description and body present content in both Chinese and English, but the file does not state that language selection is optional or user-configurable. Under the policy, forcing or assuming a language/locale without opt-in can be a natural-language policy issue.

Content

No source excerpt is available for this finding.

Scope Creep

Low
Category
Excessive Agency
Confidence
70% confidence
Finding

Skill's behavior or capabilities extend beyond its stated purpose. Scope creep allows an agent to perform actions unrelated to its documented functionality, increasing the attack surface.

Content

Scanner excerpt · scripts/privacy.sh (reported line 94)May include surrounding context.

sh
1.1 Personal Information You Provide

  When you use our services, we may ask you to provide certain personally
  identifiable information, including but not limited to:

  • Full name
  • Email address (${EMAIL} for privacy inquiries)

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
80% confidence
Finding

The password command generates credentials and then records its invocation via the shared logging helper, but there is no user disclosure that password-related activity is logged. Even if no password value is written, logging security-sensitive command usage can affect privacy expectations.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.