other
Error
- Location
- scripts/export_codex_session.py:32
- Finding
- Unrestricted Export of Sensitive Conversation and Tool History<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:48-70`; `scripts/export_opencode_session.py:46-103`; `scripts/export_codex_session.py:32-129`; `scripts/export_claude_code_session.py:19-124` **Vulnerability Type**: Sensitive conversation history collection and disclosure **Risk Level**: High ### Vulnerable Code `SKILL.md:48-70` directs the agent to search private session-storage directories and pass the selected session to a history exporter: ```markdown ### Finding Your Session You should only search for sessions from your coding harness. If a user requests you use a different harness, they are likely referring to vet's agentic mode, not the session. **OpenCode:** The `--session-id` argument requires a `ses_...` session ID. To find the current session ID: 1. Run: `opencode session list --format json` to list recent sessions with their IDs and titles. 2. Identify the current session from the list by matching the title or timestamp. - IMPORTANT: Verify the session you found matches the current conversation. If the title is ambiguous, compare timestamps or check multiple candidates. 3. Pass the session ID as `--session-id`. **Codex:** Session files are stored in `~/.codex/sessions/YYYY/MM/DD/`. To find the correct session file: 1. Find the most unique sentence / question / string in the current conversation. 2. Search for your unique message string in ~/.codex/sessions/` to find the matching session file. - IMPORTANT: Verify the conversation you found matches the current conversation and that it is not another conversation with the same search string. 3. Pass the matched file path as `--session-file`. **Claude Code:** Session files are stored in `~/.claude/projects/<encoded-path>/`. The encoded path replaces `/` with `-` (e.g. `/home/user/myproject` becomes `-home-user-myproject`). To find the correct session file: 1. Find the most unique sentence / question / string in the current conversation. 2. Search for your unique message strin ...[truncated 6800 chars]
- Remediation
- <![CDATA[ ## Remediation Suggestions 1. Export only messages directly relevant to the current code change rather than the complete session. 2. Exclude tool results and tool arguments by default; require explicit opt-in when they are necessary. 3. Add secret redaction for API keys, authorization headers, tokens, passwords, private keys, connection strings, cookies, and environment values. 4. Redact sensitive paths, personal identifiers, and repository content unrelated to the review objective. 5. Require explicit user consent before searching private harness directories or exporting session history. 6. Prefer running `vet "goal"` without history when the task can be reviewed from the git diff alone. 7. Display a preview or summary of the data that will be exported and allow the user to cancel. 8. Document the receiving process, model provider, retention policy, logging behavior, and network destination. 9. Add configurable size, time, and message-range limits to prevent accidental export of an entire long-running session. 10. Treat session files as sensitive data and ensure that intermediate output is not persistently logged. ]]>
