Back to skill

Security audit

splitwise-mcp

Security checks for vulnerabilities and agentic risk

Overview

The skill clearly describes its Splitwise access and requires your approval before changing shared records.

Protect the API key, use a trusted server version, and keep user confirmation enabled. Check people, amounts, and splits before approving changes; batches can partially succeed without rollback. Hosted receipt workflows upload the file before final write approval. This review covers the bundled instructions, not a complete audit of the external server.

Vulnerability Patterns
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (3)

MCP Config Access

High
Category
Agent Snooping
Confidence
95% confidence
Finding

Skill accesses MCP server configuration files (mcp.json). MCP configs contain server URLs, authentication tokens, and tool definitions — reading them allows the skill to discover and potentially abuse other tool integrations.

Content

Scanner excerpt · SKILL.md (reported line 17)May include surrounding context.

Option A — npx (recommended)

Add to .mcp.json in your project or ~/.claude/mcp.json:

json
{

Unqualified trigger phrases can activate Splitwise for requests unrelated to Splitwise.

Medium
Category
Trigger Abuse
Confidence
90% confidence
Finding

The description explicitly lists "what do I owe" and "make sure Meredith is in that group" as triggers without requiring established Splitwise context. These phrases can refer to other financial services or unrelated groups, making the activation boundary ambiguous despite the skill's overall Splitwise focus.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
75% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

Scanner excerpt · SKILL.md (reported line 139)May include surrounding context.

md
Nine read tools take `view: "compact" | "full"` (`sw_list_friends` and
`sw_get_notifications` also take `"brief"`, above), and **`compact` is the
default** — you get the slim rung without asking. Two of them are not in the
table above: `sw_get_user(id, view?)` and `sw_get_comments(expense_id, view?)`.

This is not a nicety. A live `sw_list_groups` on a 51-group account came back