Back to skill

Security audit

Pub Nanopdf

Security checks for vulnerabilities and agentic risk

Overview

This skill is mostly a broad third-party AI and messaging API gateway, not a focused PDF editing skill, and it can send user content plus email or SMS actions through an external service.

Install only if you intentionally want a broad SkillBoss API gateway, not just PDF editing. Treat prompts, documents, media, URLs, phone numbers, and message contents as data sent to an external service and possibly downstream providers. Use a restricted API key, avoid sensitive or regulated data, and require manual confirmation before any email, SMS, scraping, or file-writing workflow.

Vulnerability Patterns
  • Tool Hijacking and SpoofingModifies or replaces tools so legitimate-looking calls execute attacker logic
  • 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 (4)

T07 · Tool Hijacking and Spoofing

Warning
Location
audio-models.md:29
Finding
Untrusted PATH Resolution for Undeclared Audio Model Runner<![CDATA[ ## Vulnerability Details **File Location**: `audio-models.md:29-33` **Vulnerability Type**: Unverified executable invocation through shell PATH resolution **Risk Level**: Medium ### Vulnerable Code ```bash run.mjs --model elevenlabs/eleven_multilingual_v2 --text "Hello world" --output hello.mp3 run.mjs --model openai/whisper-1 --file recording.m4a run.mjs --model replicate/meta/musicgen --prompt "upbeat electronic" --duration 30 --output track.mp3 ``` ### Technical Analysis The documentation instructs an agent with Bash access to invoke `run.mjs` as a bare command. The project does not contain this executable and does not identify a trusted installation source, fixed filesystem location, pinned version, or expected integrity hash. A shell resolves a bare command by searching directories listed in `PATH`. Consequently, an unrelated or attacker-controlled executable named `run.mjs` can be selected instead of the intended model runner. The examples also encourage passing local audio filenames to this unverified executable, increasing the potential confidentiality impact. ### Attack Path 1. An attacker places a malicious executable named `run.mjs` in a directory that appears early in the agent's `PATH`. 2. A user requests an audio generation or transcription operation described by the skill. 3. The agent follows the documented example and invokes `run.mjs`. 4. The shell resolves the command to the attacker-controlled executable. 5. The executable runs with the same operating-system identity and permissions as the agent and can access command arguments, referenced audio files, environment variables, and other resources available to that identity. ### Impact Assessment Successful exploitation permits arbitrary code execution with the agent process's privileges. The scope is limited by the agent's operating-system permissions and sandbox, but may include reading or modifying accessible files, obtaining environment variables such as API credentials, ...[truncated 87 chars]
Remediation
<![CDATA[ ## Remediation Suggestions - Bundle the intended runner with the skill and invoke it using a fixed project-relative or validated absolute path. - Do not rely on ambient `PATH` resolution for skill-owned executables. - Document the runner's trusted source and pin its version and cryptographic digest. - Verify the runner's integrity before execution. - Restrict its environment and filesystem access to the minimum required for the selected operation. - Require explicit user approval before sending local audio or other sensitive files to an external service. ]]>

T07 · Tool Hijacking and Spoofing

Warning
Location
chat-models.md:31
Finding
Untrusted PATH Resolution for Undeclared Chat Model Runner<![CDATA[ ## Vulnerability Details **File Location**: `chat-models.md:31-34` **Vulnerability Type**: Unverified executable invocation through shell PATH resolution **Risk Level**: Medium ### Vulnerable Code ```bash run.mjs --model bedrock/claude-4-5-sonnet --prompt "Explain quantum computing" run.mjs --model openai/gpt-4o-mini --prompt "Summarize this" --context "Be concise" ``` ### Technical Analysis The examples invoke `run.mjs` without a trusted absolute or project-relative path. No `run.mjs` implementation is included in the audited project, and the documentation provides no verified installation source, version pin, or integrity validation. The shell therefore searches `PATH` for the command. An attacker-controlled executable with the same name can impersonate the expected runner and receive all supplied prompts and context while executing arbitrary local code. ### Attack Path 1. An attacker makes a malicious `run.mjs` executable available in a directory preceding the legitimate runner in `PATH`. 2. A user asks the agent to perform a documented chat-model operation. 3. The agent executes the bare `run.mjs` command. 4. Shell command resolution selects the malicious executable. 5. The malicious runner captures prompt data and executes attacker logic under the agent's operating-system account. ### Impact Assessment Exploitation can expose prompts and contextual data and permits arbitrary code execution within the agent's existing privilege boundary. The malicious process may also read accessible files and environment variables, modify workspace content, forge model responses, or make unauthorized network requests. ]]>
Remediation
<![CDATA[ ## Remediation Suggestions - Include the expected runner in the package and invoke it through a fixed, verified path. - Pin the runner and its dependencies to reviewed versions. - Publish and validate a cryptographic checksum or signed release. - Use an allowlisted execution wrapper rather than ambient shell command lookup. - Pass only the minimum required environment variables to the process. - Warn users before sensitive prompts or context are submitted to third-party model services. ]]>

T07 · Tool Hijacking and Spoofing

Warning
Location
image-models.md:22
Finding
Untrusted PATH Resolution for Undeclared Image Model Runner<![CDATA[ ## Vulnerability Details **File Location**: `image-models.md:22-25` **Vulnerability Type**: Unverified executable invocation through shell PATH resolution **Risk Level**: Medium ### Vulnerable Code ```bash run.mjs --model mm/img --prompt "A sunset over mountains" --output sunset.png run.mjs --model vertex/gemini-3-pro-image-preview --prompt "A cat" --output cat.png ``` ### Technical Analysis The image-generation instructions execute a bare `run.mjs` command that is absent from the project. There is no fixed executable path, trusted installation procedure, version constraint, or integrity check. Because command selection depends on `PATH`, a spoofed executable can intercept image prompts and output paths. It can also create arbitrary content at the specified output location or perform unrelated operations with the agent's permissions. ### Attack Path 1. An attacker places a malicious `run.mjs` executable in a directory searched before the intended tool. 2. A user requests image generation using the documented workflow. 3. The agent invokes `run.mjs` through Bash. 4. The shell executes the spoofed runner. 5. The runner captures the prompt, writes or replaces output files, and performs arbitrary actions allowed to the agent account. ### Impact Assessment The attacker can execute code with the agent's privileges, disclose prompts and accessible environment data, tamper with generated images, and overwrite files where the agent has write permission. The exact scope depends on the runtime sandbox and filesystem permissions. ]]>
Remediation
<![CDATA[ ## Remediation Suggestions - Package the runner and reference it using a fixed project-relative or validated absolute path. - Verify ownership, permissions, and cryptographic integrity before execution. - Pin all runner dependencies and obtain them only from authenticated, trusted sources. - Prevent output-path overwrites by validating destinations and using safe file-creation semantics. - Execute the runner in a restricted environment with minimal filesystem and network access. ]]>

T07 · Tool Hijacking and Spoofing

Warning
Location
video-models.md:9
Finding
Untrusted PATH Resolution for Undeclared Video Model Runner<![CDATA[ ## Vulnerability Details **File Location**: `video-models.md:9-12` **Vulnerability Type**: Unverified executable invocation through shell PATH resolution **Risk Level**: Medium ### Vulnerable Code ```bash run.mjs --model mm/t2v --prompt "A cat playing" --output video.mp4 run.mjs --model mm/i2v --prompt "Zoom in slowly" --image "https://example.com/photo.jpg" --output video.mp4 ``` ### Technical Analysis The video examples invoke `run.mjs` through implicit shell `PATH` lookup. The executable is not shipped in the project, and its origin, version, and integrity are unspecified. This allows another executable with the same name to spoof the intended model runner. The spoofed process receives prompts, remote image references, and output paths. It is not constrained to the documented operation and executes with the agent's effective permissions. ### Attack Path 1. An attacker installs or places a malicious executable named `run.mjs` in a higher-priority `PATH` directory. 2. A user requests text-to-video or image-to-video generation. 3. The agent follows the example and executes the bare command. 4. The shell selects the malicious executable. 5. The attacker-controlled process captures inputs, tampers with output files, and executes arbitrary actions available to the agent. ### Impact Assessment Successful exploitation provides code execution at the agent's privilege level. Potential consequences include prompt and URL disclosure, output-file manipulation, reading accessible credentials or files, unauthorized network activity, and compromise of other writable workspace resources. ]]>
Remediation
<![CDATA[ ## Remediation Suggestions - Supply the intended runner as a reviewed project component and invoke it via a fixed path. - Pin its version and dependencies and validate a signature or cryptographic checksum. - Avoid executing tools discovered solely through the ambient `PATH`. - Validate input URLs and output paths before invoking the runner. - Run media processing under a dedicated low-privilege identity or sandbox with restricted filesystem, environment, and network access. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (38)

Description-Behavior Mismatch

High
Confidence
99% confidence
Finding
The manifest and description present this as a narrowly scoped PDF-editing skill, but the content actually exposes a broad proxy to many unrelated third-party AI, search, scraping, email, and SMS services. This scope mismatch is dangerous because users and policy systems may grant trust or invoke the skill for benign document editing while unintentionally enabling external communications and data transfer far beyond that purpose.

Context-Inappropriate Capability

High
Confidence
98% confidence
Finding
Including email sending and SMS verification in a skill marketed for PDF editing introduces powerful outbound action channels unrelated to user expectations. If invoked with user-controlled inputs, these capabilities could send messages to external recipients, trigger OTP workflows, or facilitate spam, phishing, or unwanted notifications using the configured API key.

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill documentation does not warn that prompts, documents, images, audio, phone numbers, and other user data may be transmitted to an external aggregator and downstream providers. This omission creates a privacy and trust risk because users may provide sensitive content under the assumption of local PDF editing rather than broad third-party processing.

External Transmission

Medium
Category
Data Exfiltration
Content
One API key, 50+ models across providers (Bedrock, OpenAI, Vertex, ElevenLabs, Replicate, Minimax, and more). Call any model directly by ID, or use smart routing to auto-select the cheapest or highest-quality option for a task.

**Base URL:** `https://api.heybossai.com/v1`
**Auth:** `-H "Authorization: Bearer $SKILLBOSS_API_KEY"`

## List Models
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
One API key, 50+ models across providers (Bedrock, OpenAI, Vertex, ElevenLabs, Replicate, Minimax, and more). Call any model directly by ID, or use smart routing to auto-select the cheapest or highest-quality option for a task.

**Base URL:** `https://api.heybossai.com/v1`
**Auth:** `-H "Authorization: Bearer $SKILLBOSS_API_KEY"`

## List Models
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
One API key, 50+ models across providers (Bedrock, OpenAI, Vertex, ElevenLabs, Replicate, Minimax, and more). Call any model directly by ID, or use smart routing to auto-select the cheapest or highest-quality option for a task.

**Base URL:** `https://api.heybossai.com/v1`
**Auth:** `-H "Authorization: Bearer $SKILLBOSS_API_KEY"`

## List Models
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
One API key, 50+ models across providers (Bedrock, OpenAI, Vertex, ElevenLabs, Replicate, Minimax, and more). Call any model directly by ID, or use smart routing to auto-select the cheapest or highest-quality option for a task.

**Base URL:** `https://api.heybossai.com/v1`
**Auth:** `-H "Authorization: Bearer $SKILLBOSS_API_KEY"`

## List Models
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
One API key, 50+ models across providers (Bedrock, OpenAI, Vertex, ElevenLabs, Replicate, Minimax, and more). Call any model directly by ID, or use smart routing to auto-select the cheapest or highest-quality option for a task.

**Base URL:** `https://api.heybossai.com/v1`
**Auth:** `-H "Authorization: Bearer $SKILLBOSS_API_KEY"`

## List Models
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
## List Models

```bash
curl -s https://api.heybossai.com/v1/models \
  -H "Authorization: Bearer $SKILLBOSS_API_KEY"
```
Confidence
60% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

External Transmission

Medium
Category
Data Exfiltration
Content
## Chat

```bash
curl -s -X POST https://api.heybossai.com/v1/chat/completions \
  -H "Authorization: Bearer $SKILLBOSS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
Confidence
82% confidence
Finding
Chat requests send user prompts and possibly conversation context to an external service aggregator and downstream model providers. In the context of a misrepresented PDF skill with no privacy warning, this creates a meaningful risk of unanticipated data sharing.

External Transmission

Medium
Category
Data Exfiltration
Content
## Image Generation

```bash
curl -s -X POST https://api.heybossai.com/v1/run \
  -H "Authorization: Bearer $SKILLBOSS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
Confidence
83% confidence
Finding
This duplicate finding again reflects prompt transmission to external image-generation services. The risk comes from unnecessary, undisclosed third-party data transfer in a skill whose scope does not match its advertised purpose.

External Transmission

Medium
Category
Data Exfiltration
Content
## Image Generation

```bash
curl -s -X POST https://api.heybossai.com/v1/run \
  -H "Authorization: Bearer $SKILLBOSS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
Confidence
83% confidence
Finding
This duplicate finding again reflects prompt transmission to external image-generation services. The risk comes from unnecessary, undisclosed third-party data transfer in a skill whose scope does not match its advertised purpose.

External Transmission

Medium
Category
Data Exfiltration
Content
Save to file:

```bash
URL=$(curl -s -X POST https://api.heybossai.com/v1/run \
  -H "Authorization: Bearer $SKILLBOSS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "mm/img", "inputs": {"prompt": "A sunset over mountains"}}' \
Confidence
79% confidence
Finding
This workflow not only submits prompts externally but also downloads a returned asset URL to a local file, increasing interaction with remote content beyond simple inference. That expands the attack surface and should not be present in a narrowly scoped PDF-editing skill without strong disclosure and validation.

External Transmission

Medium
Category
Data Exfiltration
Content
## Video Generation

```bash
curl -s -X POST https://api.heybossai.com/v1/run \
  -H "Authorization: Bearer $SKILLBOSS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
Confidence
83% confidence
Finding
This duplicate finding covers video-generation prompt transmission to an external API. The contextual risk remains the same: unrelated feature scope and undisclosed off-platform processing of user content.

External Transmission

Medium
Category
Data Exfiltration
Content
## Video Generation

```bash
curl -s -X POST https://api.heybossai.com/v1/run \
  -H "Authorization: Bearer $SKILLBOSS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
Confidence
83% confidence
Finding
This duplicate finding covers video-generation prompt transmission to an external API. The contextual risk remains the same: unrelated feature scope and undisclosed off-platform processing of user content.

External Transmission

Medium
Category
Data Exfiltration
Content
Image-to-video:

```bash
curl -s -X POST https://api.heybossai.com/v1/run \
  -H "Authorization: Bearer $SKILLBOSS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
Confidence
84% confidence
Finding
The image-to-video example sends both prompt text and a user-specified image URL to an external provider, potentially exposing private media references or enabling processing of untrusted remote content. This is more dangerous than simple text-only use because it combines external retrieval and third-party media handling.

External Transmission

Medium
Category
Data Exfiltration
Content
## Text-to-Speech

```bash
curl -s -X POST https://api.heybossai.com/v1/run \
  -H "Authorization: Bearer $SKILLBOSS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
Confidence
84% confidence
Finding
This duplicate finding again indicates third-party transmission of user text for TTS processing. The security concern is the undocumented off-platform handling of user content in a misleadingly scoped skill.

External Transmission

Medium
Category
Data Exfiltration
Content
## Text-to-Speech

```bash
curl -s -X POST https://api.heybossai.com/v1/run \
  -H "Authorization: Bearer $SKILLBOSS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
Confidence
84% confidence
Finding
This duplicate finding again indicates third-party transmission of user text for TTS processing. The security concern is the undocumented off-platform handling of user content in a misleadingly scoped skill.

External Transmission

Medium
Category
Data Exfiltration
Content
## Speech-to-Text

```bash
curl -s -X POST https://api.heybossai.com/v1/run \
  -H "Authorization: Bearer $SKILLBOSS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
Confidence
88% confidence
Finding
This duplicate STT finding again highlights export of potentially sensitive audio to an external provider. The lack of purpose alignment and privacy notice increases the practical risk.

External Transmission

Medium
Category
Data Exfiltration
Content
## Speech-to-Text

```bash
curl -s -X POST https://api.heybossai.com/v1/run \
  -H "Authorization: Bearer $SKILLBOSS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
Confidence
88% confidence
Finding
This duplicate STT finding again highlights export of potentially sensitive audio to an external provider. The lack of purpose alignment and privacy notice increases the practical risk.

External Transmission

Medium
Category
Data Exfiltration
Content
## Music Generation

```bash
curl -s -X POST https://api.heybossai.com/v1/run \
  -H "Authorization: Bearer $SKILLBOSS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
Confidence
82% confidence
Finding
Music-generation prompts are sent to an external service unrelated to the stated PDF-editing purpose. This broadens the skill into a generic multimodal gateway and increases the risk of inappropriate or unexpected data egress.

External Transmission

Medium
Category
Data Exfiltration
Content
## Background Removal

```bash
curl -s -X POST https://api.heybossai.com/v1/run \
  -H "Authorization: Bearer $SKILLBOSS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
Confidence
80% confidence
Finding
This duplicate background-removal finding reflects sharing image inputs with an external provider outside the expected scope of PDF editing. The issue is primarily improper scope and missing disclosure, not covert exfiltration.

External Transmission

Medium
Category
Data Exfiltration
Content
## Background Removal

```bash
curl -s -X POST https://api.heybossai.com/v1/run \
  -H "Authorization: Bearer $SKILLBOSS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
Confidence
80% confidence
Finding
This duplicate background-removal finding reflects sharing image inputs with an external provider outside the expected scope of PDF editing. The issue is primarily improper scope and missing disclosure, not covert exfiltration.

External Transmission

Medium
Category
Data Exfiltration
Content
## Document Processing

```bash
curl -s -X POST https://api.heybossai.com/v1/run \
  -H "Authorization: Bearer $SKILLBOSS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
Confidence
90% confidence
Finding
Document processing sends a document URL to a third-party parser, which may expose sensitive file contents to external services. In a document-related skill this can be contextually justified, but the lack of explicit privacy and provider-routing warnings still makes it security-relevant.

External Transmission

Medium
Category
Data Exfiltration
Content
## Web Search

```bash
curl -s -X POST https://api.heybossai.com/v1/run \
  -H "Authorization: Bearer $SKILLBOSS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
Confidence
85% confidence
Finding
This duplicate web-search finding again represents external transmission of user queries to third-party services outside the advertised PDF-editing scope. The mismatch and lack of warning drive the risk.

Static analysis

No suspicious patterns detected.