Back to skill

Security audit

botlearn-academic-search

Security checks for vulnerabilities and agentic risk

Overview

This skill is a coherent academic paper search helper; its main risks are expected external scholarly searches, broad activation wording, and one insecure arXiv HTTP endpoint.

Before installing, understand that academic queries may be sent to arXiv, Semantic Scholar, and Google Scholar-related services. Prefer updating the arXiv endpoint to HTTPS if possible, and be aware that broad triggers like research or cite may activate the skill for general research requests.

Vulnerability Patterns
  • 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
  • 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 (1)

T09 · Insecure Skill Coding Practices

Warning
Location
knowledge/domain.md:14
Finding
Plaintext HTTP Used for arXiv API Requests<![CDATA[ ## Vulnerability Details **File Location**: `knowledge/domain.md`, lines 14-17 **Vulnerability Type**: Plaintext transport for external API communication **Risk Level**: Medium ### Vulnerable Code ```md ### API Endpoint - **Base URL**: `http://export.arxiv.org/api/query` - **Method**: GET - **Rate Limit**: 1 request per 3 seconds (be respectful; no authentication required) ``` ### Technical Analysis The configured arXiv API endpoint uses unencrypted HTTP rather than HTTPS. Requests and responses therefore lack transport confidentiality, integrity, and authenticated server identity. An attacker with a privileged network position—such as a compromised gateway, malicious wireless access point, proxy operator, or upstream network adversary—could observe academic search queries or modify the returned Atom XML. Manipulated responses could contain fabricated bibliographic metadata, altered abstracts, or attacker-selected links that the Agent may treat as legitimate research results. ### Attack Path 1. The Agent follows the Skill instructions and sends a search request to `http://export.arxiv.org/api/query`. 2. A network-positioned attacker intercepts the plaintext HTTP connection. 3. The attacker modifies the API response, replacing paper metadata or PDF links with attacker-controlled content. 4. The Agent parses the manipulated response as trusted academic data. 5. Fabricated information or malicious links are incorporated into the Agent's recommendations and presented to the user. ### Impact Assessment This issue does not directly grant local code execution, filesystem access, or elevated system privileges. Its scope is limited to traffic sent through the insecure endpoint and content derived from its responses. Potential impact includes: - Disclosure of users' academic search queries. - Corruption of paper titles, authors, abstracts, publication status, and identifiers. - Injection of false research claims into literature summaries. - Redirecti ...[truncated 135 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Replace the plaintext endpoint with its HTTPS equivalent: ```md - **Base URL**: `https://export.arxiv.org/api/query` ``` 2. Require TLS certificate and hostname validation in the underlying HTTP client. Do not disable certificate verification. 3. Reject redirects that downgrade from HTTPS to HTTP. 4. Restrict redirects and response links to expected arXiv domains, such as `arxiv.org` and `export.arxiv.org`. 5. Validate returned records before presenting them: - Verify arXiv identifiers against the expected identifier format. - Require HTTPS for paper and PDF links. - Cross-check important metadata with Semantic Scholar or another independent source. 6. Treat titles, abstracts, and other externally retrieved text as untrusted data rather than Agent instructions. ]]>
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
Findings (10)

Shadow Command Trigger

Medium
Category
Trigger Abuse
Confidence
70% confidence
Finding
Shadow Command Trigger: 'find papers' conflicts with built-in command 'find'

Autonomous Decision Making

Medium
Category
Excessive Agency
Content
- **Fix**: Only return papers actually retrieved from database API responses. If the search returns fewer than 5 relevant results, report that honestly rather than padding with fabricated entries. Include the database query used so the user can verify.

### 15. Ignoring Open Access Status
- **Problem**: Returning papers behind paywalls without checking for open-access alternatives. Users without institutional access cannot read the papers.
- **Fix**: For each paper, check: (a) arXiv preprint version, (b) Semantic Scholar `openAccessPdf` field, (c) author's personal website or institutional repository. Flag papers with no open-access version available and suggest the user check their institutional library access.

## Workflow Anti-Patterns
Confidence
75% confidence
Finding
Skill enables autonomous high-impact decisions without human-in-the-loop verification. Critical operations (destructive commands, financial transactions, data deletion) should require explicit user confirmation.

External Transmission

Medium
Category
Data Exfiltration
Content
### API Endpoints

#### Paper Search
- **URL**: `GET https://api.semanticscholar.org/graph/v1/paper/search`
- **Rate Limit**: 100 requests/5 minutes (unauthenticated); 1 request/second with API key

| Parameter | Description | Example |
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
### API Endpoints

#### Paper Search
- **URL**: `GET https://api.semanticscholar.org/graph/v1/paper/search`
- **Rate Limit**: 100 requests/5 minutes (unauthenticated); 1 request/second with API key

| Parameter | Description | Example |
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
### API Endpoints

#### Paper Search
- **URL**: `GET https://api.semanticscholar.org/graph/v1/paper/search`
- **Rate Limit**: 100 requests/5 minutes (unauthenticated); 1 request/second with API key

| Parameter | Description | Example |
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
### API Endpoints

#### Paper Search
- **URL**: `GET https://api.semanticscholar.org/graph/v1/paper/search`
- **Rate Limit**: 100 requests/5 minutes (unauthenticated); 1 request/second with API key

| Parameter | Description | Example |
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
### API Endpoints

#### Paper Search
- **URL**: `GET https://api.semanticscholar.org/graph/v1/paper/search`
- **Rate Limit**: 100 requests/5 minutes (unauthenticated); 1 request/second with API key

| Parameter | Description | Example |
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
### API Endpoints

#### Paper Search
- **URL**: `GET https://api.semanticscholar.org/graph/v1/paper/search`
- **Rate Limit**: 100 requests/5 minutes (unauthenticated); 1 request/second with API key

| Parameter | Description | Example |
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.

Vague Triggers

Medium
Confidence
95% confidence
Finding
The trigger list contains broad generic terms such as "research," "cite," and "scholar" that are likely to appear in many unrelated conversations. This can cause the skill to activate unexpectedly, pulling the agent into academic-search behavior when the user did not intend it, which may lead to irrelevant actions, context hijacking, or interference with higher-priority skills.

Vague Triggers

Medium
Confidence
92% confidence
Finding
The activation clause, "WHEN the user requests academic paper search, literature review, or research discovery," is broad and semantically overlaps with many normal requests for general research or information gathering. In a multi-skill environment, this ambiguity increases the chance of unintended activation and misrouting, especially because the skill is also configured with generic triggers.

Static analysis

No suspicious patterns detected.