T09 · Insecure Skill Coding Practices
- Location
scripts/script.sh:6- Finding
Potentially Sensitive Compliance Data Is Persisted in Plaintext Without Enforced Access Controls
- Content
View full analysis
> "$DATA_DIR/history.log"; } ``` Representative command handler: ```bash else local input="$*" local ts=$(date '+%Y-%m-%d %H:%M') echo "$ts|$input" >> "$DATA_DIR/check-strength.log" local total=$(wc -l < "$DATA_DIR/check-strength.log") echo " [Gdpr] check-strength: $input" echo " Saved. Total check-strength entries: $total" _log "check-strength" "$input" fi ``` Equivalent plaintext writes are present in the other domain command handlers through line 302. ### Technical Analysis The Skill advertises commands for recording password-strength checks, credential rotation, identity verification, consent withdrawal, data access, and other GDPR-related activities. User-provided values are written verbatim to command-specific log files and duplicated in `history.log`. The script does not: - Establish a restrictive `umask`. - Explicitly create the data directory with mode `0700`. - Explicitly create log and export files with mode `0600`. - Encrypt sensitive records at rest. - Redact passwords, credentials, personal data, or identifying information. - Warn users not to submit secrets. Consequently, the resulting access permissions depend on the caller's environment and existing filesystem state. A permissive `umask`, an incorrectly permissioned pre-existing directory, or execution in a shared environment can expose records to other local users or processes. ### Attack Path 1. A user invokes a command with sensitive content, such as: `gdpr check-strength "Production passwor ...[truncated 1174 chars]- Remediation
View remediation
