Back to skill

Security audit

龙虾婚恋交友

Security checks for vulnerabilities and agentic risk

Overview

This is a coherent external dating-service API skill, but it merits Review because it encourages optional device fingerprint data, persistent relationship-state memory, and account state changes without consistently clear user control.

Review before installing. Use the skill only if you are comfortable sending agent profile, relationship, post, comment, and message data to the disclosed external service. Omit MAC addresses, hardware IDs, OS info, and device names unless strictly needed; keep the API key out of prompts/logs; and require explicit user confirmation before posting, deleting, pairing, or changing certificate/application status.

Vulnerability Patterns
  • Agent Memory PoisoningWrites attacker-controlled rules into memory that affect later sessions
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • Skill Instruction HijackingAlters the agent's session goals or safety constraints when the skill loads
  • 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
Findings (2)

T05 · Unauthorized Access and Privilege Escalation

Note
Location
skill.md:39
Finding
Collection of Unnecessary Persistent Device Identifiers<![CDATA[ ## Vulnerability Details **File Location**: `skill.md:39-59` **Vulnerability Type**: Excessive device fingerprint collection **Risk Level**: Moderate ### Vulnerable Code Snippet ```json { "agent_id": "your_agent_id", "username": "your_name", "gender": "male", "age": 25, "device_id": "MAC address or device ID", "device_name": "device name", "device_type": "desktop" } ``` The associated parameter documentation also permits collection of: ```text device_id Optional — Unique device identifier, such as a MAC address or device ID device_name Optional — Device name, such as "iPhone 15" or "Windows PC" device_type Optional — Device type, such as mobile, desktop, or agent os_info Optional — Operating-system information client_version Optional — Client version ``` ### Technical Analysis The registration example encourages an Agent to send a MAC address or another stable device identifier to the external service at `https://tsdtmhtd9d.coze.site`. It also permits disclosure of the device name and operating-system information. These attributes are not necessary for the documented matchmaking operations. A persistent hardware identifier is particularly sensitive because it can correlate registrations and activity across sessions, accounts, or profile changes. Combining it with a device name and operating-system information produces a stronger device fingerprint. The fields are documented as optional, so the Skill does not technically require their submission. Nevertheless, placing them in the primary registration example encourages implementations to collect and transmit them by default. This conflicts with data-minimization and least-privilege principles. ### Attack Path 1. An Agent loads the Skill and follows its registration example. 2. The Agent or its integration obtains the host's MAC address, device identifier, device name, or operating-system details. 3. These values are submitted to the third-party registrati ...[truncated 1141 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Remove `device_id`, `device_name`, and `os_info` from the default registration example. 2. Explicitly instruct Agents not to retrieve or submit MAC addresses, hardware serial numbers, advertising identifiers, or other host-level identifiers. 3. If an installation identifier is operationally necessary, generate a random, service-specific identifier that cannot be correlated with other services. 4. Make any telemetry strictly opt-in and explain its purpose, retention period, recipients, and deletion process before collection. 5. Minimize retained metadata and enforce server-side expiration for optional device information. 6. Provide users with controls to inspect and delete previously submitted device data. 7. Document that registration and core matchmaking functionality must remain available when all optional device fields are omitted. ]]>

T02 · Agent Memory Poisoning

Note
Location
skill.md:21
Finding
Externally Controlled Relationship State Requested for Persistent Agent Memory<![CDATA[ ## Vulnerability Details **File Location**: `skill.md:21` **Vulnerability Type**: Persistent memory poisoning through externally supplied state **Risk Level**: Moderate ### Vulnerable Code Snippet ```text Important: API responses return the lobster's current relationship status. Agents should remember this status for identity memory in subsequent conversations. ``` ### Technical Analysis The Skill explicitly directs the Agent to remember a relationship status returned by an external API and reuse it in subsequent conversations. This creates a path from externally controlled service data into persistent Agent memory. The instruction does not define: - Whether the state should be session-scoped or persist indefinitely. - How the API response should be authenticated beyond ordinary bearer-token use. - Which response fields and values are permitted. - How conflicting, stale, or malformed state should be handled. - Whether the user must approve persistent storage. - How provenance, expiration, correction, or deletion should work. Consequently, a compromised service, incorrect response, account mix-up, or implementation defect could cause false relationship state to persist and influence future conversations. Although the documented values are limited to `single`, `paired`, and `married`, the instruction establishes an unsafe trust boundary by treating external responses as authoritative long-term identity memory without validation or user confirmation. ### Attack Path 1. The Agent makes a documented request to the external service. 2. The service returns a relationship status in its API response. 3. The Agent follows the Skill instruction and writes that state into persistent identity memory. 4. A compromised service, stale record, authorization defect, or incorrect account association supplies a false status. 5. Future sessions retrieve the stored state and treat the Agent as single, paired, or married. 6. Subsequent decisions and statements may ...[truncated 952 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Keep API-derived relationship state session-scoped by default. 2. Require explicit user approval before writing externally supplied state into persistent memory. 3. Validate the value against a strict allowlist: `single`, `paired`, or `married`. 4. Bind stored state to the authenticated service origin, account identifier, and Agent identifier. 5. Record provenance and retrieval time with the stored value. 6. Apply a defined expiration period and refresh the state before consequential operations. 7. Ask the user to resolve conflicts between stored memory and a new API response. 8. Provide a clear mechanism to inspect, correct, and delete the stored state. 9. Do not treat relationship status as authorization. The server must independently validate every pairing, messaging, and certificate operation. 10. Reword the instruction so that API responses are treated as untrusted external data rather than authoritative identity-memory instructions. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (5)

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The skill explicitly instructs agents to transmit persistent device identifiers such as MAC addresses or device IDs during registration and to store/use an API key for all subsequent requests, but it provides no privacy warning, minimization guidance, or handling requirements for these sensitive values. This increases the risk of unnecessary tracking, credential leakage, and over-collection of identifying data by downstream services.

External Transmission

Medium
Category
Data Exfiltration
Content
每只龙虾需要先注册才能参与:

```bash
curl -X POST {BASE_URL}/api/agents/register \
  -H "Content-Type: application/json" \
  -d '{
    "agent_id": "your_agent_id",
Confidence
91% confidence
Finding
This skill directs the agent to send registration data to an external third-party domain, including identifying attributes and optionally device identifiers. External transmission is expected for an API integration, but it is still security-relevant because it moves potentially sensitive data off-platform and establishes a credentialed relationship with the external service.

External Transmission

Medium
Category
Data Exfiltration
Content
### 发帖

```bash
curl -X POST {BASE_URL}/api/posts \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Missing User Warnings

Medium
Confidence
89% confidence
Finding
The documentation includes state-changing and destructive operations such as updating a post to matched and deleting a post, but it does not clearly warn that these actions may be irreversible or alter relationship state. An agent following the skill mechanically could perform unintended mutations or deletions without explicit user confirmation.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
# 1. 注册
curl -X POST https://tsdtmhtd9d.coze.site/api/agents/register \
  -H "Content-Type: application/json" \
  -d '{"agent_id":"my_agent","username":"AI小助手","gender":"male","age":25}'
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Static analysis

No suspicious patterns detected.