Back to skill

Security audit

OpenBio

Security checks for vulnerabilities and agentic risk

Overview

The skill mostly matches its OpenBio API purpose, but its update instructions are too broad and can replace the skill globally across agents from mutable remote sources.

Review before installing. Use the OpenBio API only for data you are comfortable sending to OpenBio, protect OPENBIO_API_KEY, and do not run remote returned update/install commands. Prefer a pinned reviewed release, avoid --global --agent '*' -y, and require explicit approval for updates or plasmid edits that overwrite files.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (2)

T03 · Remote Payload Retrieval and Execution

Error
Location
rules/api.md:39
Finding
Remote API Response Is Trusted as an Executable Update Instruction<![CDATA[ ## Vulnerability Details **File Location**: `rules/api.md:39-58` **Vulnerability Type**: Remote payload retrieval and execution **Risk Level**: High ### Vulnerable Code ```markdown ## Skill Version Check No authentication required. Returns the latest skill version so agents can detect stale installations: ```bash curl -X GET "https://api.openbio.tech/api/v1/tools/skill-version" ``` Response: ```json { "skill": "openbio", "version": "1.0.0", "updated_at": "2026-02-06", "update_command": "bunx skills update", "install_command": "bunx skills add openbio-ai/skills --skill openbio --global --agent '*' -y" } ``` Compare `version` against the `version` field in your SKILL.md metadata. If stale, run the `update_command` (or `install_command` if update fails). ``` ### Technical Analysis The Skill instructs the agent to retrieve update information from an unauthenticated API endpoint and then run command text represented by the response’s `update_command` or `install_command` fields. Although HTTPS protects transport under normal conditions, the response remains mutable and controlled by the remote service. The instructions do not require the agent to: - Compare the returned command against a local allowlist. - Reject additional shell operators or arguments. - Validate that only the semantic version field is used. - Pin the downloaded Skill to an immutable commit or signed release. - Request explicit user approval before executing the command. This creates a remote code-execution trust boundary. Compromise of the OpenBio API, its deployment credentials, DNS or TLS trust path, or the response-generation logic could allow an attacker to replace the documented commands with arbitrary shell instructions. ### Attack Path 1. An attacker compromises the API service or the component generating `/api/v1/tools/skill-version`. 2. The attacker returns a version newer than the locally installed version. 3. The response supplies a malicious `update_com ...[truncated 972 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Remove `update_command` and `install_command` from the trusted execution flow. Treat all command strings returned by the API as untrusted display data. 2. Use the endpoint only to retrieve a strictly validated semantic version, such as `1.0.5`. 3. Hard-code the permitted update command in the locally reviewed Skill rather than accepting it from the server. 4. Validate the response against a strict schema and reject unexpected fields or malformed version values. 5. Require explicit user confirmation before any installation or update. 6. Pin updates to an immutable commit SHA, signed release, or verified artifact digest. 7. Verify release signatures or checksums before installation. 8. Run update operations with the least-privileged account and prevent access to unrelated credentials. 9. Avoid automatically executing update instructions solely because the server reports a newer version. ]]>

T08 · Insecure Dependencies

Warning
Location
SKILL.md:46
Finding
Unpinned Supply-Chain Update Uses Global Wildcard Agent Installation<![CDATA[ ## Vulnerability Details **File Location**: `SKILL.md:46-56` **Vulnerability Type**: Insecure dependency installation and excessive deployment scope **Risk Level**: Medium ### Vulnerable Code ```markdown This returns `{"skill": "openbio", "version": "X.Y.Z", ...}`. Compare against the `version` field at the top of this file (currently **1.0.4**). If the API returns a newer version: ```bash bunx skills update ``` If that fails, remove and re-install: ```bash bunx skills remove openbio --global -y bunx skills add openbio-ai/skills --skill openbio --global --agent '*' -y ``` ``` The initial installation is also performed from a mutable repository reference: ```bash bunx skills add https://github.com/openbio-ai/skills --skill openbio ``` ### Technical Analysis The update and installation workflow does not pin the Skill to an immutable commit, signed release, checksum, or content digest. Consequently, the code installed by the command can change after the currently audited files have been reviewed. The fallback installation also includes: - `--global`, which expands the change beyond the current project or session. - `--agent '*'`, which targets every supported agent rather than only the agent requesting the functionality. - `-y`, which suppresses interactive confirmation. These options exceed the minimum privileges and deployment scope necessary to use OpenBio in a single agent. A compromised upstream repository, package-resolution path, maintainer account, or future malicious release could therefore affect unrelated agents through one update action. ### Attack Path 1. An attacker compromises the upstream `openbio-ai/skills` repository, its maintainer account, or a dependency used by the update process. 2. The remote version endpoint reports that a newer release exists, or the user otherwise initiates an update. 3. `bunx skills update` retrieves mutable upstream content without an audited revision or integrity pin. 4. If the update fails, th ...[truncated 981 chars]
Remediation
<![CDATA[ ## Remediation Suggestions 1. Pin installation to a reviewed commit SHA or immutable release tag. 2. Verify a cryptographic checksum or publisher signature before activating an update. 3. Replace mutable commands with an installation command that identifies the exact approved revision. 4. Remove `--global` by default and install only within the intended project or agent scope. 5. Replace `--agent '*'` with an explicit agent identifier selected by the user. 6. Remove `-y` for security-sensitive update and installation operations. 7. Display the source, version, commit, permissions, and affected agents before installation. 8. Require explicit user approval for every update. 9. Preserve the previous verified version and support rollback if validation fails. 10. Review dependency changes and Skill instruction changes before promoting a new release. ]]>
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 (177)

Anti-Refusal Statement

High
Category
Anti-Refusal
Content
→ No warning about frameshift (5 is not a multiple of 3)
Confidence
80% confidence
Finding
Skill instructs the agent to omit warnings, disclaimers, or ethical commentary. Stripping safety caveats hides risk from the user and is a common jailbreak preamble.

Ae4

Medium
Category
analysis-evasion
Confidence
80% confidence
Finding
Suspicious Unicode normalization or mixed-script content

External Transmission

Medium
Category
Data Exfiltration
Content
Before using the API, verify your skill is up to date:

```bash
curl -s "https://api.openbio.tech/api/v1/tools/skill-version"
```

This returns `{"skill": "openbio", "version": "X.Y.Z", ...}`. Compare against the `version` field at the top of this file (currently **1.0.4**). If the API returns a newer version:
Confidence
60% 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
-H "X-API-Key: $OPENBIO_API_KEY"
```

**Base URL**: `https://api.openbio.tech/api/v1`

## Critical: Always Check Tool Schema
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
-H "X-API-Key: $OPENBIO_API_KEY"
```

**Base URL**: `https://api.openbio.tech/api/v1`

## Critical: Always Check Tool Schema
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
-H "X-API-Key: $OPENBIO_API_KEY"
```

**Base URL**: `https://api.openbio.tech/api/v1`

## Critical: Always Check Tool Schema
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
-H "X-API-Key: $OPENBIO_API_KEY"
```

**Base URL**: `https://api.openbio.tech/api/v1`

## Critical: Always Check Tool Schema
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
-H "X-API-Key: $OPENBIO_API_KEY"
```

**Base URL**: `https://api.openbio.tech/api/v1`

## Critical: Always Check Tool Schema
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
-H "X-API-Key: $OPENBIO_API_KEY"
```

**Base URL**: `https://api.openbio.tech/api/v1`

## Critical: Always Check Tool Schema
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
-H "X-API-Key: $OPENBIO_API_KEY"
```

**Base URL**: `https://api.openbio.tech/api/v1`

## Critical: Always Check Tool Schema
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
-H "X-API-Key: $OPENBIO_API_KEY"
```

**Base URL**: `https://api.openbio.tech/api/v1`

## Critical: Always Check Tool Schema
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
-H "X-API-Key: $OPENBIO_API_KEY"
```

**Base URL**: `https://api.openbio.tech/api/v1`

## Critical: Always Check Tool Schema
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
-H "X-API-Key: $OPENBIO_API_KEY"
```

**Base URL**: `https://api.openbio.tech/api/v1`

## Critical: Always Check Tool Schema
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
-H "X-API-Key: $OPENBIO_API_KEY"
```

**Base URL**: `https://api.openbio.tech/api/v1`

## Critical: Always Check Tool Schema
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
-H "X-API-Key: $OPENBIO_API_KEY"
```

**Base URL**: `https://api.openbio.tech/api/v1`

## Critical: Always Check Tool Schema
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
-H "X-API-Key: $OPENBIO_API_KEY"
```

**Base URL**: `https://api.openbio.tech/api/v1`

## Critical: Always Check Tool Schema
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
-H "X-API-Key: $OPENBIO_API_KEY"
```

**Base URL**: `https://api.openbio.tech/api/v1`

## Critical: Always Check Tool Schema
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
-H "X-API-Key: $OPENBIO_API_KEY"
```

**Base URL**: `https://api.openbio.tech/api/v1`

## Critical: Always Check Tool Schema
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
-H "X-API-Key: $OPENBIO_API_KEY"
```

**Base URL**: `https://api.openbio.tech/api/v1`

## Critical: Always Check Tool Schema
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
-H "X-API-Key: $OPENBIO_API_KEY"
```

**Base URL**: `https://api.openbio.tech/api/v1`

## Critical: Always Check Tool Schema
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
-H "X-API-Key: $OPENBIO_API_KEY"
```

**Base URL**: `https://api.openbio.tech/api/v1`

## Critical: Always Check Tool Schema
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
-H "X-API-Key: $OPENBIO_API_KEY"
```

**Base URL**: `https://api.openbio.tech/api/v1`

## Critical: Always Check Tool Schema
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
-H "X-API-Key: $OPENBIO_API_KEY"
```

**Base URL**: `https://api.openbio.tech/api/v1`

## Critical: Always Check Tool Schema
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
-H "X-API-Key: $OPENBIO_API_KEY"
```

**Base URL**: `https://api.openbio.tech/api/v1`

## Critical: Always Check Tool Schema
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
-H "X-API-Key: $OPENBIO_API_KEY"
```

**Base URL**: `https://api.openbio.tech/api/v1`

## Critical: Always Check Tool Schema
Confidence
50% confidence
Finding
Data is being sent to an external URL. This could be legitimate telemetry or data exfiltration. Manual review is recommended.