T09 · Insecure Skill Coding Practices
- Location
SKILL.md:470- Finding
Persistent agent-memory logs may store sensitive accounting data without mandatory encryption
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md, lines 470 and 612; encryption policy at lines 694-706
Vulnerability Type: Sensitive data stored without mandatory encryption
Risk Level: MediumVulnerable Code Snippet
markdown **Episode logging trigger:** Any agent action that makes a decision, produces output, or interacts with a government system. Trivial reads are not logged.markdown | `/data/memory/` | `memory-feedback` (Skill 19) | All skills write episode/failure hooks; only Skill 19 reads for analysis |The encryption policy lists sensitive directories such as
/data/auth/,/data/clients/,/data/compliance/,/data/efka/, and/data/gdpr-exports/, but does not include/data/memory/:markdown ### Directories Requiring Encryption | Directory | Classification | Encryption Required | Rationale | |---|---|---|---| | `/data/auth/` | Restricted | **Mandatory** | Credential hashes, session data, 2FA secrets | | `/data/clients/` | Confidential | **Mandatory** | Financial records, PII (names, AFMs, IBANs) | | `/data/compliance/` | Confidential | **Mandatory** | Tax filings containing financial data | | `/data/efka/` | Confidential | **Mandatory** | Employee PII, salary data, social security numbers | | `/data/banking/` | Confidential | **Recommended** | Bank statements, account numbers | | `/data/backups/` | Confidential | **Already encrypted** | AES-256 via Skill 17 | | `/data/gdpr-exports/` | Confidential | **Mandatory** | Subject access request data | | `/data/processing/` | Internal | Optional | Ephemeral — deleted after pipeline | | `/data/reports/` | Internal | Recommended | May contain client financial summaries | | `/data/system/` | Internal | Optional | Logs and operational data |Technical Analysis
The Skill requires all other skills to create persistent episode and failure records for nearly every meaningful agent action. In an accounting ...[truncated 1885 chars]
- Remediation
View remediation
Remediation Suggestions
- Add
/data/memory/to the encryption-at-rest table with aConfidentialclassification and mandatory encryption. - Require AES-256-GCM file encryption, encrypted filesystem storage, or an equivalent authenticated encryption mechanism.
- Define an explicit logging allowlist. Store action identifiers, status, timestamps, and redacted references rather than full prompts, outputs, documents, or error payloads.
- Prohibit storage of credentials, authentication tokens, IBANs, complete AFMs, social-security identifiers, document contents, and raw government responses in memory records.
- Apply pseudonymization or irreversible redaction before records are written.
- Restrict directory permissions to the designated writer hooks and the
memory-feedbackreader. - Encrypt archives and backups containing memory records and ensure encryption keys are stored separately.
- Add retention and secure-deletion requirements for failures, patterns, corrections, and proposals, not only episodes.
- Add automated tests that reject memory records containing prohibited sensitive fields.
- Add
