Back to skill

Security audit

PDF Zusammenfügen

Security checks for vulnerabilities and agentic risk

Overview

This skill is a straightforward local PDF-merging workflow with no evidence of hidden data access, exfiltration, persistence, or destructive behavior.

Use this skill when you want a German-language assistant workflow to merge local PDFs. Confirm the exact input order, output path, and overwrite choice before running it, and prefer installing pypdf in a virtual environment or from a pinned, trusted requirements file if you need stronger reproducibility.

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

T08 · Insecure Dependencies

Note
Location
SKILL.md:20
Finding

Unpinned Third-Party PDF Dependency

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 20-27
Vulnerability Type: Unpinned third-party dependency installation
Risk Level: Low

Vulnerable Code

markdown
- Paket `pypdf` oder `PyPDF2`

Wenn kein Paket installiert ist, installiere `pypdf` bevorzugt in einer virtuellen Umgebung:

```bash
python3 -m venv .venv
source .venv/bin/activate
python -m pip install pypdf
text

### Technical Analysis

The installation command retrieves `pypdf` without specifying a reviewed version or verifying an integrity hash. Consequently, the dependency installed at execution time may differ from the version originally assessed. Although using a virtual environment limits package installation to that environment, it does not protect against a compromised upstream release, package-index compromise, or an unexpectedly incompatible future release.

No evidence indicates that `pypdf` or `PyPDF2` is currently malicious. This finding concerns the absence of dependency pinning and integrity verification.

### Attack Path

1. An attacker compromises the upstream package publisher account, package distribution infrastructure, or configured Python package index.
2. The attacker publishes or serves a malicious release under the legitimate `pypdf` package name.
3. A user follows the documented `python -m pip install pypdf` instruction.
4. Pip resolves and installs the attacker-controlled release because no version or hash is constrained.
5. Malicious package code may execute during installation or later when `scripts/merge_pdfs.py` imports and uses the PDF backend.

### Impact Assessment

Successful exploitation could execute code with the privileges of the user running pip or the merge script. Within those privileges, a malicious dependency could access readable local files—including PDFs supplied for merging—modify writable files, tamper with generated output, or communicate data over the network where network access is available. The virtual environment d
...[truncated 67 chars]
Remediation
View remediation

Remediation Suggestions

  1. Pin pypdf to a specifically reviewed version in a requirements file.
  2. Record and enforce cryptographic hashes for all distributed artifacts.
  3. Install with hash verification, for example:
bash
python3 -m pip install --require-hashes -r requirements.txt
  1. Define the trusted package index explicitly and avoid untrusted extra indexes.
  2. Use automated dependency scanning and controlled update reviews before changing the pinned version.
  3. Consider documenting a reproducible environment or lock file appropriate to the project’s packaging workflow.
Vulnerability Patterns
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • 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 (3)

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The description explicitly says the skill is for 'deutschsprachige Nutzer', which imposes a language/locale constraint in natural language. The file does not offer an alternative language option or explain a necessary compliance reason for restricting use to German-speaking users.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

Fixing the interface text and prompt entirely to German without indicating user choice can lead to misunderstanding of privacy, consent, or document-handling steps for non-German-speaking users. In a workflow involving potentially sensitive applicant documents, language mismatch can cause users to misinterpret instructions or approve handling they did not fully understand.

Content

No source excerpt is available for this finding.

Vague Triggers

Low
Category
Not specified by scanner
Confidence
88% confidence
Finding

The default prompt broadly instructs use of this skill for PDF merging and job-application PDF creation without defining clear invocation limits or required user intent checks. Over-broad activation can cause the agent to invoke the skill in contexts where PDF handling or privacy-sensitive document assembly was not explicitly requested, increasing the chance of inappropriate routing and unintended exposure of sensitive personal data.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.