T09 · Insecure Skill Coding Practices
- Location
references/inception/reverse-engineering.md:311- Finding
Persistent Storage of Unredacted User Input
- Content
View full analysis
Vulnerability Details
File Location:
references/inception/reverse-engineering.md:311
Vulnerability Type: Unredacted sensitive-data logging
Risk Level: MediumComplete Vulnerable Snippet:
markdown - **MANDATORY**: Log user's response in audit.md with complete raw inputThe same behavior is imposed globally by
SKILL.md:72, which requires every user input to be recorded verbatim inaidlc-docs/audit.md, and bySKILL.md:219, which requires that audit file to be append-only.Technical Analysis
The Skill persistently records complete user responses without requiring redaction, sensitivity classification, informed consent, access controls, or a retention policy. Software-development conversations can contain API keys, passwords, authentication tokens, proprietary source code, personally identifiable information, internal infrastructure details, and incident data.
This behavior conflicts with the Skill's own security baseline at
references/extensions/security/baseline/security-baseline.md:76-82, which prohibits passwords, tokens, secrets, and personally identifiable information from appearing in logs. Because raw input is mandatory and the audit log is append-only, sensitive information cannot be safely omitted or corrected under the defined workflow.No external transmission mechanism was identified. The vulnerability is therefore a local plaintext retention and accidental-disclosure risk rather than confirmed network exfiltration.
Attack Path
- A user includes a credential, token, personal record, proprietary code fragment, or other confidential information in a workflow response.
- The Skill follows its mandatory logging instruction and copies the complete response into
aidlc-docs/audit.md. - The sensitive content remains in the append-only audit file without redaction or expiration.
- The workspace is committed to version control, backed up, indexed, packaged, or shared with c ...[truncated 861 chars]
- Remediation
View remediation
Remediation Suggestions
- Replace verbatim transcript logging with minimal event logging that records workflow stage, action, timestamp, and outcome only.
- Apply secret and personally identifiable information detection before every audit write. Redact passwords, tokens, API keys, authorization headers, private keys, session identifiers, and personal records.
- Require explicit user opt-in before retaining raw conversation content, with the default set to no raw retention.
- Allow users to inspect, correct, and delete audit entries rather than requiring permanently append-only storage.
- Define retention and automatic deletion periods appropriate to the project's sensitivity.
- Add
aidlc-docs/audit.mdto version-control ignore rules by default and warn users before repository commits or artifact packaging. - Restrict audit-file permissions to the current user and avoid copying it into build outputs, deployment bundles, or shared documentation.
- Update every phase-specific logging instruction to enforce the bundled security baseline consistently.
- Add automated tests confirming that representative credentials and personal data are redacted before being written.
