Back to skill

Security audit

OpenQuok TikTok Slideshow

Security checks across malware telemetry and agentic risk

Overview

The skill is mostly a disclosed TikTok slideshow automation tool, but it includes account warm-up and US-audience targeting guidance that may encourage platform manipulation before automated posting.

Review the account warm-up and geo-targeting advice carefully before installing. Use this only for accounts and content workflows that comply with platform rules, keep sensitive prompts/reference images out of remote providers, avoid storing long-lived API keys in shared config files, and keep the default private-draft posting flow unless you intentionally want OpenQuok to create scheduled posts.

SkillSpector

By NVIDIA
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • MCP Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (12)

Lp3

Medium
Category
MCP Least Privilege
Confidence
83% confidence
Finding
The skill explicitly relies on networked operations such as image-provider API calls, browsing/research steps, and posting through the `openquok` CLI, yet no permissions are declared in the metadata. This creates a transparency and policy-enforcement gap: an agent or user may authorize/install the skill without understanding that it can transmit data externally and publish content to third-party platforms.

Natural-Language Policy Violations

Medium
Confidence
74% confidence
Finding
The prerequisite text directs users to a guide about warming up a TikTok account to reach a US audience, embedding a region-specific growth tactic without presenting locale choice or necessity. In context, this can steer users toward manipulating platform distribution behavior and may encourage practices that conflict with platform rules or user expectations.

Natural-Language Policy Violations

Medium
Confidence
81% confidence
Finding
The onboarding section instructs users to follow a US-audience-specific warm-up process before posting, again normalizing a geo-targeting tactic without opt-in or justification. Because it is framed as part of the recommended workflow, it increases the chance that operators use account-conditioning behavior intended to influence platform reach rather than standard setup.

Ssd 2

Medium
Confidence
90% confidence
Finding
Referencing account warm-up tactics involving device setup, VPN/network consistency, and normal browsing behavior to reach a US audience crosses from ordinary content operations into advice that can facilitate evasion of platform integrity controls. In a skill designed to automate AI-content production and posting, this context makes the guidance more dangerous because it can scale deceptive account preparation and reduce detection of inauthentic behavior.

Ssd 2

Medium
Confidence
86% confidence
Finding
Repeatedly encouraging pre-posting warm-up of new TikTok accounts before publishing AI slideshows suggests a method for conditioning accounts to avoid restrictions or improve reach in ways unrelated to legitimate technical setup. Within a posting-automation skill, such repeated guidance materially increases misuse potential by pairing content generation with tactics that may circumvent moderation or anti-spam heuristics.

External Transmission

Medium
Category
Data Exfiltration
Content
const blob = new Blob([buf], { type: 'image/png' });
      form.append('image[]', blob, path.basename(ref));
    }
    const res = await fetch('https://api.openai.com/v1/images/edits', {
      method: 'POST',
      headers: { Authorization: `Bearer ${apiKey}` },
      body: form,
Confidence
97% confidence
Finding
fetch('https://api.openai.com/v1/images/edits', { method: 'POST'

External Transmission

Medium
Category
Data Exfiltration
Content
return;
  }

  const res = await fetch('https://api.openai.com/v1/images/generations', {
    method: 'POST',
    headers: {
      Authorization: `Bearer ${apiKey}`,
Confidence
93% confidence
Finding
fetch('https://api.openai.com/v1/images/generations', { method: 'POST'

External Transmission

Medium
Category
Data Exfiltration
Content
async function generateReplicate(prompt, outPath) {
  const replicateModel = model || 'black-forest-labs/flux-1.1-pro';

  const createRes = await fetch('https://api.replicate.com/v1/predictions', {
    method: 'POST',
    headers: {
      Authorization: `Token ${apiKey}`,
Confidence
94% confidence
Finding
fetch('https://api.replicate.com/v1/predictions', { method: 'POST'

External Transmission

Medium
Category
Data Exfiltration
Content
const blob = new Blob([buf], { type: 'image/png' });
      form.append('image[]', blob, path.basename(ref));
    }
    const res = await fetch('https://api.openai.com/v1/images/edits', {
      method: 'POST',
      headers: { Authorization: `Bearer ${apiKey}` },
      body: form,
Confidence
97% confidence
Finding
https://api.openai.com/

External Transmission

Medium
Category
Data Exfiltration
Content
return;
  }

  const res = await fetch('https://api.openai.com/v1/images/generations', {
    method: 'POST',
    headers: {
      Authorization: `Bearer ${apiKey}`,
Confidence
93% confidence
Finding
https://api.openai.com/

External Transmission

Medium
Category
Data Exfiltration
Content
// ─── Provider: Stability AI ─────────────────────────────────────────
async function generateStability(prompt, outPath) {
  const engineId = model || 'stable-diffusion-xl-1024-v1-0';
  const res = await fetch(`https://api.stability.ai/v1/generation/${engineId}/text-to-image`, {
    method: 'POST',
    headers: {
      Authorization: `Bearer ${apiKey}`,
Confidence
92% confidence
Finding
https://api.stability.ai/

External Transmission

Medium
Category
Data Exfiltration
Content
async function generateReplicate(prompt, outPath) {
  const replicateModel = model || 'black-forest-labs/flux-1.1-pro';

  const createRes = await fetch('https://api.replicate.com/v1/predictions', {
    method: 'POST',
    headers: {
      Authorization: `Token ${apiKey}`,
Confidence
94% confidence
Finding
https://api.replicate.com/

VirusTotal

VirusTotal findings are pending for this skill version.

View on VirusTotal

Static analysis

Detected: suspicious.dangerous_exec

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
scripts/post-via-openquok.js:55