T03 · Remote Payload Retrieval and Execution
- Location
scripts/install.md:84- Finding
Remote PowerShell Installer Is Executed Without Verification
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is a coherent LibTV CLI guide, but its installer and update steps can run unverified code from the internet and make persistent local changes.
Review before installing. Avoid direct curl-to-shell or Invoke-Expression install commands unless you fully trust the LibTV release endpoints; prefer a version-pinned installer with published checksums or signatures. Keep LIBTV_CONFIG_DIR private because it stores active credentials, and be aware this CLI can upload local files and create, modify, run, or delete LibTV canvas content.
scripts/install.md:84Remote PowerShell Installer Is Executed Without Verification
scripts/install-libtv-cli.bat:12Batch Bootstrapper Executes a Configuration-Controlled Remote Script
scripts/install-libtv-cli.sh:380Unix Installer Installs and Executes an Unverified Downloaded Binary
scripts/install-libtv-cli.ps1:199PowerShell Installer Installs an Unverified Downloaded Executable
scripts/install.md:111Unverified Remote Skill Archive Is Used for Destructive Directory Replacement
The skill is presented as an operational CLI manual, but its referenced install flow introduces materially different behaviors: downloading remote binaries, modifying shell profiles, writing into install locations, and executing installed code. That mismatch can mislead users or agent systems into approving actions with persistence and remote code execution implications that were not clearly disclosed in the main skill contract.
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# `libtv logout` — 退出登录
清除本机上由 [`libtv login`](./login.md) 写入的凭据:删除 `LIBTV_CONFIG_DIR`(默认 `~/.libtv`)下的 `credentials.json`,并清除当前进程中的内存凭据快照。
## 子命令
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# `libtv logout` — 退出登录
清除本机上由 [`libtv login`](./login.md) 写入的凭据:删除 `LIBTV_CONFIG_DIR`(默认 `~/.libtv`)下的 `credentials.json`,并清除当前进程中的内存凭据快照。
## 子命令
Code accesses credential files (SSH keys, AWS credentials, etc.). This could indicate credential theft attempts.
# `libtv logout` — 退出登录
清除本机上由 [`libtv login`](./login.md) 写入的凭据:删除 `LIBTV_CONFIG_DIR`(默认 `~/.libtv`)下的 `credentials.json`,并清除当前进程中的内存凭据快照。
## 子命令
The batch file silently downloads and runs a remote PowerShell script with no user-facing warning, consent, or review opportunity. This enables unnoticed execution of attacker-controlled code if the API response, linked configuration, or remote script host is compromised, and it reduces the chance a user will detect suspicious behavior before system changes occur.
The documentation normalizes a curl | bash installation pattern for shell environments, which causes users to execute remote script content directly from the network. This is dangerous because any compromise of the source, redirect chain, CDN object, or URL-discovery API can lead to arbitrary command execution without giving the user a chance to review the script first.
| 字段 | 含义 |
| -------------------- | ------------------------------------------------------------ |
| `version` | 最新 CLI 版本号 |
| `install.shell` | macOS / Linux 一键安装脚本 URL(`curl -fsSL <url> \| bash`) |
| `install.PowerShell` | Windows PowerShell 一键安装脚本 URL |
| `install.CMD` | Windows cmd / 双击运行的 `.bat` URL |
| `skill` | 该版本 skill 包(含本文档 + install 脚本)zip 的下载 URL |
The document explicitly instructs users to pipe a remotely downloaded PowerShell script into Invoke-Expression, which executes network content immediately without inspection, integrity verification, or signature validation. If the hosting endpoint, CDN, API-fed URL, or transit path is compromised, users could run arbitrary code on their systems with the permissions of their account.
The skill declares shell-capable behavior but does not specify any tool scope such as allowed-tools or permissions. In an agent environment, this creates unnecessary ambiguity about what commands may be run, which increases the chance of over-broad execution or unsafe command use beyond the documented purpose.
The manifest description is written as an instruction set in Chinese and includes absolute wording like '一律通过 libtv CLI 完成', but nowhere in this file does it offer a language choice or explain that the skill is intentionally restricted to Chinese-speaking users or a China-specific compliance context. Under the policy, forcing a specific language without opt-in is a natural-language locale violation.
This markdown file documents that account info and account use refresh the local active account scope, causing later project list and project create commands to default to a different team space. While the behavior is described, it is not presented as a warning or caution despite its potential to affect where user data is listed or created.
Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.
**共享 flags**
| 选项 | 必填 | 说明 |
| ---------------------- | ---- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `-p, --project <uuid>` | 否 | 目标项目 UUID;缺省时使用目录绑定。 |
| `-g, --group <父组>` | 否 | 父级**普通分组**;在其 `childNodeIds` 内解析分组名 / 子节点名,避免同名冲突。 |
Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.
| 选项 | 必填 | 说明 |
| ---------------------- | ---- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `-p, --project <uuid>` | 否 | 目标项目 UUID;缺省时使用目录绑定。 |
| `-g, --group <父组>` | 否 | 父级**普通分组**;在其 `childNodeIds` 内解析分组名 / 子节点名,避免同名冲突。 |
| `-r, --run` | 否 | 主流程成功后对**目标普通分组**做一次**整组按顺序执行**(与网页「整组执行」一致)。进度在 stderr 约每 3 分钟一条、前缀 `[run-group]`;成功结果在 stdout,管道下为单行 NDJSON。 |
| `--help` | 否 | 打印该子命令帮助。 |
Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.
| 选项 | 必填 | 说明 |
| ---------------------- | ---- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `-p, --project <uuid>` | 否 | 目标项目 UUID;缺省时使用目录绑定。 |
| `-g, --group <父组>` | 否 | 父级**普通分组**;在其 `childNodeIds` 内解析分组名 / 子节点名,避免同名冲突。 |
| `-r, --run` | 否 | 主流程成功后对**目标普通分组**做一次**整组按顺序执行**(与网页「整组执行」一致)。进度在 stderr 约每 3 分钟一条、前缀 `[run-group]`;成功结果在 stdout,管道下为单行 NDJSON。 |
| `--help` | 否 | 打印该子命令帮助。 |
Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.
| 选项 | 必填 | 说明 |
| ---------------------- | ---- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `-p, --project <uuid>` | 否 | 目标项目 UUID;缺省时使用目录绑定。 |
| `-g, --group <父组>` | 否 | 父级**普通分组**;在其 `childNodeIds` 内解析分组名 / 子节点名,避免同名冲突。 |
| `-r, --run` | 否 | 主流程成功后对**目标普通分组**做一次**整组按顺序执行**(与网页「整组执行」一致)。进度在 stderr 约每 3 分钟一条、前缀 `[run-group]`;成功结果在 stdout,管道下为单行 NDJSON。 |
| `--help` | 否 | 打印该子命令帮助。 |
Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.
| `-p, --project <uuid>` | 否 | 目标项目 UUID;缺省时使用目录绑定。 |
| `-g, --group <父组>` | 否 | 父级**普通分组**;在其 `childNodeIds` 内解析分组名 / 子节点名,避免同名冲突。 |
| `-r, --run` | 否 | 主流程成功后对**目标普通分组**做一次**整组按顺序执行**(与网页「整组执行」一致)。进度在 stderr 约每 3 分钟一条、前缀 `[run-group]`;成功结果在 stdout,管道下为单行 NDJSON。 |
| `--help` | 否 | 打印该子命令帮助。 |
**绑定来源**(`create` / 默认子命令共用)
Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.
| `-p, --project <uuid>` | 否 | 目标项目 UUID;缺省时使用目录绑定。 |
| `-g, --group <父组>` | 否 | 父级**普通分组**;在其 `childNodeIds` 内解析分组名 / 子节点名,避免同名冲突。 |
| `-r, --run` | 否 | 主流程成功后对**目标普通分组**做一次**整组按顺序执行**(与网页「整组执行」一致)。进度在 stderr 约每 3 分钟一条、前缀 `[run-group]`;成功结果在 stdout,管道下为单行 NDJSON。 |
| `--help` | 否 | 打印该子命令帮助。 |
**绑定来源**(`create` / 默认子命令共用)
Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.
**绑定来源**(`create` / 默认子命令共用)
| 来源 | 说明 |
| ----------------- | ------------------------------------------------------------------------------------------------ |
| `--node <子节点>` | 子节点 **id 优先**,否则按展示名匹配(重名取第一个);可重复指定。 |
| 管道 stdin | 每行一条 JSON,读取 `nodeKey` 或 `newNodeKey`(与 `libtv node` / `libtv upload` 成功输出一致)。 |
Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.
**选项**
| 选项 | 作用范围 | 说明 |
| ---------------------- | --------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| `-p, --project <uuid>` | `use` / `unuse` | 缺省使用当前目录绑定;指定时须与写入的 `projectUuid` 一致。 |
| `-g, --group <父组>` | 仅 `use` | 仅在指定父级普通分组的 `childNodeIds` 内解析 `<group>`,消歧义;**不是** [`libtv node -g`](./node.md) 那条「覆盖 node 分组范围」。 |
Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.
## 子命令
| 子命令 | 作用 |
| --------------------------------------------------- | ----------------------------------------------------------------------------------------------------------- |
| **`libtv image shortcut list`** | 列出当前环境可用的 Slash 项(与画布图片工具栏九宫格、图片生成器 `/` 面板一致)。 |
| **`libtv image shortcut <scene\|label> -n <node>`** | 在指定源 `image` 节点上执行一条 Slash:按 `gridType` 选择「原地改图」或「右侧新建节点」,随后触发一次生成。 |
Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.
**执行分支**(由命中条目的 `gridType` 决定)
| `gridType` | 画布落点 |
| --------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| `4` / `9` / `16` / `25` | **原地改图**:对 `-n` 的源节点直接改展示名为 `label`、合并 Slash params(`prompt` 强制为 `/`),再对同一节点 run 一次。 |
| 其它(含未声明 `gridType`) | **右侧新建节点**:在源节点右侧偏移处新建一个 `image`,入边 = 源节点(replace 语义),合并 Slash params 后 run 新节点。 |
Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.
**输出**
| 流 | 内容 |
| ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| stdout | 命令成功时为 JSON(含 `nodeKey`、`data` 等),与 [`libtv node --run`](./node.md) 的最终成功帧同构;接到管道时为单行 NDJSON,可被 [`libtv node`](./node.md) / [`libtv group`](./group.md) 作为上游消费。 |
| stderr | 运行进度前缀 `[run-node] …`;失败的校验 / 接口错误以非 0 退出码呈现。 |
This markdown file documents a login flow that stores valid credentials in a local credentials.json file under a configurable directory. Although it states where the file is written, it does not give a clear user warning about the security sensitivity of those stored credentials or the need to protect the directory, which is the kind of user-data/system-integrity warning expected for a login skill.
Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.
**选项**:
| 选项 | 必填 | 说明 |
| -------- | ---- | ------------------------------------------------------------------------------------------------------ |
| `--open` | 否 | 尝试用系统默认浏览器打开登录链接(macOS `open`、Windows `start`、其它 `xdg-open`)。未设时仅打印链接。 |
| `--help` | 否 | 打印该子命令帮助。 |
Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.
**选项**:
| 选项 | 必填 | 说明 |
| -------- | ---- | ------------------------------------------------------------------------------------------------------ |
| `--open` | 否 | 尝试用系统默认浏览器打开登录链接(macOS `open`、Windows `start`、其它 `xdg-open`)。未设时仅打印链接。 |
| `--help` | 否 | 打印该子命令帮助。 |
Large whitespace padding was detected (a block of blank lines or a long run of spaces). This can push injected instructions below or to the right of the visible area so a human reviewer never sees them while the agent still reads them. Manual review of the hidden content is recommended.
| 选项 | 必填 | 说明 |
| -------- | ---- | ------------------------------------------------------------------------------------------------------ |
| `--open` | 否 | 尝试用系统默认浏览器打开登录链接(macOS `open`、Windows `start`、其它 `xdg-open`)。未设时仅打印链接。 |
| `--help` | 否 | 打印该子命令帮助。 |
**相关环境变量**(与 `web` 登录页地址拼装相关):
No suspicious patterns detected.