Back to skill

Security audit

frompdf

Security checks for vulnerabilities and agentic risk

Overview

This is a straightforward PDF-processing API skill that clearly sends chosen PDFs to a third-party service, so it is acceptable if users understand that data-sharing tradeoff.

Install only if you are comfortable sending selected PDFs to frompdf.dev. Do not use it for confidential, regulated, or legally sensitive documents unless you have reviewed the provider's privacy and retention terms; use a unique account password and be especially cautious with encrypted PDFs because the PDF password is submitted to the service for processing.

Vulnerability Patterns
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
Findings (8)

External Transmission

Medium
Category
Data Exfiltration
Confidence
86% confidence
Finding

The registration endpoint points to an external domain and is used to transmit account data off-platform. In this skill context, that is not hidden or deceptive, but it still represents a genuine data egress path to a third party.

Content

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

bash
# Register (10 free credits, no credit card)
curl -s -X POST https://api.frompdf.dev/register \
  -H "Content-Type: application/json" \
  -d '{"email": "you@example.com", "password": "yourpassword"}'
# → {"api_key": "frompdf_..."}

External Transmission

Medium
Category
Data Exfiltration
Confidence
86% confidence
Finding

The registration endpoint points to an external domain and is used to transmit account data off-platform. In this skill context, that is not hidden or deceptive, but it still represents a genuine data egress path to a third party.

Content

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

bash
# Register (10 free credits, no credit card)
curl -s -X POST https://api.frompdf.dev/register \
  -H "Content-Type: application/json" \
  -d '{"email": "you@example.com", "password": "yourpassword"}'
# → {"api_key": "frompdf_..."}

External Transmission

Medium
Category
Data Exfiltration
Confidence
97% confidence
Finding

The extract endpoint uploads local PDF contents to api.frompdf.dev and authenticates with a bearer API key. This is the core function of the skill, but it is a real security concern because potentially sensitive document contents are transmitted to an external service for processing.

Content

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

→ {"api_key": "frompdf_..."}

Extract a PDF (returns JSON semantic AST by default)

curl -s -X POST https://api.frompdf.dev/v1/extract
-H "Authorization: Bearer $FROMPDF_API_KEY"
-F "file=@document.pdf"

text

External Transmission

Medium
Category
Data Exfiltration
Confidence
97% confidence
Finding

This endpoint sends an entire document to an external API for chunk extraction, creating the same data-exfiltration risk as the basic extract flow. The danger is elevated by the skill's positioning for LLM pipelines, where users may process proprietary or regulated documents.

Content

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

bash
# Extract content from a PDF (1 credit)
curl -s -X POST https://api.frompdf.dev/v1/extract \
  -H "Authorization: Bearer $FROMPDF_API_KEY" \
  -F "file=@document.pdf" \
  -F "format=chunks"

External Transmission

Medium
Category
Data Exfiltration
Confidence
98% confidence
Finding

The encrypted-PDF flow transmits both the protected file and its password to a third-party service. This is especially sensitive because it exposes not just the document but also the secret used to unlock it, widening compromise impact if the service or logs are mishandled.

Content

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

md
-F "format=chunks"

# Encrypted PDF
curl -s -X POST https://api.frompdf.dev/v1/extract \
  -H "Authorization: Bearer $FROMPDF_API_KEY" \
  -F "file=@protected.pdf" \
  -F "password=secret"

External Transmission

Medium
Category
Data Exfiltration
Confidence
96% confidence
Finding

The diff endpoint uploads two PDFs to an external service, doubling the volume of potentially sensitive material disclosed. In many enterprise contexts, version-to-version diffs may include legal, financial, or strategic changes that are highly sensitive.

Content

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

md
-F "password=secret"

# Semantic diff — compare two PDFs, get structured changes (2 credits)
curl -s -X POST https://api.frompdf.dev/v1/diff \
  -H "Authorization: Bearer $FROMPDF_API_KEY" \
  -F "file_a=@v1.pdf" \
  -F "file_b=@v2.pdf"

External Transmission

Medium
Category
Data Exfiltration
Confidence
94% confidence
Finding

The readability-scoring endpoint still requires full PDF upload to a third party even though the output is only a score. This creates disproportionate exposure when users might assume a lightweight analysis does not require transmitting complete document contents.

Content

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

md
-F "file_b=@v2.pdf"

# Readability score — returns 0-100 score for a PDF (1 credit)
curl -s -X POST https://api.frompdf.dev/v1/score \
  -H "Authorization: Bearer $FROMPDF_API_KEY" \
  -F "file=@document.pdf"

External Transmission

Medium
Category
Data Exfiltration
Confidence
50% confidence
Finding

Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Content

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

-F "file=@document.pdf"

Check credits and subscription status (free)

curl -s https://api.frompdf.dev/v1/usage
-H "Authorization: Bearer $FROMPDF_API_KEY"

text

Static analysis

No suspicious patterns detected.