Back to skill

Security audit

BeyondBSR - BookSearch API

Security checks for vulnerabilities and agentic risk

Overview

This skill is a disclosed BeyondBSR book-research API guide that uses an API key and external calls in a way that matches its stated purpose.

Install this only if you trust BeyondBSR with your book-search queries and with the BOOKSEARCH_API_KEY used for the private beta. Do not expose the key in chat logs or screenshots, and expect the skill to contact api.beyondbsr.com when used.

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
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • 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 (25)

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 43)May include surrounding context.

Endpoints

text
POST https://api.beyondbsr.com/api/v1/books/search
GET  https://api.beyondbsr.com/api/v1/books/{domainId}/{asin}/bsr-history?days={1..365}
GET  https://api.beyondbsr.com/api/v1/categories?domainId={..}&depth={0..5}&includeFiction={true|false}
GET  https://api.beyondbsr.com/api/v1/categories/children?domainId={..}&catId={..}

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 44)May include surrounding context.

Endpoints

text
POST https://api.beyondbsr.com/api/v1/books/search
GET  https://api.beyondbsr.com/api/v1/books/{domainId}/{asin}/bsr-history?days={1..365}
GET  https://api.beyondbsr.com/api/v1/categories?domainId={..}&depth={0..5}&includeFiction={true|false}
GET  https://api.beyondbsr.com/api/v1/categories/children?domainId={..}&catId={..}

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 45)May include surrounding context.

Endpoints

text
POST https://api.beyondbsr.com/api/v1/books/search
GET  https://api.beyondbsr.com/api/v1/books/{domainId}/{asin}/bsr-history?days={1..365}
GET  https://api.beyondbsr.com/api/v1/categories?domainId={..}&depth={0..5}&includeFiction={true|false}
GET  https://api.beyondbsr.com/api/v1/categories/children?domainId={..}&catId={..}

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 46)May include surrounding context.

Endpoints

text
POST https://api.beyondbsr.com/api/v1/books/search
GET  https://api.beyondbsr.com/api/v1/books/{domainId}/{asin}/bsr-history?days={1..365}
GET  https://api.beyondbsr.com/api/v1/categories?domainId={..}&depth={0..5}&includeFiction={true|false}
GET  https://api.beyondbsr.com/api/v1/categories/children?domainId={..}&catId={..}

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 47)May include surrounding context.

Endpoints

text
POST https://api.beyondbsr.com/api/v1/books/search
GET  https://api.beyondbsr.com/api/v1/books/{domainId}/{asin}/bsr-history?days={1..365}
GET  https://api.beyondbsr.com/api/v1/categories?domainId={..}&depth={0..5}&includeFiction={true|false}
GET  https://api.beyondbsr.com/api/v1/categories/children?domainId={..}&catId={..}

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 48)May include surrounding context.

Endpoints

text
POST https://api.beyondbsr.com/api/v1/books/search
GET  https://api.beyondbsr.com/api/v1/books/{domainId}/{asin}/bsr-history?days={1..365}
GET  https://api.beyondbsr.com/api/v1/categories?domainId={..}&depth={0..5}&includeFiction={true|false}
GET  https://api.beyondbsr.com/api/v1/categories/children?domainId={..}&catId={..}

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 176)May include surrounding context.

Endpoints

text
POST https://api.beyondbsr.com/api/v1/books/search
GET  https://api.beyondbsr.com/api/v1/books/{domainId}/{asin}/bsr-history?days={1..365}
GET  https://api.beyondbsr.com/api/v1/categories?domainId={..}&depth={0..5}&includeFiction={true|false}
GET  https://api.beyondbsr.com/api/v1/categories/children?domainId={..}&catId={..}

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 326)May include surrounding context.

Endpoints

text
POST https://api.beyondbsr.com/api/v1/books/search
GET  https://api.beyondbsr.com/api/v1/books/{domainId}/{asin}/bsr-history?days={1..365}
GET  https://api.beyondbsr.com/api/v1/categories?domainId={..}&depth={0..5}&includeFiction={true|false}
GET  https://api.beyondbsr.com/api/v1/categories/children?domainId={..}&catId={..}

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 357)May include surrounding context.

Endpoints

text
POST https://api.beyondbsr.com/api/v1/books/search
GET  https://api.beyondbsr.com/api/v1/books/{domainId}/{asin}/bsr-history?days={1..365}
GET  https://api.beyondbsr.com/api/v1/categories?domainId={..}&depth={0..5}&includeFiction={true|false}
GET  https://api.beyondbsr.com/api/v1/categories/children?domainId={..}&catId={..}

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 546)May include surrounding context.

Endpoints

text
POST https://api.beyondbsr.com/api/v1/books/search
GET  https://api.beyondbsr.com/api/v1/books/{domainId}/{asin}/bsr-history?days={1..365}
GET  https://api.beyondbsr.com/api/v1/categories?domainId={..}&depth={0..5}&includeFiction={true|false}
GET  https://api.beyondbsr.com/api/v1/categories/children?domainId={..}&catId={..}

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 550)May include surrounding context.

Endpoints

text
POST https://api.beyondbsr.com/api/v1/books/search
GET  https://api.beyondbsr.com/api/v1/books/{domainId}/{asin}/bsr-history?days={1..365}
GET  https://api.beyondbsr.com/api/v1/categories?domainId={..}&depth={0..5}&includeFiction={true|false}
GET  https://api.beyondbsr.com/api/v1/categories/children?domainId={..}&catId={..}

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 554)May include surrounding context.

Endpoints

text
POST https://api.beyondbsr.com/api/v1/books/search
GET  https://api.beyondbsr.com/api/v1/books/{domainId}/{asin}/bsr-history?days={1..365}
GET  https://api.beyondbsr.com/api/v1/categories?domainId={..}&depth={0..5}&includeFiction={true|false}
GET  https://api.beyondbsr.com/api/v1/categories/children?domainId={..}&catId={..}

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 559)May include surrounding context.

Endpoints

text
POST https://api.beyondbsr.com/api/v1/books/search
GET  https://api.beyondbsr.com/api/v1/books/{domainId}/{asin}/bsr-history?days={1..365}
GET  https://api.beyondbsr.com/api/v1/categories?domainId={..}&depth={0..5}&includeFiction={true|false}
GET  https://api.beyondbsr.com/api/v1/categories/children?domainId={..}&catId={..}

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 566)May include surrounding context.

Endpoints

text
POST https://api.beyondbsr.com/api/v1/books/search
GET  https://api.beyondbsr.com/api/v1/books/{domainId}/{asin}/bsr-history?days={1..365}
GET  https://api.beyondbsr.com/api/v1/categories?domainId={..}&depth={0..5}&includeFiction={true|false}
GET  https://api.beyondbsr.com/api/v1/categories/children?domainId={..}&catId={..}

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% 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 173)May include surrounding context.

}

text

## Example cURL

```bash
curl -X POST "https://api.beyondbsr.com/api/v1/books/search" \

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

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

md
### Result item — `BookSearchResultDto` (most relevant fields)

| Field                | Type     | Notes                                                                                  |
|----------------------|----------|----------------------------------------------------------------------------------------|
| `id`                 | long     | Internal book ID.                                                                      |
| `asin`               | string   | 10-char Amazon ASIN.                                                                   |

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

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

md
| `avgBsr90d`          | int?     | Always populated.                                                                      |
| `avgBsr180d`         | int?     | Always populated.                                                                      |
| `avgBsr365d`         | int?     | Always populated.                                                                      |
| `pageCount`          | int?     | —                                                                                      |
| `priceCents`         | int?     | List price (MSRP) in cents.                                                            |
| `dailyEstimate`      | decimal  | Estimated copies/day from BSR model.                                                   |
| `weeklyEstimate`     | decimal  | Estimated copies/week.                                                                 |

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

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

md
### Shared response object — `CategoryBrowseNodeDto`

| Field             | Type     | Notes                                                                                       |
|-------------------|----------|---------------------------------------------------------------------------------------------|
| `catId`           | long     | Amazon browse node ID. **This is the value to pass into `categoryIds` in book search.**     |
| `parentCatId`     | long?    | Parent's `catId`. `null` for roots.                                                         |

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

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

md
### Shared response object — `CategoryBrowseNodeDto`

| Field             | Type     | Notes                                                                                       |
|-------------------|----------|---------------------------------------------------------------------------------------------|
| `catId`           | long     | Amazon browse node ID. **This is the value to pass into `categoryIds` in book search.**     |
| `parentCatId`     | long?    | Parent's `catId`. `null` for roots.                                                         |

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

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

GET /api/v1/categories?domainId={..}&depth={0..5}&includeFiction={true|false}

text

| Param            | Type  | Default | Notes                                                                                                                                  |
|------------------|-------|---------|----------------------------------------------------------------------------------------------------------------------------------------|
| `domainId`       | int   | —       | Required. Marketplace ID (1-12, but only `1` US and `4` FR return data).                                                                |
| `depth`          | int?  | 2       | Hierarchy level. 0 = root. 2 = top-level book categories ("Self-Help", "Cookbooks…", etc.). Allowed 0-5.                               |

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

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

GET /api/v1/categories/search?domainId={..}&q={..}&limit={1..200}

text

| Param      | Type    | Default | Notes                                                                                                              |
|------------|---------|---------|--------------------------------------------------------------------------------------------------------------------|
| `domainId` | int     | —       | Required.                                                                                                          |
| `q`        | string  | —       | Required. Case-insensitive substring match on `name`. Min **3** chars, max 100. Wildcards (`%`, `_`, `\`) are treated as literals (escaped server-side). |

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

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

md
| Param      | Type    | Default | Notes                                                                                                              |
|------------|---------|---------|--------------------------------------------------------------------------------------------------------------------|
| `domainId` | int     | —       | Required.                                                                                                          |
| `q`        | string  | —       | Required. Case-insensitive substring match on `name`. Min **3** chars, max 100. Wildcards (`%`, `_`, `\`) are treated as literals (escaped server-side). |
| `limit`    | int?    | 50      | 1-200. Pushed down to SQL.                                                                                         |

Whitespace Padding

Medium
Category
Prompt Injection
Confidence
70% confidence
Finding

Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.

Content

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

md
|------------|---------|---------|--------------------------------------------------------------------------------------------------------------------|
| `domainId` | int     | —       | Required.                                                                                                          |
| `q`        | string  | —       | Required. Case-insensitive substring match on `name`. Min **3** chars, max 100. Wildcards (`%`, `_`, `\`) are treated as literals (escaped server-side). |
| `limit`    | int?    | 50      | 1-200. Pushed down to SQL.                                                                                         |

**No implicit filters.** Searches across the ENTIRE category tree of the marketplace (not just Books) — so a query like "Sports" on Amazon.com will surface both "Sports & Outdoors" (under Books) and the toy/apparel "Sports" nodes. The agent should filter client-side by `rootCatId` if the user only wants book categories.

External Transmission

Medium
Category
Data Exfiltration
Confidence
60% 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 545)May include surrounding context.

bash
# 1. find candidate cat_ids
curl -H "X-API-Key: $BOOKSEARCH_API_KEY" \
  "https://api.beyondbsr.com/api/v1/categories/search?domainId=1&q=manga&limit=10"

# 2. inspect the breadcrumb of a candidate to confirm it's under Books

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
84% confidence
Finding

The markdown directs the agent to map marketplace references including French terms and later states that category names are localized to the marketplace language, which implies French labels for domainId=4. There is no explicit instruction to ask the user whether they want localized French labels versus their preferred language, creating a locale-choice policy issue.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.