Back to skill

Security audit

PulpMiner Web Scraper - Convert Any Webpage to Realtime JSON API

Security checks for vulnerabilities and agentic risk

Overview

This is a straightforward PulpMiner API usage guide for AI web scraping, with expected external service and webhook data flows disclosed enough to remain benign but requiring care with sensitive URLs and data.

Install only if you are comfortable using PulpMiner as a third-party scraping and LLM-processing service. Avoid submitting secrets, private/internal URLs, authenticated pages, regulated data, or sensitive personal information unless you have approval to share that data with PulpMiner and any configured callback destination such as Zapier.

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)

Missing User Warnings

Medium
Confidence
95% confidence
Finding
The skill documentation describes scraping and JSON extraction but does not clearly warn that webpage content, user-supplied URLs/parameters, and extracted data are transmitted to PulpMiner's external service and processed by AI. This can cause users to unknowingly send sensitive internal URLs, tokens in query strings, proprietary content, or personal data to a third party.

External Transmission

Medium
Category
Data Exfiltration
Content
### Static API (fixed URL)

```bash
curl -X GET "https://api.pulpminer.com/external/<apiId>" \
  -H "apikey: <PULPMINER_API_KEY>"
```
Confidence
92% confidence
Finding
This endpoint sends requests to an external service using an API key and returns data extracted from a configured webpage, meaning user workflows may transmit target URLs and scraped content outside the local trust boundary. In the context of a scraping/LLM skill, that is expected behavior, but it is still security-relevant because users may pass sensitive targets or data without realizing the third-party exposure.

External Transmission

Medium
Category
Data Exfiltration
Content
### Static API (fixed URL)

```bash
curl -X GET "https://api.pulpminer.com/external/<apiId>" \
  -H "apikey: <PULPMINER_API_KEY>"
```
Confidence
92% confidence
Finding
This endpoint sends requests to an external service using an API key and returns data extracted from a configured webpage, meaning user workflows may transmit target URLs and scraped content outside the local trust boundary. In the context of a scraping/LLM skill, that is expected behavior, but it is still security-relevant because users may pass sensitive targets or data without realizing the third-party exposure.

External Transmission

Medium
Category
Data Exfiltration
Content
For APIs saved with template URLs like `https://example.com/search?q={{query}}&page={{page}}`:

```bash
curl -X POST "https://api.pulpminer.com/external/<apiId>" \
  -H "apikey: <PULPMINER_API_KEY>" \
  -H "Content-Type: application/json" \
  -d '{"query": "javascript frameworks", "page": "1"}'
Confidence
93% confidence
Finding
The dynamic API example allows user-supplied variables to be inserted into a saved URL and sent to PulpMiner, which increases the risk of transmitting sensitive search terms, identifiers, or internal query values to an external service. In a scraping context this is functional, but it becomes dangerous if users treat the tool as local-only or include secrets and private parameters.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
# Static API
curl -X POST "https://api.pulpminer.com/external/zapier/get/<apiId>" \
  -H "apikey: <PULPMINER_API_KEY>" \
  -d '{"callbackURL": "https://hooks.zapier.com/..."}'
Confidence
94% confidence
Finding
The Zapier integration transmits data to both PulpMiner and a user-provided callback URL, expanding the data exposure surface to multiple third parties. If scraped results contain sensitive information or the callback URL is misconfigured or attacker-controlled, data can be exfiltrated beyond the user's expected boundary.

External Transmission

Medium
Category
Data Exfiltration
Content
```bash
# Static API
curl -X POST "https://api.pulpminer.com/external/zapier/get/<apiId>" \
  -H "apikey: <PULPMINER_API_KEY>" \
  -d '{"callbackURL": "https://hooks.zapier.com/..."}'
Confidence
94% confidence
Finding
The Zapier integration transmits data to both PulpMiner and a user-provided callback URL, expanding the data exposure surface to multiple third parties. If scraped results contain sensitive information or the callback URL is misconfigured or attacker-controlled, data can be exfiltrated beyond the user's expected boundary.

External Transmission

Medium
Category
Data Exfiltration
Content
-d '{"callbackURL": "https://hooks.zapier.com/..."}'

# Dynamic API
curl -X POST "https://api.pulpminer.com/external/zapier/post/<apiId>" \
  -H "apikey: <PULPMINER_API_KEY>" \
  -d '{"callbackURL": "https://hooks.zapier.com/...", "query": "value"}'
```
Confidence
94% confidence
Finding
The dynamic Zapier endpoint combines external scraping with a callback mechanism and user-supplied query data, creating multiple opportunities for sensitive data to leave the original environment. If users submit confidential parameters or send output to untrusted webhooks, the skill can facilitate unintended exfiltration.

External Transmission

Medium
Category
Data Exfiltration
Content
Verify authentication:

```bash
curl -X GET "https://api.pulpminer.com/external/n8n/auth" \
  -H "apikey: <PULPMINER_API_KEY>"
```
Confidence
84% confidence
Finding
Even the auth verification call sends an API key to an external service, which is expected for SaaS integration but still represents credential use outside the local environment. The risk is lower than scraping endpoints, but users should understand that the skill depends on remote authentication and third-party trust.

Static analysis

No suspicious patterns detected.