Back to skill

Security audit

social-media-title-insight

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly performs social-media title analysis, but it under-discloses external code loading, raw cookie forwarding, and unsafe dependency installation.

Install only if you are comfortable with reports loading code from Tailwind's CDN, account identifiers being sent to Tezign's API, and local run data being retained. Do not pass browser session cookies through --cookie; use local file analysis where possible and install dependencies in an isolated virtual environment rather than system Python.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (3)

T08 · Insecure Dependencies

Warning
Location
SKILL.md:17
Finding

Unpinned Dependencies and Unsafe System-Wide Package Installation

Content
View full analysis
=3.10" # dependencies = [ # "playwright", # ] # /// ``` ### Technical Analysis The installation instructions do not constrain `pandas` or `openpyxl` to reviewed versions or verify package hashes. The inline dependency declaration likewise allows the package resolver to retrieve any compatible version of `playwright`. Using `--break-system-packages` bypasses Python's externally managed environment protection. This may overwrite or conflict with operating-system-managed packages, unnecessarily expanding the effect of the Skill's dependency installation beyond an isolated project environment. This behavior introduces supply-chain and environment-integrity risks: 1. A compromised or unexpectedly modified dependency release may be selected at installation time. 2. Package installation code executes with the privileges of the user running the command. 3. System Python packages may be replaced or left in an inconsistent state. 4. A future dependency release could behave differently from the version originally reviewed. There is no evidence that the named packages are malicious. The vulnerability is the absence of version and integrity controls combined with instructions to bypass system package-management safeguards. ### Attack Path 1. An attacker compromises a permitted dependency release, its distribution account, or the package-resolution path. 2. The user follows the documented installation command or runs the inline dependency script. 3. The resolver downloads the malicious or unexpectedly changed package becau ...[truncated 870 chars]
Remediation
View remediation

T03 · Remote Payload Retrieval and Execution

Error
Location
scripts/data_tool.py:850
Finding

Generated Reports Execute Mutable Third-Party JavaScript

Content
View full analysis
{_esc(name)} 内容标题洞察报告 ``` The PDF conversion script opens the report in a browser and explicitly waits for network content: ```python with sync_playwright() as p: browser = p.chromium.launch() page = browser.new_page() page.goto(file_url, wait_until="networkidle") page.wait_for_timeout(2000) # wait for Tailwind CDN to load ``` ### Technical Analysis Every generated report references `https://cdn.tailwindcss.com`, a mutable remote JavaScript resource. The report does not pin a specific immutable asset, provide Subresource Integrity metadata, or enforce a restrictive Content Security Policy. The report DOM can contain user-supplied or potentially sensitive information, including: - Social-media titles - Account or brand names - Engagement metrics - Example high-performing titles - Qualitative insights Because the Tailwind CDN resource is JavaScript rather than static local CSS, code returned by the remote server executes inside the report document. That code can inspect and modify the report DOM and initiate outbound network requests. The effective executable payload may therefore change after the Skill package has been audited. The PDF conversion workflow compounds the issue by launching Chromium, loading the local report, allowing outbound access, waiting for network activity to become idle, and then waiting an additional two seconds specifically for the CDN resource. Escaping re ...[truncated 1552 chars]
Remediation
View remediation
``` 6. If a remote asset is strictly unavoidable, use an immutable versioned asset, apply Subresource Integrity, and restrict it with an appropriate Content Security Policy. Static local CSS remains preferable. 7. Configure Playwright request routing to abort HTTP and HTTPS requests before loading the report. 8. Test report and PDF generation in an offline environment to ensure no external resource is required. ]]>

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/data_tool.py:282
Finding

Undocumented Raw Cookie Transmission to an Inconsistently Documented API Host

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • 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 Least PrivilegeUnderdeclared Capability, Wildcard Permission, Missing Permission Declaration
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (15)

Tp4

High
Category
MCP Tool Poisoning
Confidence
97% confidence
Finding

If the associated script truly performs HTML-to-PDF conversion with a browser runtime, that is a materially broader capability than simple content analysis and should be declared because browser rendering can introduce additional file access, network fetch, or sandbox escape risk. Even if used only for report export, the mismatch weakens user consent and security review accuracy.

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
99% confidence
Finding

If the associated script truly performs HTML-to-PDF conversion with a browser runtime, that is a materially broader capability than simple content analysis and should be declared because browser rendering can introduce additional file access, network fetch, or sandbox escape risk. Even if used only for report export, the mismatch weakens user consent and security review accuracy.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The file implements HTML-to-PDF generation rather than the social media title analysis described in the skill manifest, creating a capability mismatch. Such hidden or undocumented functionality is dangerous because it can process arbitrary local HTML through a browser engine, introducing file rendering and network-fetch behavior that users and reviewers would not expect from this skill. The mismatch makes the skill context more suspicious, since report rendering is adjacent support functionality at best and not clearly constrained to the declared purpose.

Content

No source excerpt is available for this finding.

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
95% confidence
Finding

The skill documents capabilities that read local files, write artifacts, and call a remote API, but it declares no explicit tool scope or permissions boundary. That makes the effective privilege set ambiguous and increases the risk of overbroad access or accidental execution in environments that grant more capability than users expect.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The file mixes a few English trigger phrases with predominantly Chinese title, workflow, and instructions, effectively imposing a Chinese-language interaction model. There is no opt-in language choice or documented reason that the skill must operate only in Chinese, which fits the policy's language/locale violation criteria.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

The workflow supports account analysis without uploaded files by sending account identifiers to a third-party API, but it does not prominently warn users that this data leaves the local environment. That omission undermines informed consent and can create privacy, compliance, or contractual issues depending on the accounts being analyzed.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill includes a network-capable fetch_api path that reaches out to an external service and accepts an optional session cookie, even though the skill is primarily framed as title analysis over uploaded or pasted data. That expands the trust boundary from local analytics to remote data collection and can cause undisclosed transmission of account identifiers and potentially sensitive authentication material.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The API request path can send account identifiers and an optional Cookie header to a remote service with no visible warning or consent mechanism in this file. This is dangerous because users may unknowingly transmit private account context or reusable session material beyond the local analysis boundary.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
90% confidence
Finding

The tool persists uploaded, pasted, or fetched data to local cache and report files under a run directory without a clear warning. For analytics data that may contain account content, engagement metrics, or other sensitive business information, silent persistence increases the chance of unintended retention and later disclosure to other local users or processes.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
96% confidence
Finding

cmd_compute passes user-controlled input directly into df.eval(expr), giving the skill an arbitrary expression-evaluation capability unrelated to normal title-insight analysis. Even if pandas limits some operations, this still materially broadens attack surface and can enable unexpected computation, access to unintended columns, denial-of-service through expensive expressions, or exploitation of parser/eval quirks in the execution environment.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The script loads a local HTML file in a real browser and waits for network activity to become idle, explicitly to allow a CDN resource to load. If the HTML is attacker-controlled or derived from untrusted data, this can trigger outbound requests, leak metadata/IP information, and allow remote content to influence PDF output. In the context of a social-media title analysis skill, this network-capable rendering behavior is unnecessary and increases risk because it expands the attack surface beyond the stated purpose.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Low
Category
Not specified by scanner
Confidence
85% confidence
Finding

The skill instructs installation of Python packages into the host environment using pip with --break-system-packages, which modifies the runtime outside the skill's core analytic function. This can destabilize the host, introduce dependency-chain risk, and violate least-change expectations for a data-analysis skill.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

Host environment package installation is an unnecessary and risky expansion of capability for a skill whose stated role is analyzing social media titles and metrics. It increases supply-chain exposure and can enable unintended code execution via dependency install hooks or compromised packages.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Low
Category
Not specified by scanner
Confidence
81% confidence
Finding

The generated HTML report loads Tailwind from a third-party CDN at render time, which creates an external network dependency not obvious from the skill description. Opening the report can leak access metadata such as IP, time, and user-agent to the CDN provider and introduces supply-chain risk if that dependency is unavailable or tampered with.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
95% confidence
Finding

The report template hardcodes lang="zh-CN" and all user-facing report text is fixed in Chinese. The policy for all file types flags language/locale constraints when a skill forces a specific language without user opt-in or a documented justification.

Content

No source excerpt is available for this finding.