Back to skill

Security audit

Pub Pdf

Security checks for vulnerabilities and agentic risk

Overview

This skill is not clearly malicious, but it exposes a broad remote API gateway with email, SMS, media, search, and document-upload capabilities under a PDF-oriented name.

Review carefully before installing. Use this only if you intend to give the agent a SkillBoss API key and allow remote processing across many model/tool categories, not just PDFs. Avoid using it with confidential documents, recordings, contact lists, email/SMS workflows, or OTP flows unless you have separate confirmation and data-handling controls.

Vulnerability Patterns
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (3)

T05 · Unauthorized Access and Privilege Escalation

Warning
Location
SKILL.md:2
Finding
PDF Skill Grants Excessive Capabilities and Enables External Disclosure of Sensitive Data<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:2-5`, `SKILL.md:40-48`, `SKILL.md:148-155`, `SKILL.md:194-209`, `SKILL.md:231-269` **Vulnerability Type**: Excessive privileges and externally routed sensitive operations **Risk Level**: Medium ### Vulnerable Code ```yaml name: pdf description: "Comprehensive PDF manipulation toolkit for extracting text, creating, merging, splitting documents, and handling forms. And also 50+ models for image generation, video generation, text-to-speech, speech-to-text, music, chat, web search, document parsing, email, and SMS." allowed-tools: Bash, Read metadata: {"clawdbot":{"requires":{"env":["SKILLBOSS_API_KEY"]},"primaryEnv":"SKILLBOSS_API_KEY"}} ``` ```bash curl -s -X POST https://api.heybossai.com/v1/run \ -H "Authorization: Bearer $SKILLBOSS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "openai/whisper-1", "inputs": {"audio_data": "BASE64_AUDIO", "filename": "recording.mp3"} }' ``` ```bash curl -s -X POST https://api.heybossai.com/v1/run \ -H "Authorization: Bearer $SKILLBOSS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "reducto/parse", "inputs": {"document_url": "https://example.com/file.pdf"} }' ``` ```bash curl -s -X POST https://api.heybossai.com/v1/run \ -H "Authorization: Bearer $SKILLBOSS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "email/send", "inputs": {"to": "user@example.com", "subject": "Hello", "html": "<p>Hi</p>"} }' ``` ```bash curl -s -X POST https://api.heybossai.com/v1/run \ -H "Authorization: Bearer $SKILLBOSS_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "prelude/verify-send", "inputs": {"target": {"type": "phone_number", "value": "+1234567890"}} }' ``` ### Technical Analysis The Skill is presented under the generic and narrowly suggestive name `pdf`, but it requests both `Read` and `Bash` access and documents functionality far beyond PDF p ...[truncated 2300 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Split the package into narrowly scoped Skills for PDF processing, model invocation, web scraping, email, and SMS. 2. Rename the current package so its advertised name accurately reflects its full capability set. 3. Remove `Bash` from the PDF-only Skill unless a specific, reviewed executable requires it. 4. Restrict `Read` access to user-selected input files and dedicated working directories. 5. Require explicit user confirmation before: - Uploading documents, images, or recordings. - Sending email or SMS messages. - Transmitting phone numbers, OTPs, or other personal information. 6. Display the destination service and categories of downstream processors before an upload. 7. Add recipient allowlisting, address validation, rate limiting, and dry-run previews for communication operations. 8. Use separate, least-privileged API credentials for document processing and communication features. 9. Define retention, deletion, logging, and privacy expectations for data handled by the API gateway. 10. Add policy enforcement that prevents unrelated capabilities from being invoked merely because the PDF Skill was selected. ]]>

T09 · Insecure Skill Coding Practices

Note
Location
SKILL.md:74
Finding
Unvalidated API-Controlled URL Is Downloaded with Redirect Following<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:74-80` **Vulnerability Type**: Unvalidated remote download and unsafe file handling **Risk Level**: Low ### Vulnerable Code ```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"}}' \ | jq -r '.image_url // .result.image_url // .data[0]') curl -sL "$URL" -o sunset.png ``` ### Technical Analysis The download URL is taken directly from a remote API response and passed to `curl -L`. The `-L` option follows redirects, but the example performs no scheme validation, destination-host allowlisting, private-address blocking, response-size restriction, timeout enforcement, MIME-type verification, or content validation. The URL is correctly enclosed in quotes, so the shown command does not expose a direct shell metacharacter injection. The downloaded file is also not executed by the documented example. However, control of the API response or any redirect in the response chain would allow an attacker to determine the final network destination and the bytes written to `sunset.png`. The fixed output filename can overwrite an existing file in the current working directory. The absence of size limits also permits excessive disk or bandwidth consumption. ### Attack Path 1. The Agent requests generated media from the external API. 2. The API, a compromised upstream provider, or an attacker influencing its response supplies a malicious or unexpected URL in `image_url`, `result.image_url`, or `data[0]`. 3. The command extracts that value without validating its type or destination. 4. `curl -L` follows the supplied URL and any subsequent redirects. 5. The final response is written to `sunset.png`, regardless of its actual media type. 6. This may overwrite an existing file, consume excessive resources, or save attacker-controlled non-imag ...[truncated 645 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Parse the API response with strict schema validation and reject missing, non-string, or malformed URL values. 2. Permit only HTTPS URLs. 3. Allowlist expected media-storage domains and validate the destination again after every redirect. 4. Reject loopback, link-local, private, reserved, and internal network destinations after DNS resolution. 5. Set strict connection, total-time, response-size, and redirect-count limits. 6. Validate the response status, `Content-Type`, and file signature before accepting it as an image. 7. Write to a securely created temporary file and atomically rename it only after validation. 8. Avoid fixed output names or use non-clobbering behavior unless overwrite is explicitly approved. 9. Run downloads in a sandbox with restricted filesystem access and network egress. 10. Log the final resolved URL and validation outcome without recording authorization headers. ]]>

T08 · Insecure Dependencies

Note
Location
audio-models.md:29
Finding
Documentation Invokes an Unbundled Executable Without Version or Provenance Controls<![CDATA[ ## Vulnerability Details **File Location**: `audio-models.md:29-32`, `chat-models.md:31-34`, `image-models.md:22-25`, `video-models.md:9-12` **Vulnerability Type**: Unpinned and unverified executable dependency **Risk Level**: Low ### 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 ``` ```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" ``` ```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 ``` ```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 documentation repeatedly invokes `run.mjs` as a bare command. No `run.mjs` file is included in the audited project, and the documentation does not identify a trusted package, installation procedure, version, checksum, signature, or absolute path for the executable. When a bare command is invoked, the shell resolves it through the current execution environment, commonly using `PATH`. If an unrelated or attacker-controlled executable named `run.mjs` is available earlier in the search order, that executable may receive local filenames, prompts, output paths, and model parameters. The project does not itself install a malicious dependency, and no embedded implementation of `run.mjs` was found. Therefore, this is a dependency-provenance and ambiguous-command risk rather than confirmed malicious code execution. ### Attack Path 1. An operator or Agent follows one of the documented examples. 2. ...[truncated 1264 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Bundle the reviewed helper within the project and invoke it through an explicit package-relative path. 2. Document the helper's source repository, publisher, exact version, and cryptographic integrity value. 3. Pin all transitive dependencies with a lockfile and verify package integrity during installation. 4. Do not advise users to obtain a similarly named executable from an unspecified package registry or website. 5. Validate the helper's signature or checksum before first use. 6. Avoid searching the current working directory or untrusted directories for executables. 7. Run the helper through an explicit trusted runtime, for example using an absolute path to Node.js and a package-relative script path. 8. Restrict the helper's access to required input and output files and provide only the environment variables it needs. 9. Prefer the already documented HTTPS API examples if no audited local helper is supplied. 10. Add automated packaging tests that fail when documentation references executables absent from the released artifact. ]]>
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 (43)

Description-Behavior Mismatch

High
Confidence
99% confidence
Finding
The skill is marketed as a PDF manipulation toolkit, but its contents expose a broad general-purpose API gateway for chat, media generation, search, scraping, email, SMS, and other networked capabilities. This mismatch increases the chance that users or higher-level agents will invoke powerful external actions they did not reasonably expect from a PDF-scoped skill, creating covert capability expansion and data-flow risk.

Context-Inappropriate Capability

High
Confidence
97% confidence
Finding
Email sending and SMS verification are high-risk outbound communication capabilities unrelated to a PDF-focused skill. In this context, they enable unexpected exfiltration, unsolicited messaging, or abuse of OTP workflows under the cover of a benign-looking document tool.

Description-Behavior Mismatch

High
Confidence
98% confidence
Finding
The documented model set materially exceeds the stated PDF-focused purpose by including outbound messaging, embeddings, and presentation-generation capabilities. This creates a scope-mismatch risk: an agent or user may invoke powerful unrelated tools that can exfiltrate data, contact external recipients, or perform actions far outside expected PDF processing, violating least privilege and user expectations.

Context-Inappropriate Capability

High
Confidence
99% confidence
Finding
OTP verification and bulk SMS capabilities are especially dangerous in a PDF skill because they enable external communications and account-verification workflows unrelated to document handling. In this context, these tools could be misused for spam, social engineering, unauthorized notifications, or transmission of sensitive document-derived data to phone numbers without clear user awareness.

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
76% confidence
Finding
The documented base URL establishes that the skill depends on an external API platform for operation. External dependence is not inherently unsafe, but here it is significant because the service aggregates many unrelated capabilities behind one key, increasing the impact of misuse or misunderstanding.

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
78% confidence
Finding
This models-list request sends authenticated traffic to the external API. Although lower risk than content-upload endpoints, it still confirms remote connectivity and credential use that should be transparent to users of a narrowly described skill.

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
78% confidence
Finding
This models-list request sends authenticated traffic to the external API. Although lower risk than content-upload endpoints, it still confirms remote connectivity and credential use that should be transparent to users of a narrowly described skill.

External Transmission

Medium
Category
Data Exfiltration
Content
Filter by type:

```bash
curl -s "https://api.heybossai.com/v1/models?types=image" \
  -H "Authorization: Bearer $SKILLBOSS_API_KEY"
```
Confidence
77% confidence
Finding
Filtering models by type still involves authenticated communication with the external service. In isolation this is routine, but within a deceptively scoped skill it contributes to a broader-than-advertised remote capability surface.

External Transmission

Medium
Category
Data Exfiltration
Content
Get full docs for specific models:

```bash
curl -s "https://api.heybossai.com/v1/models?ids=mm/img,bedrock/claude-4-5-sonnet" \
  -H "Authorization: Bearer $SKILLBOSS_API_KEY"
```
Confidence
77% confidence
Finding
Fetching model documentation from the external service is another authenticated outbound call. This reinforces that the skill is a general API client rather than a focused local PDF utility, which is the core security concern here.

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
The chat completions endpoint transmits prompts and conversation content externally for processing. That can expose sensitive text, and its presence is unexpected in a skill nominally dedicated to PDF operations.

Context-Inappropriate Capability

Medium
Confidence
97% confidence
Finding
Image, video, speech, and music generation capabilities are outside the stated PDF scope and indicate unjustified capability bloat. While not inherently malicious, bundling these functions under a PDF skill undermines least privilege and increases the chance of misuse or accidental data exposure to external services.

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
84% confidence
Finding
This endpoint uploads image-generation requests to an external platform. The security issue is amplified by misleading skill framing, which obscures that user-provided prompts and generated asset flows are leaving the environment.

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
84% confidence
Finding
This endpoint uploads image-generation requests to an external platform. The security issue is amplified by misleading skill framing, which obscures that user-provided prompts and generated asset flows are leaving the environment.

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
85% confidence
Finding
This workflow not only requests remote generation but also downloads a returned URL, introducing an additional external content retrieval step. That expands both outbound and inbound remote interaction beyond what a PDF utility should silently encompass.

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
84% confidence
Finding
The remote video-generation call sends prompts to an external provider. This is an unnecessary capability for a PDF skill and broadens the opportunity for unexpected data transfer and misuse.

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
84% confidence
Finding
The remote video-generation call sends prompts to an external provider. This is an unnecessary capability for a PDF skill and broadens the opportunity for unexpected data transfer and misuse.

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
85% confidence
Finding
Image-to-video accepts an external image URL and prompt for remote processing, creating both data-sharing and remote-resource handling risks. Its presence is materially out of context for a PDF tool.

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
83% confidence
Finding
This TTS example sends text to a third-party service where it may be stored or logged. Because users would not infer audio synthesis from a PDF-branded skill, the external transmission risk is insufficiently contextualized.

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
83% confidence
Finding
This TTS example sends text to a third-party service where it may be stored or logged. Because users would not infer audio synthesis from a PDF-branded skill, the external transmission risk is insufficiently contextualized.

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
87% confidence
Finding
The STT request uploads audio content and metadata externally, which can include sensitive or identifying information. That is a notable privacy exposure compounded by the mismatch between declared and actual skill function.

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
87% confidence
Finding
The STT request uploads audio content and metadata externally, which can include sensitive or identifying information. That is a notable privacy exposure compounded by the mismatch between declared and actual skill function.

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 requests transmit prompts to a remote service for non-document processing. This is not inherently malicious, but it is unrelated capability expansion that weakens least-privilege boundaries.

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
The background-removal endpoint processes externally hosted or user-supplied image data via a remote provider. In this context, it is another unexpected data egress path unrelated to PDF work.

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
The background-removal endpoint processes externally hosted or user-supplied image data via a remote provider. In this context, it is another unexpected data egress path unrelated to PDF work.

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
81% confidence
Finding
Document processing itself may be relevant to the advertised purpose, but this example still sends documents by URL to an external service without emphasizing the data-transfer implications. Sensitive PDFs or DOCX files could be uploaded or fetched remotely without sufficient warning.

Static analysis

No suspicious patterns detected.