T05 · Unauthorized Access and Privilege Escalation
- Location
lib/importers/local_system.py:23- Finding
Excessive Local-System Reconnaissance Outside the Declared Workspace Boundary
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
Soulsync is a real personalization skill, but it accesses and retains sensitive account and local-system profile data more broadly than its own privacy promises describe.
Review before installing. Use this only if you are comfortable letting the skill derive a personal profile from sensitive sources, and avoid optional imports such as Local System, YouTube, contacts, Gmail, or social exports unless you explicitly want that data processed. Do not keep OAuth credentials in a synced or committed workspace, and delete /tmp/soulsync plus .soulsync-state.json if you test it and want the retained profile artifacts removed.
lib/importers/local_system.py:23Excessive Local-System Reconnaissance Outside the Declared Workspace Boundary
lib/importers/contacts.py:147Sensitive Profile Data Stored in Predictable Temporary Files and Exposed Through Standard Output
lib/followup.py:73Ongoing Personalization Opt-Out Does Not Disable Passive Learning
lib/importers/twitter.py:19Twitter User Identifiers Disclosed to Community-Operated Nitter Instances
Credentials or environment variables flow to a network sink. This is a high-confidence indicator of credential exfiltration.
)
try:
with urllib.request.urlopen(req) as resp:
result = json.loads(resp.read())
return result.get("access_token")
except Exception:
Credentials or environment variables flow to a network sink. This is a high-confidence indicator of credential exfiltration.
)
try:
with urllib.request.urlopen(req) as resp:
result = json.loads(resp.read())
return result.get("access_token")
except Exception:
The README advertises imports from Gmail, Calendar, Contacts, Local System, social platforms, and other rich sources, but does not present a strong, explicit warning that these sources may expose highly sensitive personal, professional, and relationship data. In this context, insufficient disclosure is dangerous because users may consent without understanding the breadth of collection and inference, especially where local scans include shell history, apps, repositories, and bookmarks.
The README tells users to save credentials.json to the workspace and notes reuse of existing OAuth material and git credential stores. Workspaces are frequently synced, committed, or scanned by tools, so placing OAuth client material and potentially adjacent tokens in that location increases the chance of credential exposure or unintended reuse by other components. Given this skill's focus on importing personal data, credential compromise could grant broad access to email, calendar, contacts, or private repositories.
### Gmail & Calendar
Reuses existing OpenClaw Gmail OAuth if available. Otherwise:
1. Create OAuth credentials at [Google Cloud Console](https://console.cloud.google.com/apis/credentials)
2. Save `credentials.json` to your workspace
3. First run will prompt for browser auth
### GitHub
YouTube/Takeout analysis plus local Downloads/Desktop scanning is materially broader than the user-facing description suggests. Watch history and subscriptions can expose beliefs, health interests, and other sensitive traits, especially when discovered through automatic filesystem searches.
YouTube/Takeout analysis plus local Downloads/Desktop scanning is materially broader than the user-facing description suggests. Watch history and subscriptions can expose beliefs, health interests, and other sensitive traits, especially when discovered through automatic filesystem searches.
YouTube/Takeout analysis plus local Downloads/Desktop scanning is materially broader than the user-facing description suggests. Watch history and subscriptions can expose beliefs, health interests, and other sensitive traits, especially when discovered through automatic filesystem searches.
YouTube/Takeout analysis plus local Downloads/Desktop scanning is materially broader than the user-facing description suggests. Watch history and subscriptions can expose beliefs, health interests, and other sensitive traits, especially when discovered through automatic filesystem searches.
YouTube/Takeout analysis plus local Downloads/Desktop scanning is materially broader than the user-facing description suggests. Watch history and subscriptions can expose beliefs, health interests, and other sensitive traits, especially when discovered through automatic filesystem searches.
YouTube/Takeout analysis plus local Downloads/Desktop scanning is materially broader than the user-facing description suggests. Watch history and subscriptions can expose beliefs, health interests, and other sensitive traits, especially when discovered through automatic filesystem searches.
YouTube/Takeout analysis plus local Downloads/Desktop scanning is materially broader than the user-facing description suggests. Watch history and subscriptions can expose beliefs, health interests, and other sensitive traits, especially when discovered through automatic filesystem searches.
YouTube/Takeout analysis plus local Downloads/Desktop scanning is materially broader than the user-facing description suggests. Watch history and subscriptions can expose beliefs, health interests, and other sensitive traits, especially when discovered through automatic filesystem searches.
YouTube/Takeout analysis plus local Downloads/Desktop scanning is materially broader than the user-facing description suggests. Watch history and subscriptions can expose beliefs, health interests, and other sensitive traits, especially when discovered through automatic filesystem searches.
YouTube/Takeout analysis plus local Downloads/Desktop scanning is materially broader than the user-facing description suggests. Watch history and subscriptions can expose beliefs, health interests, and other sensitive traits, especially when discovered through automatic filesystem searches.
YouTube/Takeout analysis plus local Downloads/Desktop scanning is materially broader than the user-facing description suggests. Watch history and subscriptions can expose beliefs, health interests, and other sensitive traits, especially when discovered through automatic filesystem searches.
YouTube/Takeout analysis plus local Downloads/Desktop scanning is materially broader than the user-facing description suggests. Watch history and subscriptions can expose beliefs, health interests, and other sensitive traits, especially when discovered through automatic filesystem searches.
YouTube/Takeout analysis plus local Downloads/Desktop scanning is materially broader than the user-facing description suggests. Watch history and subscriptions can expose beliefs, health interests, and other sensitive traits, especially when discovered through automatic filesystem searches.
YouTube/Takeout analysis plus local Downloads/Desktop scanning is materially broader than the user-facing description suggests. Watch history and subscriptions can expose beliefs, health interests, and other sensitive traits, especially when discovered through automatic filesystem searches.
YouTube/Takeout analysis plus local Downloads/Desktop scanning is materially broader than the user-facing description suggests. Watch history and subscriptions can expose beliefs, health interests, and other sensitive traits, especially when discovered through automatic filesystem searches.
Broad trigger phrases for a data-collecting personalization skill risk accidental activation during ordinary conversation. Unintended activation is especially dangerous here because the skill can begin profiling, asking invasive questions, or initiating imports based on ambiguous user language.
The manifest limits file access to the workspace, but the skill writes data to /tmp/soulsync outside that boundary. Violating a stated storage boundary undermines user trust and can expose data to other local processes or weaker temporary-directory protections.
Using vague examples and 'etc.' for activation rules leaves too much room for over-triggering by the agent. For a sensitive skill, ambiguous triggers materially increase the chance of unsolicited collection and context hijacking.
Auto-triggering on the user's first message if profile files are empty can hijack unrelated conversations and start collecting profile data without a request about personalization. Because this skill handles sensitive personal information, unsolicited startup significantly raises privacy and autonomy concerns.
Local system inspection is not necessary to satisfy the stated purpose of agent personalization and introduces disproportionate data access. Reading shell history, installed apps, bookmarks, repos, or SSH config for 'personalization' violates data minimization and creates outsized exposure if mishandled.
The manifest claims imported raw data is never persisted, yet the instructions explicitly write importer JSON artifacts to /tmp/soulsync. Contradicting a core privacy assurance is dangerous because users may consent based on false non-persistence guarantees while sensitive derived or raw data is actually stored on disk.
No suspicious patterns detected.