Back to skill

Security audit

CueEdit: Instagram Auto DM & Comment Replies

Security checks for vulnerabilities and agentic risk

Overview

CueEdit’s account access and messaging automation match its stated purpose, with clear user approval rules and no evidence of hidden activity.

Connect only accounts you manage and approve the exact messages, targets and recipient counts before sending. CLI writes happen immediately when invoked. Auto DM rules continue until paused, so review active rules separately when disconnecting the assistant. Keep API keys out of chat and retain the default API destination unless intentionally configuring a trusted alternative.

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 (1)

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/cueedit.mjs
Finding

Live publishing and destructive changes lack an enforced approval gate

Content
View full analysis

Impact

A premature or unapproved tool invocation can publish real content, send real messages, activate ongoing messaging automation, or cancel a pending post. These actions are not merely previews.

Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Rogue AgentSelf-Modification, Session Persistence
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
Findings (10)

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/cueedit.mjs accounts

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/cueedit.mjs posts --limit 5

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
node scripts/cueedit.mjs comments <media_id> --unhandled

Incomplete referenced artifact analysis

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
` (Instagram) or `--page <id>` (Facebook) when several are connected. Run `node scripts/cueedit.mjs help` for every flag. The full endpoint list is in [referenc

Self-Modification

High
Category
Rogue Agent
Confidence
85% confidence
Finding

Skill modifies its own code, configuration, or behavior at runtime. Self-modification enables an agent to escalate privileges, disable safety constraints, or install persistent backdoors.

Content

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

md
**Setup:** `codex mcp add cueedit --url https://www.cueedit.io/api/mcp/mcp --bearer-token-env-var CUEEDIT_API_KEY`

**Prompt**
> Use the cueedit skill. Read-only test on my Instagram @sanskarr.tiwari: list my 3 most recent posts with comment counts, show my Auto DM rules (keyword, post, status), and for the most recent post list unhandled comments and draft a public reply for each. Do not send or change anything.

**Calls:** `cueedit/list_accounts` → `list_posts` + `list_autodm_rules` → `list_comments`

Skill declares no tool scope ('permissions' or 'allowed-tools') but code capabilities were detected: env, network.

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.

Single-word triggers such as "instagram" and "reel" can activate the skill outside account-management requests.

Medium
Category
Trigger Abuse
Confidence
94% confidence
Finding

Although the description lists specific account-management tasks, it also explicitly triggers on broad standalone terms such as "instagram" and "reel". These can occur in informational questions or content discussions that do not request comment management, messaging, or automation.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
80% confidence
Finding

Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

Content

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

md
| `send_dm` / `send_facebook_dm` | `dm <comment_id> --text "…"` / `fb-dm …` |
| `create_autodm_rule` / `list_autodm_rules` / `set_autodm_rule_status` | `rule-create --dm "…" --keywords LINK --media <id>` / `rules` / `rule-status <id> active\|paused` |

Add `--account <id>` (Instagram) or `--page <id>` (Facebook) when several are connected. Run `node scripts/cueedit.mjs help` for every flag. The full endpoint list is in [references/api.md](references/api.md). Never print, log or echo the API key, and never ask the user to paste it into chat if they can set the env var themselves.

**No account yet?** Send the user to https://www.cueedit.io/signup?ref=skill to sign up, connect Instagram (and optionally a Facebook Page), then create the key or approve the OAuth screen.

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 · references/api.md (reported line 42)May include surrounding context.

  1. Per comment: POST …/reply then POST …/dm, ~6 s apart. Stop on the first 429/402/502 and report.
  2. Re-run step 2 — whatever is left is either expired or undeliverable.

curl

bash
KEY=ce_live_…
curl -s -H "Authorization: Bearer $KEY" https://www.cueedit.io/api/v1/media?limit=5

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 · references/api.md (reported line 71)May include surrounding context.

Every call is logged to facebook_activity_log.

bash
curl -s -H "Authorization: Bearer $KEY" "https://www.cueedit.io/api/v1/fb/posts?limit=5"
curl -s -H "Authorization: Bearer $KEY" "https://www.cueedit.io/api/v1/fb/posts/POST_ID/comments?unhandled=1"
curl -s -X POST -H "Authorization: Bearer $KEY" -H 'Content-Type: application/json' \
  -d '{"text":"here is the link: https://…"}' https://www.cueedit.io/api/v1/fb/comments/COMMENT_ID/dm

Static analysis

Detected: suspicious.env_credential_access

Environment variable access combined with network send.

Critical
Code
suspicious.env_credential_access
Location
scripts/cueedit.mjs:6