T09 · Insecure Skill Coding Practices
- Location
scripts/safe-merge-update.sh:284- Finding
Secret Redaction Fails Open Before External Model Transmission
- Content
View full analysis
"$MAP_FILE" REDACTED=$("$REDACT_SCRIPT" "$file") exec 3>&- echo "$REDACTED" > "$file" REDACT_MAPS["$file"]="$MAP_FILE" done <<< "$CONFLICT_LIST" success "Secrets redacted. Maps held in ${REDACT_MAP_DIR} (mode 700, deleted after restore)." else warn "redact-secrets.sh not found — proceeding WITHOUT secret redaction." warn "Inspect conflicted files for secrets before continuing." fi ``` ### Technical Analysis The workflow treats secret redaction as optional even though it subsequently delegates conflict resolution to an external Claude Code process. If `redact-secrets.sh` is missing or lacks execute permission, execution continues instead of terminating or switching to manual resolution. This is a fail-open security design. The Skill documentation states that conflicted files are redacted before model transmission, but the implementation does not enforce that guarantee. Conflicted source or configuration files can contain API keys, access tokens, private keys, authenticated connection strings, or other confidential values. The warning does not provide an effective security boundary because the script is an automated workflow and does not pause for explicit operator confirmation. ### Attack Path 1. An attacker, packaging error, or local permissions change ca ...[truncated 1097 chars]- Remediation
View remediation
