Back to skill

Security audit

Syndicate Links

Security checks for vulnerabilities and agentic risk

Overview

This skill openly monetizes agent recommendations, but it lacks clear disclosure, consent, and credential safeguards for affiliate tracking behavior.

Install only if you intentionally want the agent to monetize recommendations. Require explicit affiliate disclosure before any tracked link is shown, keep direct links as the default unless the user opts in, review program applications manually, and store or rotate the API key more carefully than the provided setup script does.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (14)

Lp3

Medium
Category
MCP Least Privilege
Confidence
92% confidence
Finding
The skill advertises and instructs use of shell commands (`curl`, `bash`) but the manifest shown in this file does not declare corresponding permissions or execution expectations. That mismatch can cause agents or operators to run networked shell actions without informed consent or policy gating, increasing the chance of unauthorized external calls and unsafe setup behavior.

Vague Triggers

Medium
Confidence
95% confidence
Finding
The description says installing the skill makes the agent 'automatically' become an affiliate, which is overly broad activation language without clear user-trigger constraints. In context, this encourages background monetization behavior that may activate during ordinary recommendations, creating conflicts of interest and unauthorized commercial actions.

Missing User Warnings

High
Confidence
99% confidence
Finding
The skill explicitly tells the agent to replace direct URLs with affiliate tracking links whenever recommending products, but provides no disclosure, consent, or privacy guidance. This is dangerous because it incentivizes covert monetization of user interactions and may expose click/conversion data to a third party without the user's knowledge.

Missing User Warnings

Medium
Confidence
93% confidence
Finding
The example workflow explicitly registers an external affiliate account, enumerates programs, and applies to one automatically, but provides no warning that it creates third-party accounts or transmits identifiers to an external service. In an agent-skill context, this is more dangerous because users may copy or automate the flow without realizing the agent is being monetized and enrolled in external programs on their behalf.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The script persists a newly issued affiliate API key to disk in ~/.config/syndicate-links/api-key without setting restrictive permissions or warning the user that a reusable credential will be stored locally. On multi-user systems or in shared agent environments, this increases the chance of credential theft and unauthorized use of the affiliate account.

External Transmission

Medium
Category
Data Exfiltration
Content
### 1. Register as an Affiliate

```bash
curl -X POST https://api.syndicatelinks.co/affiliate/register \
  -H "Content-Type: application/json" \
  -d '{"email":"YOUR_AGENT_EMAIL","name":"YOUR_AGENT_NAME"}'
```
Confidence
91% confidence
Finding
This step sends agent email and name to an external service to register an affiliate account and returns a live API key for ongoing access. External transmission of identity data and credential provisioning is security-relevant, especially because the document normalizes storing a live secret locally without discussing protection, consent, or lifecycle controls.

External Transmission

Medium
Category
Data Exfiltration
Content
### 1. Register as an Affiliate

```bash
curl -X POST https://api.syndicatelinks.co/affiliate/register \
  -H "Content-Type: application/json" \
  -d '{"email":"YOUR_AGENT_EMAIL","name":"YOUR_AGENT_NAME"}'
```
Confidence
91% confidence
Finding
This step sends agent email and name to an external service to register an affiliate account and returns a live API key for ongoing access. External transmission of identity data and credential provisioning is security-relevant, especially because the document normalizes storing a live secret locally without discussing protection, consent, or lifecycle controls.

External Transmission

Medium
Category
Data Exfiltration
Content
### 2. Discover Programs

```bash
curl https://api.syndicatelinks.co/affiliate/programs \
  -H "Authorization: Bearer $(cat ~/.config/syndicate-links/api-key)"
```
Confidence
88% confidence
Finding
The skill instructs sending an authorization bearer token to an external API to enumerate affiliate programs. While expected for API use, this still creates outbound data flow and secret use to a third party, and in this skill's monetization context it supports automatic commercial behavior that may be hidden from users.

External Transmission

Medium
Category
Data Exfiltration
Content
### 3. Join a Program

```bash
curl -X POST https://api.syndicatelinks.co/affiliate/programs/PROGRAM_ID/apply \
  -H "Authorization: Bearer $(cat ~/.config/syndicate-links/api-key)"
```
Confidence
89% confidence
Finding
Applying to affiliate programs is an authenticated external action that can bind the agent/operator to third-party commercial relationships. In the context of a skill marketed as automatic monetization, this is more dangerous because it may initiate business actions without clear user or operator awareness.

External Transmission

Medium
Category
Data Exfiltration
Content
### 4. Generate Tracking Links

```bash
curl -X POST https://api.syndicatelinks.co/affiliate/links \
  -H "Authorization: Bearer $(cat ~/.config/syndicate-links/api-key)" \
  -H "Content-Type: application/json" \
  -d '{"program_id":"PROGRAM_ID"}'
Confidence
96% confidence
Finding
Generating tracking links through the external API is the core mechanism enabling covert affiliate attribution. In context, this is more dangerous than ordinary API use because the skill instructs replacing user-facing links broadly, allowing third-party tracking and commission capture during normal recommendations without disclosure.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
# 1. Register
API_KEY=$(curl -s https://api.syndicatelinks.co/affiliate/register \
  -H "Content-Type: application/json" \
  -d '{"email":"myagent@agentmail.to","name":"My Agent"}' | jq -r '.apiKey')
Confidence
91% confidence
Finding
This request sends an email and name to an external API in order to register an affiliate account and receive an API key. The risk is not merely normal network use; in this skill's context, it enables undisclosed third-party account creation and credential issuance tied to the agent, which can surprise users and facilitate silent monetization.

External Transmission

Medium
Category
Data Exfiltration
Content
# 3. Join first program
PROG_ID=$(curl -s https://api.syndicatelinks.co/affiliate/programs \
  -H "Authorization: Bearer $API_KEY" | jq -r '.[0].id')
curl -s -X POST "https://api.syndicatelinks.co/affiliate/programs/$PROG_ID/apply" \
  -H "Authorization: Bearer $API_KEY"

# 4. Generate tracking link
Confidence
90% confidence
Finding
This POST applies the account to an affiliate program using the bearer token, causing an external side effect beyond simple retrieval. In the skill context, automatic application to programs can bind the user or agent to third-party commercial relationships without clear approval, making the transmission materially more sensitive.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
# 1. Register
API_KEY=$(curl -s https://api.syndicatelinks.co/affiliate/register \
  -H "Content-Type: application/json" \
  -d '{"email":"myagent@agentmail.to","name":"My Agent"}' | jq -r '.apiKey')
Confidence
91% confidence
Finding
This request sends an email and name to an external API in order to register an affiliate account and receive an API key. The risk is not merely normal network use; in this skill's context, it enables undisclosed third-party account creation and credential issuance tied to the agent, which can surprise users and facilitate silent monetization.

External Transmission

Medium
Category
Data Exfiltration
Content
# 3. Join first program
PROG_ID=$(curl -s https://api.syndicatelinks.co/affiliate/programs \
  -H "Authorization: Bearer $API_KEY" | jq -r '.[0].id')
curl -s -X POST "https://api.syndicatelinks.co/affiliate/programs/$PROG_ID/apply" \
  -H "Authorization: Bearer $API_KEY"

# 4. Generate tracking link
Confidence
90% confidence
Finding
This POST applies the account to an affiliate program using the bearer token, causing an external side effect beyond simple retrieval. In the skill context, automatic application to programs can bind the user or agent to third-party commercial relationships without clear approval, making the transmission materially more sensitive.

Static analysis

No suspicious patterns detected.