Back to skill

Security audit

Vector Text Fixer

Security checks for vulnerabilities and agentic risk

Overview

This skill is a local PDF/SVG text repair helper, but its install dependencies are ambiguous and its repair command can report success without creating repaired files.

Review before installing. Use an isolated environment, replace ambiguous dependencies with pinned canonical packages such as PyMuPDF and beautifulsoup4, and do not rely on the normal repair command as proof that a repaired PDF/SVG was created. Treat JSON exports as sensitive because they can contain extracted document text and file paths.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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 (2)

T08 · Insecure Dependencies

Warning
Location
requirements.txt:1
Finding

Ambiguous and Unpinned Third-Party Dependencies

Content
View full analysis
Remediation
View remediation

other

Warning
Location
scripts/main.py:153
Finding

Repair Operations Report Success Without Creating Output Artifacts

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

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python -m py_compile scripts/main.py

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python -m py_compile scripts/main.py

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
python -m py_compile scripts/main.py

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python -m py_compile scripts/main.py

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python -m py_compile scripts/main.py

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python -m py_compile scripts/main.py

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python -m py_compile scripts/main.py

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python -m py_compile scripts/main.py

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python -m py_compile scripts/main.py

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python -m py_compile scripts/main.py

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python -m py_compile scripts/main.py

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python -m py_compile scripts/main.py

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python -m py_compile scripts/main.py

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
python -m py_compile scripts/main.py

Undeclared Tool Scope

Medium
Category
MCP Least Privilege
Confidence
93% confidence
Finding

The skill documents commands that read input files and write repaired outputs, but it does not declare any explicit tool scope such as permissions or allowed-tools. In an agent environment, this can cause the runtime or reviewer to underestimate the skill's filesystem access, increasing the chance of over-broad or unintended file reads/writes when the skill is invoked on attacker-influenced paths.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The export path saves full extracted text blocks/elements, original file path, and suggested fixes into a JSON file, which may contain sensitive document contents. Although the file write is implemented, there is no docstring warning, comment, or user-facing disclosure that exporting will persist potentially sensitive text to disk.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
94% confidence
Finding

The dependency 'bs4' is unpinned, so installs may resolve to different versions over time, including versions with newly introduced vulnerabilities or breaking behavior. In a file-processing skill that may be run in automated environments, this weakens supply-chain integrity and makes builds less reproducible.

Content

Scanner excerpt · requirements.txt (reported line 1)May include surrounding context.

text
bs4
dataclasses
fitz

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
87% confidence
Finding

The dependency 'dataclasses' is unpinned, which allows uncontrolled version drift and undermines reproducible builds. While lower risk than direct code execution issues, dependency drift can still introduce vulnerable or incompatible packages; additionally, 'dataclasses' is unnecessary on modern Python versions where it is part of the standard library, which increases avoidable supply-chain exposure.

Content

Scanner excerpt · requirements.txt (reported line 2)May include surrounding context.

text
bs4
dataclasses
fitz

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
95% confidence
Finding

The dependency 'fitz' is unpinned, creating supply-chain risk from version drift and non-reproducible installs. This is more concerning in this skill's context because PDF/SVG parsing libraries process untrusted file content and have historically been a higher-risk class for memory corruption, denial of service, or parser bugs if a vulnerable release is installed.

Content

Scanner excerpt · requirements.txt (reported line 3)May include surrounding context.

text
bs4
dataclasses
fitz

Static analysis

No suspicious patterns detected.