Back to skill

Security audit

Pharma Doc Reference

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly a pharmaceutical document reference library, but it instructs the agent to automatically install and load an unpinned external skill without user approval.

Review before installing. Use it only if you trust the source of `universal-task-os` and your environment requires explicit approval or pinning before installing external skills. For safer use, keep it in read-only reference mode unless the dependency is already verified.

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

T08 · Insecure Dependencies

Warning
Location
SKILL.md:32
Finding

Automatic Installation and Loading of an Unpinned External Skill

Content
View full analysis

Vulnerability Details

File Location: SKILL.md, lines 32–39
Vulnerability Type: T08: Insecure Dependencies
Risk Level: Medium

Vulnerable Code

markdown
**Loading check process** (execute on every activation):

1. Check whether the `universal-task-os` Skill is installed
2. **Not installed** → automatically install the `universal-task-os` Skill
3. **Installation succeeds** → load UTOS simultaneously and execute according to this Skill's usage rules
4. **Installation fails** → fall back to **read-only reference mode**:
   - ✅ Allowed: consult the document catalog, content requirements, and exemplar index
   - ❌ Refuse: any task involving document production, pipeline orchestration, or content generation, and state that Universal Task OS must be installed first

The requirement is reiterated at SKILL.md, line 52:

markdown
1. **Dependency check**: when activated, follow the process above to check for and install UTOS

Technical Analysis

The Skill instructs the agent to install and immediately load the external universal-task-os Skill whenever that dependency is absent. The dependency is identified only by a mutable package or Skill name. The instructions do not specify:

  • A trusted registry or repository
  • An authenticated publisher identity
  • An immutable version or commit
  • A cryptographic checksum or signature
  • A permission manifest
  • A review or approval step
  • User confirmation before installation and loading

This creates an unsafe software supply-chain boundary. Depending on how the hosting agent resolves Skill names, an attacker could exploit dependency confusion, namespace takeover, publisher compromise, or a malicious update. The newly installed dependency could then supply attacker-controlled instructions or executable components.

The audited project does not contain an installer command, download URL, or copy of the dependency. Therefore, this finding does not establish that the current `universal-task-os ...[truncated 1857 chars]

Remediation
View remediation

Remediation Suggestions

  1. Remove automatic installation from the activation process. If the dependency is missing, use the existing read-only fallback and inform the user.
  2. Require explicit, informed user approval before installing any external Skill.
  3. Pin the dependency to:
    • A specific trusted registry or repository
    • A verified publisher identity
    • An immutable release version or commit
    • An expected cryptographic digest or verified signature
  4. Verify package provenance and integrity before installation and again before loading.
  5. Do not install and load a new dependency in the same activation. Require a separate review or restart boundary.
  6. Declare the dependency's required permissions and enforce least privilege through the host environment.
  7. Maintain an allowlist of approved dependency identifiers and reject name-only or ambiguous resolution.
  8. Record dependency resolution details, verification results, version, digest, and approval decisions in an audit log.
  9. Periodically review pinned versions for security updates, but do not permit silent or automatic upgrades.
  10. Prefer bundling a reviewed, immutable dependency when licensing and distribution constraints allow it.
Vulnerability Patterns
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Excessive AgencyUnrestricted Tool Access, Autonomous Decision Making, Scope Creep
  • Trigger AbuseOverly Broad Trigger, Shadow Command Trigger, Keyword Baiting Trigger
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
Findings (7)

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
93% confidence
Finding

The trigger list contains many broad, common pharmaceutical and business terms, making accidental activation likely in ordinary domain conversations. Unintended activation becomes more concerning here because the skill also describes auto-loading behavior, so broad matching can cascade into unrequested dependency use.

Content

No source excerpt is available for this finding.

Description-Behavior Mismatch

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill presents itself as a passive reference repository, but its instructions explicitly require detecting, installing, and loading another skill. This creates hidden capability expansion and violates least surprise: a user invoking a document reference skill could unintentionally trigger execution-oriented behavior through a transitive dependency.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
95% confidence
Finding

The skill specifies automatic installation of a dependency without any user-facing warning or consent step. Silent installation undermines user control and transparency, and in a skill ecosystem it can enable privilege or capability expansion without informed approval.

Content

No source excerpt is available for this finding.

Context-Inappropriate Capability

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

A document reference library does not need to auto-install another skill to fulfill its stated purpose of providing document lists and templates. This unnecessary dependency installation broadens the attack surface and can be abused to introduce behavior the user did not request.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
97% confidence
Finding

This markdown file presents all instructions and content requirements in Chinese only, and does not indicate that users may choose another language or that the skill is limited to a Chinese-speaking or region-specific audience. Under the natural-language policy rule, forcing a specific language without opt-in can be a locale-policy violation.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
94% confidence
Finding

This markdown file presents all operational instructions and exemplar guidance only in Chinese, and it does not indicate that the user can choose another language. Under the policy criteria, forcing a specific language without user opt-in is a natural-language policy violation unless the locale constraint is clearly documented and justified.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
94% confidence
Finding

This markdown file presents its instructions and catalog content exclusively in Chinese from the title onward, with no indication that users may choose another language or locale. Under the policy rule for natural-language violations, forcing a specific language without opt-in can be a locale policy issue.

Content

No source excerpt is available for this finding.

Static analysis

No suspicious patterns detected.