Back to skill

Security audit

bioRxiv access using API with support of time period and category

Security checks for vulnerabilities and agentic risk

Overview

The skill is a straightforward bioRxiv lookup helper that fetches public preprint metadata, with minor date-handling documentation bugs but no hidden access or persistence.

This skill is reasonable to install if you want bioRxiv metadata lookup. Be aware that its default and --days behavior may fetch a broader date range than expected, so use explicit --start and --end dates when you need precise recency.

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
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (6)

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

md
import urllib.parse
import sys

BIO_RXIV_API = "https://api.biorxiv.org/details/biorxiv"

COLLECTIONS = [
    "bioinformatics", "genomics", "molecular-biology", "cell-biology",

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 · references/api.md (reported line 60)May include surrounding context.

md
import urllib.parse
import sys

BIO_RXIV_API = "https://api.biorxiv.org/details/biorxiv"

COLLECTIONS = [
    "bioinformatics", "genomics", "molecular-biology", "cell-biology",

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 · scripts/biorxiv.py (reported line 13)May include surrounding context.

python
import urllib.parse
import sys

BIO_RXIV_API = "https://api.biorxiv.org/details/biorxiv"

COLLECTIONS = [
    "bioinformatics", "genomics", "molecular-biology", "cell-biology",

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 · scripts/biorxiv.py (reported line 51)May include surrounding context.

python
import urllib.parse
import sys

BIO_RXIV_API = "https://api.biorxiv.org/details/biorxiv"

COLLECTIONS = [
    "bioinformatics", "genomics", "molecular-biology", "cell-biology",

Intent-Code Divergence

Medium
Category
Not specified by scanner
Confidence
99% confidence
Finding

The docstring states that the function gets papers from the last N days, suggesting behavior tied to the days argument. In reality, it discards the days parameter and simply calls get_papers with start_date=None and end_date=None, which triggers the broad default date behavior instead.

Content

No source excerpt is available for this finding.

Intent-Code Divergence

Low
Category
Not specified by scanner
Confidence
98% confidence
Finding

The inline comment at L058 says the function defaults to the last 30 days when no dates are provided. However, the implementation sets start_date to 2020-01-01 and end_date to today's date, which is a much broader range and directly contradicts the comment.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.