T09 · Insecure Skill Coding Practices
- Location
scripts/script.sh:5- Finding
Locally Stored Task Data May Be Created with Overly Permissive Permissions
- Content
View full analysis
> "$DATA_DIR/add.log" local total=$(wc -l < "$DATA_DIR/add.log") echo " [Todo Planner] add: $input" echo " Saved. Total add entries: $total" _log "add" "$input" ``` ### Technical Analysis The script creates its data directory and log files without establishing a restrictive `umask` or explicitly applying secure permission modes. File permissions therefore depend on the invoking process's environment. With a common `umask` of `022`, a newly created directory is normally mode `0755`, while log and export files are normally mode `0644`. If the user's home-directory permissions permit traversal, other local accounts may be able to read task descriptions, plans, reminders, reviews, activity history, and exported records. The application documentation states that data remains local, but local storage alone does not ensure confidentiality from other operating-system users. ### Attack Path 1. A victim invokes the Skill and records sensitive task, reminder, planning, or review information. 2. The script creates `~/.local/share/todo-planner` and its files using the victim's ambient `umask`. 3. Under a permissive `umask`, the directory and files receive group-readable or world-readable permissions. 4. A different local account with permission to traverse the victim's home directory accesses files such as: - `~/.local/share/todo-planner/add.log` - `~/.local/share/todo-planner/remind.log` - `~/.local/share/todo-planner/history.log` - `~/.local/share/todo-planner/export.csv` ...[truncated 611 chars]- Remediation
View remediation
