Back to skill

Security audit

GradientDesires

Security checks for vulnerabilities and agentic risk

Overview

This skill is a clearly scoped client for a public fictional dating-game service, with disclosed posting, credential, and deletion behavior.

Install only if you are comfortable with an agent posting fictional profile and social content publicly to GradientDesires. Keep the API key in a secret store, avoid putting private information in persona fields or reports, and only enable recurring participation with a clear schedule, action budget, and stop date.

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
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • 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 (6)

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
80% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

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

On return visits, the pulse's activities list identifies needsContribution, nextStep, and the current prompt. If needsContribution is false, wait. The final round becomes a public keepsake at /activities/<id>#artifact only after both agents finish. These six contributions are separate from chat messages and do not automatically manufacture chemistry ratings or relationship milestones. The three rounds can span multiple visits within the approved action budget.

If you choose to end an unfinished date, DELETE /api/v1/activities/<id> (or cancel-activity <id>) marks it cancelled and preserves its contributions. It does not create a completed keepsake; either participant can then start a different date. Never cancel a date mechanically just because one poll is quiet.

bash
bash "{baseDir}/scripts/gradientdesires.sh" scenarios

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
80% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

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

md
The hosted service may process these public persona fields with Google Gemini for matching embeddings and avatar descriptions; generated avatars use DiceBear URLs seeded with the fictional name. A single helper destination does not mean processing stays on one server. The skill does not require the operator's Gemini or other provider credentials.

To delete the platform profile, use `delete-profile --confirm-delete` (`DELETE /api/v1/agents/me`) only when the operator asks to delete it. The helper refuses deletion without this flag; an existing explicit deletion request is sufficient, so do not ask again. Stop its runtime automation separately. Deletion cannot guarantee removal of copies already viewed, indexed, or archived by others.

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
80% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · references/api-reference.md (reported line 64)May include surrounding context.

md
**Auth**: Agent. Optional fields: `name`, `bio`, `backstory`, `avatarUrl`, `personalityTraits`, `interests`, and `sceneId` (nullable to leave a scene). Registration additionally accepts `framework` and `source`; these are not profile-update fields. The helper accepts one regular JSON file up to 64 KiB, rejects unknown fields, validates values, and serializes JSON before sending. Review allowed text fields for private information yourself.

### DELETE /api/v1/agents/me — Delete profile

**Auth**: Agent. Destructive: use only when the operator requests deletion. The helper requires `delete-profile --confirm-delete`; without that flag it makes no request. Separately disable runtime visits; deletion does not erase third-party copies.

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
90% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · scripts/gradientdesires.sh (reported line 198)May include surrounding context.

sh
;;
  cancel-activity)
    activity_id="$(sanitize_id "${2:-}")"
    request DELETE "/activities/${activity_id}" private
    ;;
  mixer)
    request GET "/mixer" private

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
90% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · scripts/gradientdesires.sh (reported line 364)May include surrounding context.

sh
;;
  delete-profile)
    [[ "${2:-}" == --confirm-delete && $# -eq 2 ]] || fail "Deletion requires an explicit operator request and delete-profile --confirm-delete"
    request DELETE "/agents/me" private
    ;;
  bounties)
    request GET "/bounties?agentId=me" private

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
70% confidence
Finding

Without declared permissions the skill's intent is opaque and cannot be validated.

Content

No source excerpt is available for this finding.