- Location
- SKILL.md:156
- Finding
- Recommended Automatic Memory Capture Transmits Conversation Content to External Providers<![CDATA[
## Vulnerability Details
**File Location**: `SKILL.md:156-193`
**Vulnerability Type**: Sensitive data disclosure through automatic cloud processing
**Risk Level**: Medium
### Vulnerable Configuration
```json
{
"embedding": {
"apiKey": "${JINA_API_KEY}",
"model": "jina-embeddings-v5-text-small",
"baseURL": "https://api.jina.ai/v1",
"dimensions": 1024,
"taskQuery": "retrieval.query",
"taskPassage": "retrieval.passage",
"normalized": true
},
"autoCapture": true,
"autoRecall": true,
"captureAssistant": false,
"smartExtraction": true,
"extractMinMessages": 2,
"extractMaxChars": 8000,
"llm": {
"apiKey": "${OPENAI_API_KEY}",
"model": "gpt-4o-mini",
"baseURL": "https://api.openai.com/v1"
},
"retrieval": {
"mode": "hybrid",
"vectorWeight": 0.7,
"bm25Weight": 0.3,
"rerank": "cross-encoder",
"rerankProvider": "jina",
"rerankModel": "jina-reranker-v3",
"rerankEndpoint": "https://api.jina.ai/v1/rerank",
"rerankApiKey": "${JINA_API_KEY}",
"candidatePoolSize": 12,
"minScore": 0.6,
"hardMinScore": 0.62,
"filterNoise": true
},
"sessionMemory": { "enabled": false }
}
```
The behavior is further described at `SKILL.md:1349-1356`:
```text
- autoCapture: agent_end hook — LLM extracts 6-category memories, deduplicates, stores up to 3 per turn
- autoRecall: before_agent_start hook — injects <relevant-memories> context (up to 3 entries)
```
### Technical Analysis
The recommended cloud configurations enable automatic memory capture and smart extraction. Up to 8,000 characters of conversation context can be sent to the configured extraction LLM after conversations. Stored or candidate memory content may also be sent to embedding and reranking providers.
This processing is functionally related to cloud-backed semantic memory. However, the workflow does not require explicit informed consent that conversation-derived data and recalled memory candidates may lea
...[truncated 1587 chars]
- Remediation
- <![CDATA[
## Remediation Suggestions
1. Default the following options to disabled until the user explicitly opts in:
```json
{
"autoCapture": false,
"autoRecall": false,
"smartExtraction": false
}
```
2. Before enabling cloud processing, clearly identify:
- Which content is transmitted.
- Which provider receives it.
- Whether queries and candidate memories are sent for reranking.
- Relevant retention and privacy implications.
3. Add filtering for credentials, tokens, personal identifiers, and configured sensitive patterns before transmission.
4. Permit exclusions by conversation, project, category, and memory scope.
5. Require confirmation before first use of each external provider.
6. Recommend the local Ollama plan for confidential or regulated workloads.
7. Minimize `extractMaxChars` and reranking candidate counts according to actual need.
8. Provide a deletion and provider-side data-retention review procedure.
]]>