Back to skill

Security audit

Compliance Review

Security checks for vulnerabilities and agentic risk

Overview

This skill is aimed at insurance authorization review, but it enables automated approval and sensitive external integrations without enough scoping or safeguards.

Review this carefully before installing. It should only be used in a controlled Chinese insurance-review environment after disabling first-run auto-approval, requiring explicit human/admin approval for review decisions, changing the login endpoint to HTTPS, documenting or limiting Feishu notifications, and pinning dependencies with a lockfile. The package is also incomplete as provided because its declared runtime entry point is missing.

Vulnerability Patterns
  • Insecure DependenciesIntroduces malicious components through unsafe dependency sources
  • 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
Findings (2)

T09 · Insecure Skill Coding Practices

Error
Location
config.js:5
Finding

Plaintext HTTP Login Endpoint Exposes Authentication Traffic

Content
View full analysis

Vulnerability Details

File Location: config.js:5
Vulnerability Type: Plaintext transmission of authentication and session data
Risk Level: High

Vulnerable Code:

js
loginUrl: 'http://ehis-unity-admin-afweb.psic.com.cn/user/login',

Technical Analysis

The configured login endpoint uses HTTP rather than HTTPS. HTTP does not provide transport encryption, server authentication, or message integrity. If the intended browser automation submits credentials or session information to this endpoint, a network-positioned attacker could observe or modify that traffic.

The reviewed artifact does not contain the referenced runtime entry point, index.js, so actual transmission of credentials cannot be confirmed. Nevertheless, using this configuration in the advertised login workflow would expose authentication traffic to interception.

Attack Path

  1. An operator runs the intended automated review workflow on a network controlled or observable by an attacker.
  2. The workflow connects to the configured http:// login endpoint.
  3. The attacker intercepts the unencrypted request or modifies the server response.
  4. If credentials, cookies, or tokens are transmitted, the attacker captures them or injects content into the session.
  5. The attacker reuses captured authentication material to access review tasks, subject to the privileges associated with the compromised account.

Impact Assessment

Successful exploitation could disclose account credentials, authentication cookies, or claim-review traffic. The attacker could potentially access or manipulate insurance review tasks with the compromised user's privileges. The precise scope cannot be established because the executable implementation and authorization model are absent from the artifact.

Remediation
View remediation

Remediation Suggestions

  • Replace the endpoint with an HTTPS URL backed by a valid, trusted certificate.
  • Reject TLS certificate errors rather than disabling certificate validation.
  • Prevent redirects from HTTPS endpoints to HTTP.
  • Add a startup validation that refuses authentication against non-HTTPS URLs.
  • Avoid placing credentials in URLs or logs, and use short-lived session tokens where supported.
  • Confirm that all subsequent task-review requests also use authenticated HTTPS connections.

T08 · Insecure Dependencies

Warning
Location
package.json:11
Finding

Unpinned Third-Party Dependencies Create Supply-Chain Risk

Content
View full analysis

Vulnerability Details

File Location: package.json:11-16
Vulnerability Type: Non-reproducible dependency resolution without a lockfile
Risk Level: Medium

Vulnerable Code:

json
"dependencies": {
  "openclaw-schedule": "^1.0.0",
  "openclaw-browser": "^1.0.0",
  "openclaw-vision": "^1.0.0",
  "openclaw-message": "^1.0.0"
},

Technical Analysis

Each dependency uses a caret version range, permitting the package manager to install later compatible releases. No dependency lockfile is present in the reviewed project structure. Consequently, installations performed at different times may resolve to different package versions and transitive dependency graphs.

This does not establish that any listed package is malicious. It does mean that the audited manifest does not uniquely identify the code that will be installed, weakening reproducibility and allowing a future compromised or unexpectedly changed compatible release to enter the execution environment without a manifest change.

These dependencies are associated by name with scheduling, browser control, vision processing, and messaging. If invoked by the intended implementation, compromised dependency code could execute with the same operating-system and application privileges as the Node.js process.

Attack Path

  1. A dependency maintainer account, package registry, release pipeline, or permitted transitive dependency is compromised, or a vulnerable compatible release is published.
  2. An operator installs the project after that release becomes eligible under the caret range.
  3. Without a committed lockfile, the package manager resolves and downloads the changed dependency graph.
  4. Malicious package lifecycle code may execute during installation, or malicious library code may execute when imported by the skill.
  5. The dependency gains the Node.js process's permissions and could access files, environment variables, browser sessions, or ou ...[truncated 536 chars]
Remediation
View remediation

Remediation Suggestions

  • Verify the ownership, provenance, maintenance status, and registry source of every direct dependency.
  • Pin dependencies to reviewed exact versions instead of permissive caret ranges.
  • Generate and commit a package lockfile containing integrity hashes.
  • Use deterministic installation, such as npm ci, in deployment and CI environments.
  • Run dependency vulnerability, provenance, and malware scanning before release.
  • Review transitive dependencies and package lifecycle scripts.
  • Disable installation scripts where they are unnecessary and enforce least-privilege execution.
  • Automate controlled dependency updates through reviewed pull requests rather than resolving new versions during production deployment.
Vulnerability Patterns
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • 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
Findings (12)

Hidden Instructions

High
Category
Prompt Injection
Confidence
60% confidence
Finding

Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.

Content

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

md
# compliance-review - 授权通知书合规审核

## 描述
自动审核客户理赔授权通知书的合规性,支持多保险公司模板配置,审核结果推送至飞书

Missing User Warnings

High
Category
Not specified by scanner
Confidence
98% confidence
Finding

The skill explicitly states '首次运行自动通过,无需人工干预' (first run automatically approves without human intervention) but does not present this as a warning, limitation, or high-risk behavior. In a compliance-review workflow for insurance authorization letters, silent automatic approval can allow invalid, forged, or incomplete documents to be accepted before safeguards are established.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
83% confidence
Finding

The entire skill documentation is presented only in Chinese and does not indicate any language choice, opt-in, or region-specific constraint. Under the policy, forcing a specific language without user opt-in or clear justification is a natural-language policy concern.

Content

No source excerpt is available for this finding.

Missing User Warnings

Medium
Category
Not specified by scanner
Confidence
92% confidence
Finding

The description says review results are pushed to Feishu, but there is no warning that review outcomes may contain sensitive insurance-claim or authorization-related information transmitted to a third-party messaging platform. Even if the skill claims not to store personal information, result notifications can still disclose regulated or confidential data through external delivery channels.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Medium
Category
Not specified by scanner
Confidence
81% confidence
Finding

This config contains natural-language values that assume a fixed Chinese-language operating context, including the reviewer name and document/template labels such as '手写签名' and insurer names. Because the file provides no indication that this is an explicitly region-specific skill or that users can opt into this locale, it may violate language/locale policy requirements.

Content

No source excerpt is available for this finding.

Autonomous Decision Making

Medium
Category
Excessive Agency
Confidence
97% confidence
Finding

The setting firstRunAutoApprove: true enables automated approval behavior without an explicit human review step on initial execution. In a compliance or document-review workflow, this can allow unauthorized, incomplete, or fraudulent submissions to be approved automatically, undermining control objectives and creating a path for abuse if an attacker can trigger or time a first-run condition.

Content

Scanner excerpt · config.js (reported line 4)May include surrounding context.

js
module.exports = {
  checkInterval: 30,
  reviewer: '刘欣',
  firstRunAutoApprove: true,
  loginUrl: 'http://ehis-unity-admin-afweb.psic.com.cn/user/login',
  reviewPath: '/task/review',

Vague Triggers

Medium
Category
Not specified by scanner
Confidence
91% confidence
Finding

This manifest file includes only the brief description "授权通知书合规审核技能" without any specific trigger phrases, activation constraints, or exclusion conditions. Because it does not define when the skill should or should not activate, the invocation scope is ambiguous and could lead to unintended activation for broadly related compliance-review requests.

Content

No source excerpt is available for this finding.

Natural-Language Policy Violations

Low
Category
Not specified by scanner
Confidence
72% confidence
Finding

The package description is written only in Chinese, which can indicate a language-specific skill context, but the manifest provides no explicit user opt-in, multilingual option, or justification that the skill is intentionally region- or language-specific. This may conflict with language/locale policy expectations when skills should not implicitly force one language context.

Content

No source excerpt is available for this finding.

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
94% confidence
Finding

Using a caret range allows automatic installation of newer minor/patch releases, which can unexpectedly introduce vulnerable or malicious code through the dependency supply chain. Because these are operational packages for scheduling, browser control, vision, and messaging, a compromised update could expand access to automation, external communication, or local execution surfaces.

Content

Scanner excerpt · package.json (reported line 12)May include surrounding context.

json
"dev": "node --watch index.js"
  },
  "dependencies": {
    "openclaw-schedule": "^1.0.0",
    "openclaw-browser": "^1.0.0",
    "openclaw-vision": "^1.0.0",
    "openclaw-message": "^1.0.0"

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
95% confidence
Finding

The browser automation dependency is not pinned, so installs may drift to newer releases without review. If that package or one of its transitive dependencies is compromised, it could enable data exfiltration, unwanted web interaction, or code execution paths through browser tooling.

Content

Scanner excerpt · package.json (reported line 13)May include surrounding context.

json
},
  "dependencies": {
    "openclaw-schedule": "^1.0.0",
    "openclaw-browser": "^1.0.0",
    "openclaw-vision": "^1.0.0",
    "openclaw-message": "^1.0.0"
  },

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
94% confidence
Finding

The vision-related dependency is unpinned, which creates supply-chain risk by permitting unreviewed upstream changes at install time. In a skill context, vision components may process sensitive documents or images, so a malicious update could expose confidential content or alter analysis behavior silently.

Content

Scanner excerpt · package.json (reported line 14)May include surrounding context.

json
"dependencies": {
    "openclaw-schedule": "^1.0.0",
    "openclaw-browser": "^1.0.0",
    "openclaw-vision": "^1.0.0",
    "openclaw-message": "^1.0.0"
  },
  "author": "刘欣",

Unpinned Dependencies

Low
Category
Supply Chain
Confidence
94% confidence
Finding

The messaging dependency is also unpinned, making it possible for a future install to pull altered code without explicit approval. A compromised messaging package is especially sensitive because it may handle outbound communications, notifications, or user data, increasing the risk of exfiltration or spoofed actions.

Content

Scanner excerpt · package.json (reported line 15)May include surrounding context.

json
"openclaw-schedule": "^1.0.0",
    "openclaw-browser": "^1.0.0",
    "openclaw-vision": "^1.0.0",
    "openclaw-message": "^1.0.0"
  },
  "author": "刘欣",
  "license": "MIT"

Static analysis

No suspicious patterns detected.