T09 · Insecure Skill Coding Practices
- Location
SKILL.md:353- Finding
Sensitive Financial Records May Be Committed to Git
- Content
View full analysis
Vulnerability Details
File Location:
SKILL.md:353
Vulnerability Type: Insecure storage and backup of sensitive financial data
Risk Level: MediumComplete Code Snippet:
markdown ### Backup Periodically remind users to back up their ledger. Offer to commit to git if workspace is a repo.Technical Analysis
The Skill recommends committing the user's ledger to Git when the workspace is a repository. The ledger can contain sensitive personal financial information, including transaction dates, amounts, merchants, descriptions, payment methods, income, and savings activity.
Git commits create durable historical copies. Deleting the working-tree file later does not remove it from prior commits. The repository may also have a remote, collaborators, automated mirroring, or CI/CD services. Consequently, accepting this backup recommendation may cause financial data to leave the local machine despite the privacy claim elsewhere in the Skill that there is no cloud synchronization and that the user's financial data never leaves the machine.
This finding does not establish deliberate exfiltration or malicious behavior. It is an insecure data-handling recommendation that can facilitate accidental disclosure.
Attack Path
- The user records transactions in the local financial ledger.
- The Agent detects that the workspace is a Git repository and offers to commit the ledger as a backup.
- The user accepts, causing the sensitive ledger to enter Git history.
- The repository is pushed to an existing remote, mirrored automatically, shared with collaborators, or later made public.
- Anyone with repository access can retrieve the financial records, including from historical commits even if the current file is subsequently deleted.
Exploitation requires the ledger to be committed and the repository or its history to become accessible to an unintended party. The audited files do not independently perform ...[truncated 489 chars]
- Remediation
View remediation
Remediation Suggestions
- Remove the default recommendation to use Git as a backup mechanism for financial records.
- Recommend an encrypted, access-controlled local backup or a user-selected encrypted backup destination instead.
- Add
budget-profile.json,budget-ledger.json,budget-goals.json,budget-recurring.json, and generated CSV exports to.gitignoreby default. - If the user explicitly requests a Git commit, display a clear warning that Git retains historical copies and that remotes may disclose the data.
- Before any commit, inspect and disclose whether the repository has configured remotes or shared access, then require explicit user confirmation.
- Support encrypted or redacted exports that omit merchants, notes, payment methods, and other identifying fields.
- If sensitive files have already been committed, instruct the user to rotate any exposed secrets, rewrite repository history with an appropriate history-cleaning tool, force-update affected remotes where safe, and notify repository collaborators that old clones may still retain the records.
