Back to skill

Security audit

LINE OpenAPI Skill

Security checks for vulnerabilities and agentic risk

Overview

The skill is mostly coherent for operating LINE Messaging API, but it links a privileged bearer-token client from a mutable remote schema and includes webhook-changing operations that need clearer controls.

Install only if you trust the schema source and are comfortable granting a LINE channel token to a generated UXC client. Prefer using the bundled schema or a pinned commit/digest, and require explicit approval before sending messages or changing/testing webhook endpoints.

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:64
Finding
Mutable Remote OpenAPI Schema Controls Privileged LINE API Operations## Vulnerability Details **File Location**: `SKILL.md:16-17`, `SKILL.md:64-67`, and `references/usage-patterns.md:5-9` **Vulnerability Type**: Mutable remote dependency without version or integrity pinning **Risk Level**: Medium ### Vulnerable Code `SKILL.md:14-18`: ```markdown - `uxc` is installed and available in `PATH`. - Network access to `https://api.line.me`. - Access to the curated OpenAPI schema URL: - `https://raw.githubusercontent.com/holon-run/uxc/main/skills/line-openapi-skill/references/line-messaging.openapi.json` - A LINE Messaging API channel access token. ``` `SKILL.md:64-68`: ```markdown 1. Use the fixed link command by default: - `command -v line-openapi-cli` - If missing, create it: `uxc link line-openapi-cli https://api.line.me --schema-url https://raw.githubusercontent.com/holon-run/uxc/main/skills/line-openapi-skill/references/line-messaging.openapi.json` - `line-openapi-cli -h` ``` `references/usage-patterns.md:5-9`: ```bash command -v line-openapi-cli uxc link line-openapi-cli https://api.line.me \ --schema-url https://raw.githubusercontent.com/holon-run/uxc/main/skills/line-openapi-skill/references/line-messaging.openapi.json line-openapi-cli -h ``` ### Technical Analysis The skill includes a locally reviewable OpenAPI document, but its installation workflow instead instructs UXC to retrieve the schema from the mutable GitHub `main` branch. The URL is not pinned to an immutable commit, release artifact, or verified content digest. The retrieved schema defines the methods, paths, parameters, and request bodies exposed through `line-openapi-cli`. Consequently, changes made upstream after this skill has been reviewed can alter the effective API command surface without changing the audited package. Because the generated client operates with a LINE channel bearer token, an unauthorized or compromised upstream schema could expose unexpected operations agai ...[truncated 2029 chars]
Remediation
## Remediation Suggestions 1. Use the bundled, reviewed schema at `references/line-messaging.openapi.json` instead of retrieving a remote copy during setup. 2. If remote retrieval is required, replace the `main`-branch URL with a URL pinned to a specific reviewed Git commit. 3. Publish and verify a SHA-256 or stronger cryptographic digest before allowing UXC to consume the downloaded schema. 4. Store the verified schema locally and configure the generated client from that immutable local copy. 5. Add validation that rejects schema changes to the expected server host, path allowlist, HTTP methods, and security scheme. 6. Extend `scripts/validate.sh` to fail when documentation contains schema URLs referencing mutable branches such as `main` or `master`. 7. Require explicit user confirmation for every state-changing operation, including webhook endpoint updates and tests, not only message push and reply operations. 8. Re-review and rotate the pinned schema version through a controlled release process whenever new API operations are needed.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Privilege EscalationExcessive Permissions, Sudo/Root Execution, Credential Access
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
  • Prompt InjectionInstruction Override, Hidden Instructions, Exfiltration Commands
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
Findings (7)

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding
The declared purpose says the skill operates the LINE Messaging API through UXC with bearer-token auth and guardrails. However, this code chunk only validates local files using rg and jq. It enforces that the skill documentation mentions certain commands, auth configuration, and messaging guardrails, and it checks that the OpenAPI schema includes expected fields and a specific path. There is no actual API operation, no UXC execution, no bearer-token handling, and no messaging action in this chunk. This is a materially different primary behavior from the declared operational purpose, so it should be flagged as a mismatch.

Credential Access

High
Category
Privilege Escalation
Content
- Network access to `https://api.line.me`.
- Access to the curated OpenAPI schema URL:
  - `https://raw.githubusercontent.com/holon-run/uxc/main/skills/line-openapi-skill/references/line-messaging.openapi.json`
- A LINE Messaging API channel access token.

## Scope
Confidence
70% confidence
Finding
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Credential Access

High
Category
Privilege Escalation
Content
- Network access to `https://api.line.me`.
- Access to the curated OpenAPI schema URL:
  - `https://raw.githubusercontent.com/holon-run/uxc/main/skills/line-openapi-skill/references/line-messaging.openapi.json`
- A LINE Messaging API channel access token.

## Scope
Confidence
70% confidence
Finding
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Credential Access

High
Category
Privilege Escalation
Content
- Network access to `https://api.line.me`.
- Access to the curated OpenAPI schema URL:
  - `https://raw.githubusercontent.com/holon-run/uxc/main/skills/line-openapi-skill/references/line-messaging.openapi.json`
- A LINE Messaging API channel access token.

## Scope
Confidence
70% confidence
Finding
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Credential Access

High
Category
Privilege Escalation
Content
- Network access to `https://api.line.me`.
- Access to the curated OpenAPI schema URL:
  - `https://raw.githubusercontent.com/holon-run/uxc/main/skills/line-openapi-skill/references/line-messaging.openapi.json`
- A LINE Messaging API channel access token.

## Scope
Confidence
70% confidence
Finding
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.

Missing User Warnings

Medium
Confidence
88% confidence
Finding
The exposed operations can send outbound messages, query user profile data, and modify/test webhook destinations, but the schema itself provides no safety cues or user-facing warning that these actions have external side effects or can change channel configuration. In an agent context, missing disclosure and confirmation boundaries increase the chance of unintended message delivery, privacy-impacting data access, or unauthorized reconfiguration.

Description-Behavior Mismatch

Medium
Confidence
94% confidence
Finding
Although described as a curated messaging workflow, the schema also exposes webhook endpoint read/update and webhook test operations, which materially expand capability from message sending into integration reconfiguration and outbound connectivity. That creates a dangerous control-plane surface: an agent using this skill could redirect webhooks to attacker-controlled infrastructure, disrupt service, or use webhook testing as an SSRF-like network primitive against arbitrary URLs.

Static analysis

No suspicious patterns detected.