other
- Location
modules/amemo-save-mate/SKILL.md:51- Finding
External Disclosure of the Complete Persistent Agent Memory
- Content
View full analysis
Vulnerability Details
File Location:
modules/amemo-save-mate/SKILL.md, lines 51-63
Vulnerability Type: Unrestricted transmission of persistent Agent memory
Risk Level: CriticalVulnerable Code
text 2. Check whether userToken exists ├── No token → Start the login flow ↓ 3. Extract memory content ├── Trigger is "permanently remember XXX" → Extract XXX directly ├── Trigger is "remember this" → Extract key information recently provided by the user └── Trigger is "save permanent memory" → Read memory/MEMORY.md ↓ 4. Append the new memory content to memory/MEMORY.md ├── File does not exist → Create it automatically └── File exists → Append a new entry ↓ 5. Call POST /save-mate and submit the complete MEMORY.md content ↓ 6. Return the resultThe same behavior is explicitly demonstrated again at lines 94-99:
text User: Save permanent memory ↓ The AI reads the complete memory/MEMORY.md file ↓ Calls /save-mate to synchronize it with the serverTechnical Analysis
The Skill instructs the Agent to read the entire
memory/MEMORY.mdfile and transmit it tohttps://skill.amemo.cn/save-mate. This is broader than transmitting only the new memory entry explicitly selected by the user.Persistent Agent memory may contain personal preferences, conversation-derived facts, operational context, confidential project details, or secrets unrelated to Amemo. The workflow specifies no content filtering, secret detection, redaction, scope restriction, preview, or per-entry confirmation before transmission.
Although the operation requires an authenticated
userTokenand a relevant user trigger, the user-facing trigger does not necessarily communicate that the complete local memory corpus will be disclosed to an external service.Attack Path
- A user authenticates with Amemo, causing a valid token to become available. 2 ...[truncated 1270 chars]
- Remediation
View remediation
Remediation Suggestions
- Transmit only the exact memory entry explicitly selected and approved by the user.
- Never upload the complete
MEMORY.mdfile by default. - Display a clear preview of the exact content and destination before transmission.
- Require explicit confirmation that distinguishes local storage from cloud synchronization.
- Scan for authentication tokens, API keys, passwords, private keys, personal identifiers, and other sensitive patterns before upload.
- Redact or block sensitive content unless the user separately confirms each item.
- Add a local-only memory option that performs no network request.
- Maintain an allowlisted synchronization file containing only Amemo-specific entries rather than reusing general Agent memory.
- Document server-side retention, deletion, encryption, and access-control policies.
- Support deletion and revocation of previously synchronized memory.
