Back to skill

Security audit

Gdpr Security Auditor

Security checks for vulnerabilities and agentic risk

Overview

It appears to be a real GDPR audit helper, but it can scan very broadly and leave sensitive security reports behind, so it needs careful review before use.

Install only if you intend to run a sensitive host-level GDPR/security audit on systems you administer. Before use, restrict the target scope, avoid or separately approve sudo checks, set a restrictive umask or protected report directory, and treat generated reports as confidential. Do not rely on the automated GDPR score as proof of compliance without independently checking the evidence.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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
Findings (3)

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
SKILL.md:89
Finding

Unrestricted Host-Wide Sensitive-System Reconnaissance

Content
View full analysis
/dev/null | \ grep -v "/proc/" | grep -v "/sys/" | head -20 | \ tee "$AUDIT_DIR/sqlite-files.txt" ``` ```bash find /home -name ".env*" -o -name "credentials*" -o -name "secrets*" 2>/dev/null | \ while IFS= read -r file; do if grep -qiE "secret|password|token|key|credential" "$file" 2>/dev/null; then echo " SENSITIVE: $file (contains credential patterns)" fi done | tee "$AUDIT_DIR/plaintext-secrets.txt" ``` ```bash # SSH key audit echo "--- SSH Keys ---" for user_home in /home/*; do user=$(basename "$user_home") if [ -f "$user_home/.ssh/authorized_keys" ]; then key_count=$(wc -l < "$user_home/.ssh/authorized_keys") echo " User $user: $key_count authorized keys" # Check key types (ed25519 > rsa) rsa_keys=$(grep -c "ssh-rsa" "$user_home/.ssh/authorized_keys" 2>/dev/null || echo 0) ed25519_keys=$(grep -c "ssh-ed25519" "$user_home/.ssh/authorized_keys" 2>/dev/null || echo 0) if [ "$rsa_keys" -gt 0 ]; then echo " ⚠️ $rsa_keys RSA keys (deprecated — migrate to ed25519)" fi fi done | tee "$AUDIT_DIR/ssh-keys.txt" # Sudo permissions echo "" echo "--- Sudo Access ---" grep -v "^#" /etc/sudoers 2>/dev/null | grep -v "^$" | tee "$AUDIT_DIR/sudoers.txt" # World-readable sensitive files echo "" echo "--- World-Readable Sensitive Files ---" find /home -type f \( -name "*.env" -o -name "*.pem" -o -name "id_*" -o -name "*.key" \) -perm /o+r 2>/dev/null | \ while IFS= read -r file; do echo " ❌ WORLD-READABLE: $file" done | tee "$AUDIT_DIR/world-readable-sensitive.txt" # Firewall rules echo "" echo "--- Firewall Rules ---" sudo iptables -L -n -v 2>/dev/null | head -40 | tee "$AUDIT_DIR/ ...[truncated 2672 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:56
Finding

Sensitive Audit Reports Created Without Enforced File Permissions

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
SKILL.md:415
Finding

Hard-Coded Passing Results Produce Misleading GDPR Compliance Scores

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (25)

Credential Access

High
Category
Privilege Escalation
Confidence
95% confidence
Finding

The skill scans for environment, credential, and secrets files and writes findings to plaintext-secrets.txt. Even if it only records filenames, this creates a sensitive map of where secrets likely reside, which is valuable reconnaissance and should not be collected silently.

Content

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

md
if grep -qiE "secret|password|token|key|credential" "$file" 2>/dev/null; then
      echo "  SENSITIVE: $file (contains credential patterns)"
    fi
  done | tee "$AUDIT_DIR/plaintext-secrets.txt"

# Check log files for PII leakage
echo ""

Credential Access

High
Category
Privilege Escalation
Confidence
97% confidence
Finding

The skill inspects users' authorized_keys files across /home, which reveals credential-related access material and account relationships. In context this supports an access audit, but it still collects highly sensitive authentication data locations and characteristics that could aid lateral movement if leaked.

Content

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

md
echo "--- SSH Keys ---"
for user_home in /home/*; do
  user=$(basename "$user_home")
  if [ -f "$user_home/.ssh/authorized_keys" ]; then
    key_count=$(wc -l < "$user_home/.ssh/authorized_keys")
    echo "  User $user: $key_count authorized keys"

Credential Access

High
Category
Privilege Escalation
Confidence
97% confidence
Finding

Counting authorized keys across user accounts constitutes broad credential-surface enumeration. This is risky because the resulting inventory identifies which accounts have SSH access configured, providing valuable reconnaissance for an attacker who gains access to the report.

Content

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

md
for user_home in /home/*; do
  user=$(basename "$user_home")
  if [ -f "$user_home/.ssh/authorized_keys" ]; then
    key_count=$(wc -l < "$user_home/.ssh/authorized_keys")
    echo "  User $user: $key_count authorized keys"
    
    # Check key types (ed25519 > rsa)

Credential Access

High
Category
Privilege Escalation
Confidence
96% confidence
Finding

Parsing key types from authorized_keys files adds more detail about the SSH authentication posture of each user. Although useful for compliance, this deepens exposure of credential-related metadata without a strong guardrail at the point of execution.

Content

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

md
echo "  User $user: $key_count authorized keys"
    
    # Check key types (ed25519 > rsa)
    rsa_keys=$(grep -c "ssh-rsa" "$user_home/.ssh/authorized_keys" 2>/dev/null || echo 0)
    ed25519_keys=$(grep -c "ssh-ed25519" "$user_home/.ssh/authorized_keys" 2>/dev/null || echo 0)
    if [ "$rsa_keys" -gt 0 ]; then
      echo "    ⚠️  $rsa_keys RSA keys (deprecated — migrate to ed25519)"

Credential Access

High
Category
Privilege Escalation
Confidence
95% confidence
Finding

The audit reports deprecated RSA key presence per user, which is operationally useful but also exposes authentication weaknesses account-by-account. In a sensitive environment, such per-user weakness mapping can materially aid an intruder if the report is disclosed.

Content

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

md
# Check key types (ed25519 > rsa)
    rsa_keys=$(grep -c "ssh-rsa" "$user_home/.ssh/authorized_keys" 2>/dev/null || echo 0)
    ed25519_keys=$(grep -c "ssh-ed25519" "$user_home/.ssh/authorized_keys" 2>/dev/null || echo 0)
    if [ "$rsa_keys" -gt 0 ]; then
      echo "    ⚠️  $rsa_keys RSA keys (deprecated — migrate to ed25519)"
    fi

Credential Access

High
Category
Privilege Escalation
Confidence
96% confidence
Finding

Enumerating world-readable .env, .pem, id_*, and .key files surfaces locations of exposed secrets and key material. This is a legitimate audit check, but by default it produces a high-value list of credential-bearing files that could be abused if the output is accessed by unauthorized users.

Content

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

md
# World-readable sensitive files
echo ""
echo "--- World-Readable Sensitive Files ---"
find /home -type f \( -name "*.env" -o -name "*.pem" -o -name "id_*" -o -name "*.key" \) -perm /o+r 2>/dev/null | \
  while IFS= read -r file; do
    echo "  ❌ WORLD-READABLE: $file"
  done | tee "$AUDIT_DIR/world-readable-sensitive.txt"

Intent-Code Divergence

High
Category
Not specified by scanner
Confidence
99% confidence
Finding

The automated GDPR score is presented as if derived from audit evidence, but the implementation hard-codes pass/fail values. This can generate materially false compliance conclusions, which is dangerous because organizations may rely on an inaccurate score for regulatory, security, or governance decisions.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill markets itself as a read-only audit, but the commands create directories and write multiple audit artifacts to disk. This is a security-relevant integrity issue because operators may grant broader trust or run it in sensitive environments under the false assumption that it leaves no traces.

Content

No source excerpt is available for this finding.

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
86% confidence
Finding

The skill invokes sudo to query PostgreSQL as the postgres user, which requires elevated privileges and may normalize running the audit with more access than necessary. In sensitive environments, unnecessary privilege elevation increases the chance of broad data exposure if the skill or its outputs are mishandled.

Content

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

md
# PostgreSQL
if systemctl is-active --quiet postgresql 2>/dev/null; then
  echo "PostgreSQL: RUNNING" | tee -a "$AUDIT_DIR/databases.txt"
  sudo -u postgres psql -c "\l" 2>/dev/null >> "$AUDIT_DIR/postgres-databases.txt"
else
  echo "PostgreSQL: not running" | tee -a "$AUDIT_DIR/databases.txt"
fi

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

These audit steps recursively inspect schemas, environment files, logs, and other locations likely to contain PII and secrets, but the skill does not provide an inline warning or explicit consent checkpoint before doing so. In a sensitive environment, this increases the risk of over-collection and accidental exposure of confidential data in generated reports.

Content

No source excerpt is available for this finding.

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 169)May include surrounding context.

md
echo "--- TLS Verification ---"
for port in 443 8443 9443; do
  echo "Port $port:"
  result=$(curl -s -X POST "http://localhost:8765/aynops/ssl" \
    -H "Content-Type: application/json" \
    -d "{\"host\": \"$TARGET\", \"port\": $port}" 2>/dev/null)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The access-control audit enumerates SSH authorized_keys, sudoers entries, firewall rules, and open ports without a clear warning at the point of use. That information is highly sensitive operational security data, and collecting it by default can increase blast radius if reports are later accessed by unauthorized parties.

Content

No source excerpt is available for this finding.

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

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

md
fi
done | tee "$AUDIT_DIR/ssh-keys.txt"

# Sudo permissions
echo ""
echo "--- Sudo Access ---"
grep -v "^#" /etc/sudoers 2>/dev/null | grep -v "^$" | tee "$AUDIT_DIR/sudoers.txt"

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

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

md
fi
done | tee "$AUDIT_DIR/ssh-keys.txt"

# Sudo permissions
echo ""
echo "--- Sudo Access ---"
grep -v "^#" /etc/sudoers 2>/dev/null | grep -v "^$" | tee "$AUDIT_DIR/sudoers.txt"

Unsafe Defaults

Medium
Category
Tool Misuse
Confidence
70% confidence
Finding

Tool defaults are unsafe or overly permissive (e.g. disabled TLS verification, no authentication, world-writable permissions). Unsafe defaults widen the attack surface.

Content

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

md
echo "--- Sudo Access ---"
grep -v "^#" /etc/sudoers 2>/dev/null | grep -v "^$" | tee "$AUDIT_DIR/sudoers.txt"

# World-readable sensitive files
echo ""
echo "--- World-Readable Sensitive Files ---"
find /home -type f \( -name "*.env" -o -name "*.pem" -o -name "id_*" -o -name "*.key" \) -perm /o+r 2>/dev/null | \

Unsafe Defaults

Medium
Category
Tool Misuse
Confidence
70% confidence
Finding

Tool defaults are unsafe or overly permissive (e.g. disabled TLS verification, no authentication, world-writable permissions). Unsafe defaults widen the attack surface.

Content

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

md
# World-readable sensitive files
echo ""
echo "--- World-Readable Sensitive Files ---"
find /home -type f \( -name "*.env" -o -name "*.pem" -o -name "id_*" -o -name "*.key" \) -perm /o+r 2>/dev/null | \
  while IFS= read -r file; do
    echo "  ❌ WORLD-READABLE: $file"

File System Enumeration

Medium
Category
Data Exfiltration
Confidence
94% confidence
Finding

The command enumerates sensitive files under /home, including .env files, private keys, and SSH material, then records their paths into an audit report. In a GDPR audit context some enumeration is expected, but broad default scanning of user homes materially increases exposure of sensitive asset locations.

Content

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

md
# World-readable sensitive files
echo ""
echo "--- World-Readable Sensitive Files ---"
find /home -type f \( -name "*.env" -o -name "*.pem" -o -name "id_*" -o -name "*.key" \) -perm /o+r 2>/dev/null | \
  while IFS= read -r file; do
    echo "  ❌ WORLD-READABLE: $file"
  done | tee "$AUDIT_DIR/world-readable-sensitive.txt"

Unsafe Defaults

Medium
Category
Tool Misuse
Confidence
70% confidence
Finding

Tool defaults are unsafe or overly permissive (e.g. disabled TLS verification, no authentication, world-writable permissions). Unsafe defaults widen the attack surface.

Content

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

md
echo "--- World-Readable Sensitive Files ---"
find /home -type f \( -name "*.env" -o -name "*.pem" -o -name "id_*" -o -name "*.key" \) -perm /o+r 2>/dev/null | \
  while IFS= read -r file; do
    echo "  ❌ WORLD-READABLE: $file"
  done | tee "$AUDIT_DIR/world-readable-sensitive.txt"

# Unused user accounts

Unsafe Defaults

Medium
Category
Tool Misuse
Confidence
70% confidence
Finding

Tool defaults are unsafe or overly permissive (e.g. disabled TLS verification, no authentication, world-writable permissions). Unsafe defaults widen the attack surface.

Content

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

md
find /home -type f \( -name "*.env" -o -name "*.pem" -o -name "id_*" -o -name "*.key" \) -perm /o+r 2>/dev/null | \
  while IFS= read -r file; do
    echo "  ❌ WORLD-READABLE: $file"
  done | tee "$AUDIT_DIR/world-readable-sensitive.txt"

# Unused user accounts
echo ""

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
89% confidence
Finding

Using sudo iptables to enumerate firewall rules requires elevated privileges and exposes detailed network defense information. While legitimate for an audit, collecting this by default increases risk if the report is exposed and encourages broad privileged execution of the skill.

Content

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

md
# Firewall rules
echo ""
echo "--- Firewall Rules ---"
sudo iptables -L -n -v 2>/dev/null | head -40 | tee "$AUDIT_DIR/firewall-rules.txt"

# Open ports
echo ""

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
86% confidence
Finding

The retention analysis runs a database query as the postgres user via sudo, again requiring elevated access beyond a purely read-only user context. Even read-only privileged access can expose sensitive schema and data-volume information across all application databases.

Content

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

md
# PostgreSQL table sizes and ages
if systemctl is-active --quiet postgresql 2>/dev/null; then
  sudo -u postgres psql -c "
    SELECT 
      schemaname || '.' || relname AS table_name,
      n_live_tup AS estimated_rows,

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

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

md
2. **Data Mapping** — trace data flows from collection to deletion
3. **PII Scan** — identify personal data in schemas, logs, and files
4. **Encryption Audit** — verify encryption at rest, in transit, in backups
5. **Access Control Review** — SSH keys, sudo permissions, firewall rules
6. **Retention Analysis** — identify stale data, check retention policies
7. **Cross-Border Assessment** — map international data flows
8. **Security Scoring** — automated GDPR compliance scorecard

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

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

md
2. **Data Mapping** — trace data flows from collection to deletion
3. **PII Scan** — identify personal data in schemas, logs, and files
4. **Encryption Audit** — verify encryption at rest, in transit, in backups
5. **Access Control Review** — SSH keys, sudo permissions, firewall rules
6. **Retention Analysis** — identify stale data, check retention policies
7. **Cross-Border Assessment** — map international data flows
8. **Security Scoring** — automated GDPR compliance scorecard

Sudo/Root Execution

Medium
Category
Privilege Escalation
Confidence
70% confidence
Finding

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

Content

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

md
2. **Data Mapping** — trace data flows from collection to deletion
3. **PII Scan** — identify personal data in schemas, logs, and files
4. **Encryption Audit** — verify encryption at rest, in transit, in backups
5. **Access Control Review** — SSH keys, sudo permissions, firewall rules
6. **Retention Analysis** — identify stale data, check retention policies
7. **Cross-Border Assessment** — map international data flows
8. **Security Scoring** — automated GDPR compliance scorecard

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
98% confidence
Finding

The security section says the audit never modifies systems, yet the workflow creates directories and writes reports and templates. This mismatch can mislead users during approval and change-control review, causing the skill to be executed where artifact creation is not permitted.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.