Back to skill

Security audit

Slot

Security checks for vulnerabilities and agentic risk

Overview

This skill is a local time-slot manager with some export and file-permission hardening weaknesses, but its behavior matches its stated scheduling purpose.

Install only if you are comfortable with a local shell script storing schedule details in ~/.slot-manager. Avoid using a shared or attacker-writable SLOT_DATA_DIR, do not run it with elevated privileges, and be cautious opening exported CSV or ICS files if slot labels or categories came from untrusted input.

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:134
Finding

Unescaped User Input Enables CSV Formula Injection and iCalendar Content Injection

Content
View full analysis
> "$SLOT_FILE" ``` ```bash while IFS=',' read -r sid sdate sstart send slabel scat screated; do [ "$sid" = "id" ] && continue local dnum="${sdate//-/}" local snum="${sstart/:/}00" local enum="${send/:/}00" echo "BEGIN:VEVENT" echo "UID:${sid}@slot-manager" echo "DTSTART:${dnum}T${snum}" echo "DTEND:${dnum}T${enum}" echo "SUMMARY:${slabel}" echo "CATEGORIES:${scat}" echo "DESCRIPTION:Created by Slot Manager v${VERSION}" echo "END:VEVENT" done < "$SLOT_FILE" ``` ```bash csv) local outfile="${SLOT_DIR}/slots_export.csv" cp "$SLOT_FILE" "$outfile" ``` ### Technical Analysis The `label` and `category` arguments are controlled by the user and are written directly into a comma-separated record without CSV quoting, quote escaping, newline rejection, or spreadsheet formula neutralization. A value beginning with `=`, `+`, `-`, or `@` may be interpreted as a formula when the exported CSV is opened in spreadsheet software. Depending on the spreadsheet application and its security configuration, a formula can initiate external requests, expose data through attacker-controlled URLs, or invoke legacy formula features such as Dynamic Data Exchange. Commas, quotation marks, carriage returns, and line feeds can also alter the CSV record structure. Because the script subsequently parses the same file using `IFS=','`, crafted values can shift columns or introduce additional records. The iCalendar export similarly places the stored label and category directly into `SUMMARY` and `CATEGORIES`. RFC 5545 requires escaping of backslashes, commas, semicolons, and line breaks. A crafted newline can terminat ...[truncated 1545 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/script.sh:7
Finding

Predictable Data Files Are Written Without Symlink Protection or Explicit Restrictive Permissions

Content
View full analysis
"$SLOT_FILE" fi } ``` ```bash ics|ical) local outfile="${SLOT_DIR}/slots.ics" { echo "BEGIN:VCALENDAR" echo "VERSION:2.0" echo "PRODID:-//BytesAgain//Slot Manager//EN" echo "CALSCALE:GREGORIAN" echo "METHOD:PUBLISH" while IFS=',' read -r sid sdate sstart send slabel scat screated; do [ "$sid" = "id" ] && continue local dnum="${sdate//-/}" local snum="${sstart/:/}00" local enum="${send/:/}00" echo "BEGIN:VEVENT" echo "UID:${sid}@slot-manager" echo "DTSTART:${dnum}T${snum}" echo "DTEND:${dnum}T${enum}" echo "SUMMARY:${slabel}" echo "CATEGORIES:${scat}" echo "DESCRIPTION:Created by Slot Manager v${VERSION}" echo "END:VEVENT" done < "$SLOT_FILE" echo "END:VCALENDAR" } > "$outfile" ``` ```bash csv) local outfile="${SLOT_DIR}/slots_export.csv" cp "$SLOT_FILE" "$outfile" ``` ### Technical Analysis The script uses predictable file names and performs direct creation, append, copy, and truncating redirection without checking whether the directory or destination is a symbolic link. It also relies entirely on the caller's `umask` rather than explicitly applying private permissions to schedule data. The `SLOT_DATA_DIR` environment variable permits the storage directory to be redirected. This is legitimate configurability, but it becomes unsafe if an attacker can influence the environ ...[truncated 2203 chars]
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep

Static analysis

No suspicious patterns detected.