Back to skill

Security audit

Paper Cluster Survey 2.2

Security checks for vulnerabilities and agentic risk

Overview

The skill has a coherent paper-review purpose, but its helper scripts can read arbitrary local text/HTML paths and fetch unrestricted URLs, which is broader than users may expect.

Install only if you trust the sources you will give it and can run it in a constrained environment. Avoid sensitive local paths or private PDFs unless you intend their contents to be processed, and prefer sandboxed filesystem and network egress controls because the scripts do not enforce those limits themselves.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • 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
Findings (4)

T05 · Unauthorized Access and Privilege Escalation

Error
Location
scripts/extract-paper-records.mjs:278
Finding

Unrestricted Server-Side Request Forgery Through User-Controlled URLs and Redirects

Content
View full analysis
Remediation
View remediation

T05 · Unauthorized Access and Privilege Escalation

Error
Location
scripts/extract-paper-records.mjs:404
Finding

Arbitrary Local-File Read Through Generic Path and Unvalidated Manifest Records

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/extract-paper-records.mjs:278
Finding

Unbounded Remote Response Buffering Allows Resource Exhaustion

Content
View full analysis
Remediation
View remediation

T09 · Insecure Skill Coding Practices

Warning
Location
scripts/extract-paper-records.mjs:335
Finding

Untrusted Remote Paper Content Is Promoted to Primary Agent Context

Content
View full analysis
Remediation
View remediation
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • 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
Findings (17)

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- Use `scripts/normalize-sources.mjs` when the source set is mixed or should be stored as a reusable manifest.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- Use `scripts/normalize-sources.mjs` when the source set is mixed or should be stored as a reusable manifest.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- Use `scripts/extract-paper-records.mjs` to turn PDFs and URLs into structured records before classification.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
- Use `scripts/extract-paper-records.mjs` to turn PDFs and URLs into structured records before classification.

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
### `scripts/render-formal-review-template.mjs`

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
89% confidence
Finding

The skill explicitly instructs use of scripts that fetch external URLs and process paper sources, but it does not declare any tool permissions or allowed-tools scope. This creates a capability/expectation mismatch that can lead to unauthorized network access or execution in environments where users and reviewers cannot clearly see what external actions the skill may perform.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill tells the agent to fetch remote URLs and extract content from local PDFs without warning the user that document contents or derived metadata may be transmitted to external services. In a literature-review workflow, local PDFs may contain unpublished, licensed, or sensitive material, so silent network use increases confidentiality and compliance risk.

Content

No source excerpt is available for this finding.

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The skill allows implicit invocation without any visible activation scope, caller constraints, or narrowing conditions. That increases the chance the agent will auto-select this skill in contexts involving URLs or documents, causing unreviewed access to local PDFs or remote paper links and expanding the attack surface for prompt injection, unintended data processing, or exfiltration through fetched content.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The template includes fixed Chinese section headings in the "Typical review shape," which can steer the agent to produce output in Chinese even when the user did not request that language. This is a prompt-quality and instruction-alignment issue: it can cause unexpected language switching, reduce usability, and break downstream consumers that expect English or user-selected output, but it is not a direct code-execution or data-exfiltration risk.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

This skill's stated purpose is to extract structured paper records from files and URLs, which justifies file and network access, but not invoking arbitrary local executables via the shell. The code probes for and runs external tools (pdftotext, mutool, python3, strings) and executes inline Python, introducing a broader execution capability than is necessary from the manifest description alone.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
88% confidence
Finding

The script fetches arbitrary HTTP/HTTPS sources provided by the user, which transmits network requests and identifying request metadata such as the configured User-Agent. While this behavior is part of extraction, the code provides no confirmation prompt, log message, comment, or docstring warning that remote URLs will be contacted.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The script hardcodes Chinese headings and template text such as "分类表", "摘要", and "基于给定文献语料的综述" in its generated output while the CLI help and surrounding code are otherwise in English. This creates a natural-language locale policy issue because users are not given an opt-in or alternative language selection.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The markdown file states that the skill extracts and reviews papers from local PDFs or URLs, which implies reading local files and fetching remote content. However, it does not warn users that local document contents may be processed or that URLs may trigger network access, which are behaviors that can affect privacy and system/network activity.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
76% confidence
Finding

The documentation states that references are formatted in GB/T 7714, which imposes a specific locale/style convention. Because no opt-in, alternative style choice, or justification is provided, this may violate the language/locale policy for skills that should not force a specific locale-specific output format by default.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
93% confidence
Finding

This is a natural-language locale/style constraint that forces a specific regional bibliographic format. The file does not indicate that the style is optional, user-selected, or required for a particular compliance context, so it can violate language/locale choice expectations.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
82% confidence
Finding

When a remote source is a PDF, the script writes the downloaded content to a temporary file under the system temp directory before processing it. Although the file is later removed, the script does not disclose this filesystem write anywhere in help text, comments, or user-visible logging.

Content

No source excerpt is available for this finding.

Missing User Warnings

Low
Category
Not specified by scanner
Confidence
83% confidence
Finding

This code performs a filesystem write when --out is provided, but there is no confirmation prompt, warning message, or inline comment/docstring disclosing that it will create or overwrite the target file. The help text describes normalization behavior but does not explicitly warn that a file path supplied via --out will be written.

Content

No source excerpt is available for this finding.

Static analysis

Detected: suspicious.dangerous_exec

Shell command execution detected (child_process).

Critical
Code
suspicious.dangerous_exec
Location
scripts/extract-paper-records.mjs:162