Back to skill

Security audit

Virtual Screening

Security checks for vulnerabilities and agentic risk

Overview

The skill has a legitimate SciMiner virtual-screening purpose, but it tells the agent to run invocation code derived from mutable remote Markdown while using an API credential and uploading research files.

Install only if you are comfortable with the agent reading a SciMiner API key, uploading screening inputs to SciMiner, and relying on SciMiner-hosted Markdown that can change after review. Prefer a version that bundles reviewed request-building logic locally or pins and validates the remote API docs before use.

Vulnerability Patterns
  • Remote Payload Retrieval and ExecutionFetches external code whose behavior can change after review
  • 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
  • Unauthorized Access and Privilege EscalationObtains permissions beyond the task's legitimate needs
Findings (1)

T03 · Remote Payload Retrieval and Execution

Error
Location
SKILL.md:44
Finding

Mutable Remote Documentation Is Used as an Executable Code Source

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 44–60 and 84–87
Vulnerability Type: Remote payload retrieval and execution
Risk Level: High

Vulnerable Code Snippet

markdown
## Authoritative tool-doc source (required)

The published Markdown files under `https://sciminer.tech/tool_api_files/` are
the single source of truth for `provider_name`, `tool_name`, allowed
`parameters`, file-upload behavior, request encoding, and the example
submission flow for this skill's included tools.

Use these SciMiner Markdown docs:

- `Transformer-Based Proprietary Library Virtual Screen` -> `Transformer-Based Proprietary Library Virtual Screen_api_doc.md`
- `Docking-Based Proprietary Library Virtual Screen` -> `Docking-Based Proprietary Library Virtual Screen_api_doc.md`
- `Transformer-Based Open Library Virtual Screen` -> `Transformer-Based Open Library Virtual Screen_api_doc.md`
- `Docking-Based Open Library Virtual Screen` -> `Docking-Based Open Library Virtual Screen_api_doc.md`

The agent MUST:

1. Resolve the selected tool's Markdown file and read it before every
   invocation.
2. Never invent `provider_name`, `tool_name`, parameter names, enum values,
   upload-field names, content type, or submission flow from memory.
3. Extract and follow the selected doc section's exact:
markdown
5. Upload required file inputs exactly as described by the selected Markdown
   doc and replace local paths with returned `file_id` values.
6. Write or run the invocation code directly from the selected Markdown doc's
   base-information block, parameter table, file-upload instructions, and
   example code. Do not apply a shared invocation template or local registry
   abstraction in this skill.

Technical Analysis

The Skill requires the agent to retrieve mutable Markdown documents from an external website before every invocation and then “write or run” invocation code based directly ...[truncated 3197 chars]

Remediation
View remediation

Remediation Suggestions

  1. Bundle reviewed invocation logic locally. Store the API client and fixed request-building logic inside the Skill package instead of generating or executing code from remote examples.
  2. Pin external specifications. If remote documentation must be consulted, pin an immutable version and verify it against a cryptographic digest included in the reviewed package.
  3. Never execute documentation examples. Parse remote documentation only as untrusted reference text. Do not evaluate, import, source, or copy its executable examples into an interpreter.
  4. Enforce a local allowlist. Define permitted HTTPS origins, endpoints, HTTP methods, authentication-header placement, upload fields, content types, parameter names, and response fields in reviewed local code.
  5. Separate credentials from generated code. Use a constrained HTTP client or credential broker that can attach X-Auth-Token only to an explicitly allowlisted SciMiner origin. Invocation code should never receive the raw token.
  6. Restrict redirects and destinations. Reject cross-origin redirects and prevent credentials or uploaded files from being sent to hosts outside the approved SciMiner domain.
  7. Sandbox execution. If code generation remains unavoidable, run it without shell access, with a read-only filesystem, restricted outbound networking, no direct credential-file access, and access only to explicitly approved input files.
  8. Require explicit upload approval. Before uploading user files, display the destination, file names, and data categories and obtain user confirmation.
  9. Validate remote content as data. Apply a strict schema to any remotely sourced parameter metadata and reject executable blocks, unexpected endpoints, unknown fields, and instructions unrelated to the documented API operation.
  10. Add integrity monitoring. Monitor the hosted documentation and deployment pipeline for unauthorized changes, and conduc ...[truncated 67 chars]
Vulnerability Patterns
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • Rogue AgentSelf-Modification, Session Persistence
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (7)

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

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

md
name: virtual-screening
description: Virtual screening workflows for open and proprietary chemical libraries, including transformer-based screening and docking-based screening through SciMiner.
credential_files:
   - ~/.config/sciminer/credentials.json
---

# Virtual Screening Skill

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

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

md
name: virtual-screening
description: Virtual screening workflows for open and proprietary chemical libraries, including transformer-based screening and docking-based screening through SciMiner.
credential_files:
   - ~/.config/sciminer/credentials.json
---

# Virtual Screening Skill

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

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

md
name: virtual-screening
description: Virtual screening workflows for open and proprietary chemical libraries, including transformer-based screening and docking-based screening through SciMiner.
credential_files:
   - ~/.config/sciminer/credentials.json
---

# Virtual Screening Skill

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

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

md
name: virtual-screening
description: Virtual screening workflows for open and proprietary chemical libraries, including transformer-based screening and docking-based screening through SciMiner.
credential_files:
   - ~/.config/sciminer/credentials.json
---

# Virtual Screening Skill

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

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

md
name: virtual-screening
description: Virtual screening workflows for open and proprietary chemical libraries, including transformer-based screening and docking-based screening through SciMiner.
credential_files:
   - ~/.config/sciminer/credentials.json
---

# Virtual Screening Skill

Credential Access

High
Category
Privilege Escalation
Confidence
70% confidence
Finding

Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Content

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

md
name: virtual-screening
description: Virtual screening workflows for open and proprietary chemical libraries, including transformer-based screening and docking-based screening through SciMiner.
credential_files:
   - ~/.config/sciminer/credentials.json
---

# Virtual Screening Skill

Session Persistence

Medium
Category
Rogue Agent
Confidence
88% confidence
Finding

The skill instructs the agent to read and then write or run invocation code directly from remote Markdown documentation before every invocation. That creates a dynamic remote-instruction execution path: if the external docs are compromised, changed maliciously, or prompt-injected, the agent could be induced to send sensitive inputs to unintended endpoints, misuse credentials, or perform unsafe actions.

Content

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

md
4. Collect any missing required parameters from the user.
5. Upload required file inputs exactly as described by the selected Markdown
   doc and replace local paths with returned `file_id` values.
6. Write or run the invocation code directly from the selected Markdown doc's
   base-information block, parameter table, file-upload instructions, and
   example code. Do not apply a shared invocation template or local registry
   abstraction in this skill.

Static analysis

No suspicious patterns detected.