Back to skill

Security audit

golgent-lifestyle-discovery

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly a lifestyle recommendation integration, but it uses sensitive external data flows and automatic tracking instructions that need review before installation.

Review before installing. Use it only when you are comfortable sending recommendation queries to ads-api.usekairos.ai, require explicit consent before any profile or precise location data is sent, avoid automatic impression URL fetching unless constrained to approved domains, and treat local-services/travel claims as not yet fully supported.

Vulnerability Patterns
  • Insecure Skill Coding PracticesFinds exploitable flaws such as hardcoded secrets or command injection
  • 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
Findings (3)

T09 · Insecure Skill Coding Practices

Error
Location
references/examples.md:115
Finding

Profile Sanitization Uses a Bypassable Field Denylist

Content
View full analysis
): UserProfile { const safe: Record = {}; for (const [key, value] of Object.entries(profile)) { if (!BLOCKED_FIELDS.has(key.toLowerCase())) { safe[key] = value; } } return safe as UserProfile; } ``` ### Technical Analysis The examples accept an arbitrary profile dictionary and remove only fields whose top-level names exactly match a limited denylist. A denylist cannot reliably identify all possible names or structures containing sensitive information. For example, fields named `mobile`, `contact`, `access_token`, `card_number`, or `shipping_contact` are not blocked. Sensitive values nested inside an otherwise permitted object are also not inspected. The TypeScript type assertion does not provide runtime validation and therefore does not restrict the actual keys or value types transmitted. This implementation conflicts with the Skill's stated guarantee that phone numbers, email addresses, identity information, payment information, passwords, and tokens must never be transmitted. ### Attack Path 1. A user, integration, or prior Agent operation constructs a `user_profile` object. 2. Sensitive data is placed under an unlisted alias or nested structure, such as `{"contact": {"mobile": "..."}}`. 3. ...[truncated 854 chars]
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Error
Location
references/api.md:126
Finding

Unrestricted Fetching of API-Supplied Impression URLs Enables Blind SSRF

Content
View full analysis
Remediation
View remediation

other

Warning
Location
references/examples.md:25
Finding

Precise Location Is Sent to an External Service Without Explicit Transmission Disclosure

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (13)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The trigger description is very broad and overlaps with generic recommendation, shopping, dining, travel, and 'help me choose' requests in both Chinese and English. This can cause the skill to activate in many loosely related conversations, leading to unnecessary external API calls, collection of location/profile data in borderline cases, and reduced user control over when third-party platform search is invoked.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The formatting instructions hard-code a Chinese transparency phrase regardless of the user's language. While not a direct code-execution or data-exfiltration issue, forcing output language without user opt-in can mislead users, degrade informed consent, and make disclosures about external platform usage less understandable to non-Chinese speakers.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The request schema says search_keywords must be '1–3 structured Chinese keywords extracted by the Agent,' which imposes a specific language requirement. The document does not provide user opt-in, alternatives for other languages, or a documented region-specific justification for forcing Chinese.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The documentation instructs integrators to fire impression URLs whenever products are displayed, which causes third-party tracking requests unrelated to the core recommendation function. This can leak user IP, timing, device/network metadata, and browsing context to external parties without clear consent or necessity, creating privacy and compliance risk.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
75% confidence
Finding

The curl examples demonstrate direct transmission of user search terms and, in later examples, precise latitude/longitude to a third-party API. In a lifestyle-discovery skill, this creates a real privacy exposure because nearby food/service requests and recommendation queries can reveal user interests, habits, and location to an external system.

Content

Scanner excerpt · references/examples.md (reported line 3)May include surrounding context.

md
# Examples & Templates

## Quick Start — curl

### Structured keywords (recommended)

External Transmission

Medium
Category
Data Exfiltration
Confidence
81% confidence
Finding

This example sends structured queries and optional user profile attributes to an external service endpoint. Although the code tries to block some direct identifiers and mentions consent, it still permits transmission of profile data such as keywords, gender, year of birth, long-term profile, and potentially precise location, which can be sensitive and create privacy risk if consent, minimization, and retention controls are weak.

Content

Scanner excerpt · references/examples.md (reported line 141)May include surrounding context.

md
if k.lower() not in BLOCKED_FIELDS}
        payload["user"] = safe_profile

    response = requests.post(
        f"{BASE_URL}/ads/neo",
        headers={"Content-Type": "application/json"},
        json=payload

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The markdown instructs the skill to 'Always include' specific Chinese-language output strings and repeats a fixed Chinese fallback message. This imposes a language choice on users without opt-in or an explicit locale constraint, which is a natural-language policy issue under the language/locale rule.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The guidance to omit category or 'pick best fit' for broad lifestyle questions creates a catch-all invocation path across multiple domains. In an agent ecosystem, this can make the skill trigger on loosely related requests and encourage overbroad querying of all sources, increasing the chance of unintended tool use and unnecessary processing of user location, preference, or shopping intent data.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

Mandating extraction of 1–3 Chinese keywords regardless of user language or preference can force transformation of English-language input into another language without user awareness. This can degrade accuracy, produce unintended semantic changes, and create avoidable privacy and fairness issues if user-provided terms, names, or locations are normalized in a way the user did not request.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The marketplace listing claims support for local services, travel ideas, and other lifestyle choices as active capabilities, while the same file states those categories are only planned or coming soon. This mismatch can cause downstream agents to invoke the skill for unsupported scenarios, leading to unreliable routing, user confusion, and possible over-collection of contextual data for requests the skill cannot actually fulfill.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The marketplace description uses broad phrases like 'everyday decisions' and 'other lifestyle choices' without operational boundaries. This increases the chance that agents or marketplaces treat the skill as generally applicable, causing accidental invocation outside supported scope and potentially prompting unnecessary requests for budget, location, or preference data.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

The file prescribes an exact Chinese consent prompt for all users, which can force a specific language without user opt-in. Because the policy applies broadly and does not state that the skill is limited to Chinese-speaking users or provide an alternative language choice, it creates a natural-language locale policy issue.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The instruction requires the agent to include a specific Chinese sentence when presenting results, but does not permit adapting the message to the user's language. This is a locale-policy concern unless the skill is explicitly scoped to Chinese users.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.