Back to skill

Security audit

Room

Security checks for vulnerabilities and agentic risk

Overview

This skill is a local room-management CLI that stores and exports user-entered home notes on the same machine, with some security-quality caveats but no evidence of hidden or malicious behavior.

Install only if you are comfortable with room and household notes being saved locally at ~/.local/share/room until you remove them yourself. Be careful opening CSV exports in spreadsheet software if entries may contain untrusted text, because formula-like values are not neutralized.

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
scripts/script.sh:61
Finding

Unescaped User-Controlled Data in JSON and CSV Exports

Content
View full analysis
"$out" local first=1 for f in "$DATA_DIR"/*.log; do [ -f "$f" ] || continue local name=$(basename "$f" .log) while IFS='|' read -r ts val; do [ $first -eq 1 ] && first=0 || echo "," >> "$out" printf ' {"type":"%s","time":"%s","value":"%s"}' "$name" "$ts" "$val" >> "$out" done < "$f" done echo "\n]" >> "$out" ;; csv) echo "type,time,value" > "$out" for f in "$DATA_DIR"/*.log; do [ -f "$f" ] || continue local name=$(basename "$f" .log) while IFS='|' read -r ts val; do echo "$name,$ts,$val" >> "$out"; done < "$f" done ``` ### Technical Analysis The export implementation inserts values read from local log files directly into JSON and CSV output without format-specific encoding. For JSON exports, characters such as double quotes, backslashes, control characters, and embedded newlines are not escaped. A crafted value can therefore invalidate the JSON document or terminate the intended string and inject additional JSON fields or objects. The implementation should not build JSON through string interpolation. For CSV exports, fields are neither quoted nor escaped. Commas and newlines can introduce additional columns or records. More importantly, values beginning with spreadsheet formula indicators such as `=`, `+`, `-`, or `@` may be interpreted as formulas when the resulting file is opened in spreadsheet software. Depending on the spreadsheet and its security configuration, formulas may initiate external requests, expose spreadsheet data, or invoke dangerous application fe ...[truncated 1917 chars]
Remediation
View remediation
Vulnerability Patterns
  • 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
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (4)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The script silently creates a persistent data directory under the user's home directory and stores all user-provided content there without any retention notice, consent flow, or deletion policy. Because entries may include household details, maintenance schedules, appliance information, and free-form notes, this can create an unexpected privacy exposure on shared systems or where users assume ephemeral processing.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The manifest describes a skill for organizing room inventory, appliances, deep cleans, and repair reminders. However, the CLI exposes many additional free-form categories such as checklist, usage, cost, log, report, seasonal, and tips, turning it into a general-purpose home data logger rather than a focused room inventory/maintenance tool.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill explicitly promotes that it works offline and uses automatic history/activity logging, but it does not clearly warn users that their inputs will be persistently stored on disk under a local data directory. This can expose sensitive household details, schedules, appliance information, or reminder contents to other local users, backups, or forensic review when users may reasonably expect ephemeral assistant interactions.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Low
Category
Not specified by scanner
Confidence
75% confidence
Finding

The manifest focuses on adding items, tracking appliances, and scheduling cleaning or repairs. While local persistence is expected, generating consolidated JSON/CSV/TXT exports of all logs is a separate data-exfiltration-style capability that is not clearly justified by the narrow room-management description.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.