Back to skill

Security audit

Music Generation

Security checks for vulnerabilities and agentic risk

Overview

This is a straightforward SenseAudio API documentation skill; it sends user-provided music prompts and lyrics to the disclosed SenseAudio service when used.

Install only if you intend to send music prompts, lyrics, titles, style choices, and related generation metadata to SenseAudio's external API. Keep SENSEAUDIO_API_KEY in an environment variable or secret manager, do not paste real keys into shared logs or code, and avoid submitting confidential or regulated text unless you have approved SenseAudio's data handling terms.

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
  • 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 (12)

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

The skill clearly instructs users to send prompts and lyrics to a third-party service, but it does not prominently warn that potentially sensitive user content will leave the local environment and be processed externally. This creates a privacy and data-handling risk because users may unknowingly submit confidential or regulated text to the vendor.

Content

No source excerpt is available for this finding.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

Response (async): Returns task_id — poll with lyrics pending endpoint.

bash
curl -X POST https://api.senseaudio.cn/v1/song/lyrics/create \
  -H "Authorization: Bearer $SENSEAUDIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "一段慷慨激昂的歌词", "provider": "sensesong"}'

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

Response (async): Returns task_id — poll with lyrics pending endpoint.

bash
curl -X POST https://api.senseaudio.cn/v1/song/lyrics/create \
  -H "Authorization: Bearer $SENSEAUDIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "一段慷慨激昂的歌词", "provider": "sensesong"}'

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

Response (async): Returns task_id — poll with lyrics pending endpoint.

bash
curl -X POST https://api.senseaudio.cn/v1/song/lyrics/create \
  -H "Authorization: Bearer $SENSEAUDIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "一段慷慨激昂的歌词", "provider": "sensesong"}'

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

Response (async): Returns task_id — poll with lyrics pending endpoint.

bash
curl -X POST https://api.senseaudio.cn/v1/song/lyrics/create \
  -H "Authorization: Bearer $SENSEAUDIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "一段慷慨激昂的歌词", "provider": "sensesong"}'

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

Response (async): Returns task_id — poll with lyrics pending endpoint.

bash
curl -X POST https://api.senseaudio.cn/v1/song/lyrics/create \
  -H "Authorization: Bearer $SENSEAUDIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "一段慷慨激昂的歌词", "provider": "sensesong"}'

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

text

```bash
curl -X POST https://api.senseaudio.cn/v1/song/music/create \
  -H "Authorization: Bearer $SENSEAUDIO_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{

External Transmission

Medium
Category
Data Exfiltration
Confidence
70% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

md
BASE = "https://api.senseaudio.cn"

# Step 1: Generate lyrics
resp = requests.post(f"{BASE}/v1/song/lyrics/create",
    headers=HEADERS,
    json={"prompt": "一首关于夏天的流行歌曲", "provider": "sensesong"})
lyrics_data = resp.json()

External Transmission

Medium
Category
Data Exfiltration
Confidence
70% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

md
BASE = "https://api.senseaudio.cn"

# Step 1: Generate lyrics
resp = requests.post(f"{BASE}/v1/song/lyrics/create",
    headers=HEADERS,
    json={"prompt": "一首关于夏天的流行歌曲", "provider": "sensesong"})
lyrics_data = resp.json()

External Transmission

Medium
Category
Data Exfiltration
Confidence
70% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

md
lyrics_text = lyrics_data["data"][0]["text"]

# Step 2: Generate song
resp = requests.post(f"{BASE}/v1/song/music/create",
    headers=HEADERS,
    json={"model": "sensesong", "lyrics": lyrics_text, "style": "pop", "vocal_gender": "f"})
task_id = resp.json()["task_id"]

External Transmission

Medium
Category
Data Exfiltration
Confidence
70% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

md
lyrics_text = lyrics_data["data"][0]["text"]

# Step 2: Generate song
resp = requests.post(f"{BASE}/v1/song/music/create",
    headers=HEADERS,
    json={"model": "sensesong", "lyrics": lyrics_text, "style": "pop", "vocal_gender": "f"})
task_id = resp.json()["task_id"]

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
92% confidence
Finding

The documentation references a bearer API key and includes examples using it, but does not warn users to protect the secret from shell history, screenshots, logs, or pasted examples. While the sample uses an environment variable rather than a hardcoded real key, the omission still increases the chance of credential exposure through unsafe handling.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.