Back to skill

Security audit

huawei-cloud-modelarts-vllm-ascend-model-deploy

Security checks for vulnerabilities and agentic risk

Overview

The skill matches its ModelArts deployment purpose, but it normalizes insecure transport for cloud credentials and deployment inputs.

Review before installing. Do not provide IAM passwords or high-privilege AK/SK unless TLS verification is restored. Replace curl -k and verify=False with a trusted CA bundle or verified proxy CA, avoid curl-and-bash installers without integrity checks, and use private or TLS-protected inference endpoints when sending bearer tokens or prompts.

Vulnerability Patterns
  • 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
  • Embedded Malicious CodeShips malicious scripts inside the skill and executes them locally
Findings (1)

T09 · Insecure Skill Coding Practices

Error
Location
references/iam-policies.md:94
Finding

IAM credentials are transmitted with TLS certificate verification disabled

Content
View full analysis

Vulnerability Details

File Location: SKILL.md:389 and references/iam-policies.md:94-112
Vulnerability Type: Improper certificate validation during authentication
Risk Level: High

Vulnerable Code

SKILL.md:389 mandates the following IAM token request:

python
resp = requests.post(
    'https://iam.<region>.myhuaweicloud.com/v3/auth/tokens',
    json=<IAM request body>,
    verify=False,
    timeout=30
)

The complete authentication flow in references/iam-policies.md:94-112 is:

python
import requests, urllib3
urllib3.disable_warnings()

url = 'https://iam.<region>.myhuaweicloud.com/v3/auth/tokens'
payload = {
    'auth': {
        'identity': {
            'methods': ['password'],
            'password': {
                'user': {
                    'name': '<IAM username>',
                    'password': '<login password>',
                    'domain': {'name': '<account name>'}
                }
            }
        },
        'scope': {'project': {'name': '<region>'}}
    }
}
resp = requests.post(url, json=payload, verify=False, timeout=30)

Technical Analysis

The Skill instructs the agent to collect a Huawei Cloud account name, IAM username, and login password and submit them to the IAM token endpoint. The request explicitly uses verify=False, while warning suppression conceals the resulting insecure-request warning.

Disabling certificate verification removes server authentication from TLS. The documented hostname allowlist only constrains the intended URL string; it does not prove that the peer receiving the credentials is the authentic Huawei Cloud IAM server. An active network intermediary can therefore present an arbitrary certificate and terminate the connection without detection.

This is especially significant because the transmitted request contains reusable login credentials rather than only a short-lived token. The behavior is reachable whenever the user selects API deployment and chooses usern ...[truncated 1373 chars]

Remediation
View remediation

Remediation Suggestions

  1. Remove verify=False and urllib3.disable_warnings() from the IAM authentication example.
  2. Use Requests’ default certificate verification:
python
resp = requests.post(url, json=payload, timeout=30)
resp.raise_for_status()
  1. In environments using an authorized TLS inspection proxy, require an explicitly configured enterprise CA bundle rather than disabling verification:
python
resp = requests.post(
    url,
    json=payload,
    verify="/path/to/enterprise-ca-bundle.pem",
    timeout=30,
)
  1. Support standard trust-store configuration such as REQUESTS_CA_BUNDLE and document how administrators can install the enterprise proxy CA.
  2. If certificate validation fails, stop before transmitting credentials and instruct the user to repair the trust configuration. Do not automatically retry with verification disabled.
  3. Update SKILL.md so its mandatory token-acquisition procedure requires verified TLS and remove blanket instructions to bypass certificate verification for authenticated requests.
  4. Prefer short-lived or delegated credentials where available, and grant the IAM identity only the minimum permissions needed for the deployment workflow.
Vulnerability Patterns
  • Data ExfiltrationExternal Transmission, Env Variable Harvesting, File System Enumeration
  • Supply ChainUnpinned Dependencies, External Script Fetching, Obfuscated Code
  • Tool MisuseTool Parameter Abuse, Chaining Abuse, Unsafe Defaults
  • Behavioral ASTexec() Call, eval() Call, Dynamic Import
  • MCP Tool PoisoningHidden Instructions, Unicode Deception, Parameter Description Injection
Findings (89)

Tp4

High
Category
MCP Tool Poisoning
Confidence
98% confidence
Finding

声明描述的是一个完整的 ModelArts 大模型部署指导/执行型技能,核心能力应包括部署形态确认、模型与镜像迁移、脚本生成、在线服务部署以及推理验证。而实际代码仅是一个名为 check_artifacts.py 的校验脚本,作用是对已生成的部署产物进行合规性和性能建议检查,属于辅助质检工具。它读取本地文件、运行 bash -n、解析脚本内容、检查参数与部署形态适配,输出检查结果并以退出码表示是否通过。这与“完整部署流程”的主目的存在明显差异。虽然该校验工具与声明场景相关,属于部署流程中的支持性环节,但它并不能代表声明中所述的主要能力,因此应判定为描述与代码行为不匹配。

Content

No source excerpt is available for this finding.

Tp4

High
Category
MCP Tool Poisoning
Confidence
95% confidence
Finding

声明描述的是一个覆盖部署全流程的技能,核心能力应包括资源准备、镜像与模型迁移、按部署形态生成脚本、以及在 ModelArts 上完成服务部署。实际代码则只是一个独立的推理验证客户端,请求已存在的 OpenAI 兼容推理端点并输出结果。虽然“部署后验证”属于声明中的最后一步之一,但当前代码片段本身只实现了这一小部分,且未体现声明中的主要能力。因此,代码实际行为与声明的主要目的存在明显不一致。

Content

No source excerpt is available for this finding.

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
96% confidence
Finding

The skill normalizes use of curl -k/--insecure after only host-based allowlisting, which disables TLS certificate validation and permits man-in-the-middle interception or content tampering. In this context, the retrieved data drives deployment decisions such as image tags and model docs, so a network attacker could influence what gets deployed or what commands are generated.

Content

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

md
> **部署形式须与用户确认(本技能新增决策点)**: 确认模型后,必须先从模型文档/社区明确该模型采用**单节点部署、多节点部署还是 PD 分离部署**(步骤 1.1),**整理推荐形式与依据,与用户确认后再进入**镜像与脚本准备。不同部署形式下,启动脚本结构(单机 TP / 多机 Ray 分布式 / PD 分离双角色)、健康检查策略(PD 区分 prefill/decode)、ModelArts 部署配置(节点数/实例数/网络)差异显著,先定形式才能针对性适配。
> **部署形式是计划期决策,不是运行时决策(强制)**: 部署形式经用户确认后即**固定为方案输入**,生成的启动/健康检查脚本是**该形式的专用产物**——脚本内**不再通过 `DEPLOY_FORM` 环境变量做运行时分支**。步骤 3 按确认的形式直接从 `templates/` 选用对应模板(单节点/多节点/PD/PD+多节点四套),填充模型文档参数后在本地产物目录保存为 `start_vllm.sh`/`health_check.sh` 上传。ModelArts 部署时**无需也不应**再传 `DEPLOY_FORM` 环境变量(PD 的 `VLLM_ROLE`、多节点的 `NODE_RANK`/`MASTER_ADDR` 等是形式内部的实例属性,由部署单元注入,不受此限制)。
> **⚠️ 官方文档不可达时的强制降级与纠错机制**: 若 `docs.vllm.ai` 网络不可达,严禁改用论坛帖/博客/搜索摘要作为 tag 依据(这些是二手信息,版本常与模型文档不一致)。**先排查是否为 TLS 证书问题,再走降级**。正确做法按优先级:
> 0. **使用 curl 访问第三方服务时的安全约定**: 企业/云上环境常经安全代理(如 netentsec)转发公网请求,代理对目标站点做 TLS 中间人(MITM)证书替换,返回自签名/未知 CA 证书,默认校验失败报 `SSL certificate problem`。**执行前必须先校验目标 URL 主机名在白名单内**(docs.vllm.ai / quay.io / huggingface.co / modelscope.cn / *.myhuaweicloud.com / 127.0.0.1),**不在白名单的 URL 直接拒绝执行并请用户确认**;白名单校验通过后方可执行,必须携带 `-k`(或 `--insecure`)跳过代理 MITM 证书。校验逻辑: 定义 ALLOWED 白名单 → 提取目标 host → `grep -qw` 匹配白名单 → 不匹配则 `exit 1` 拒绝 → 匹配则放行执行。注意: `-k` 仅跳过证书校验,`-k` 后仍返回 000/超时才是真拦截;`-k` 后能拿到 200/302 即说明只是证书问题。内部/本地探活(如 `127.0.0.1` 健康检查)不使用 `-k`;
> 1. **先验证是否证书问题**: 按上述白名单校验通过后,执行 `curl -sk -o /dev/null -w "%{http_code}" --max-time 15` 探测目标(如 docs.vllm.ai 在白名单内),返回 200/302 → 加 `-k` 继续查文档,不降级;
> 2. **加 `-k` 仍不可达(代理真拦截/网络不通)**: 请求用户提供官方文档链接或页面内容(用户通常可访问,或给出如 `https://docs.vllm.ai/projects/ascend/zh-cn/latest/tutorials/models/<Model>.html` 的直达 URL);
> 3. **向用户明确披露**: "官方文档不可达,当前 tag 依据为 XX,存在不确定性,请协助确认"——不得在未披露的情况下按猜测推进;

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
95% confidence
Finding

The network guidance explicitly instructs users to add -k for third-party access, weakening transport security across model, image, and documentation retrieval. Because this skill orchestrates infrastructure deployment and supply-chain inputs, insecure transport materially increases the chance of poisoned instructions or fetched artifacts.

Content

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

md
| **工作空间名** | 资源池/服务所属的 ModelArts 工作空间(如 `default` / `test`);**必须先确认工作空间名,再通过 API 查其 workspace-id**(`GET /v1/{project_id}/workspaces`),后续 API 调用带 `X-Workspace-Id` 头 | 用户确认工作空间名 + API 查询 workspace-id |
| 部署形式 + 节点数 | 4 种部署形式(single 单节点 / multinode 多节点 / pd PD 分离 / pd_colocate PD 共置)+ 用户可用节点数 ≥ 最小节点数(见步骤 1.1b;pd 分离资源翻倍),确认后固定为方案输入,脚本按形式专用生成,不做运行时分支 | 模型文档核对 + 用户确认 |
| 模型权重来源 | HuggingFace 或 ModelScope 上的模型 ID;需结合 vllm-ascend 适配文档确认**权重格式**(如 BF16/W8A8)与下载来源 | 用户提供模型名 + 适配文档核对 |
| 网络 | 本地可访问 Quay.io / HuggingFace / ModelScope(必要时配代理或镜像站);**curl 访问第三方服务前先按"安全编码规范"校验目标 URL 主机在白名单内,再加 `-k` 跳过证书校验**(企业代理 MITM 常见,见"关键原则") | 实际执行验证 |
| 工具 | **OBS Python SDK(`esdk-obs-python`,上传部署产物必需)**、obsutil(可选,上传权重)、SWR 登录凭据、docker | 本机环境 |

## 交互式确认规范(强制,所有用户确认点必须遵守)

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
95% confidence
Finding

The model-document retrieval step requires curl -sk to access authoritative deployment inputs, making insecure transport part of the core workflow rather than an exceptional fallback. Since those documents determine image tags and startup parameters, tampered responses could steer users toward unsafe or malicious deployment artifacts.

Content

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

md
> **为什么拉镜像前必须先查模型文档?** 不同模型适配的 vllm-ascend 版本不同(如 `v0.23.0`、`v0.18.0rc1`),部分模型还有**专用镜像或芯片变体 tag**(如 `-a3-openeuler`、`-310p-openeuler`,甚至 `DeepSeekV4-flash-0731` 模型专用 tag)。盲目拉 `latest` 会导致版本/芯片不匹配而启动失败。**镜像版本/tag 必须以用户确认的模型页面要求为准**。

1. **定位模型页面**: 在 `https://docs.vllm.ai/projects/ascend/zh-cn/latest/tutorials/models/` 找到步骤 1.0 确认模型的对应页面(URL 形如 `.../tutorials/models/<ModelName>.html`)。**用 curl 访问前先按"安全编码规范"校验 URL 主机名(docs.vllm.ai 在白名单内),再必须加 `-k` 跳过证书校验**(企业代理 MITM,见"关键原则"第 0 条),如 `curl -sk <url>`;用户提供的其他文档链接同样先校验 host 再访问。
   - **若加 `-k` 后仍不可达(代理真拦截,000/超时)**: 不要退化为搜索摘要/论坛帖,按"关键原则"降级机制——**用 AskUserQuestion 请用户提供官方文档链接或页面内容**,并向用户披露不确定性。
2. **从模型页面提取镜像信息**: 记录该模型适配的 **vllm-ascend 版本**(页面顶部标注)、推荐的**镜像 tag** 及芯片变体(910B/910C(A3)/310P 对应 `v0.23.0`(A2)/`v0.23.0-a3`/`v0.23.0-310p`)、是否有**专用镜像**;页面未直接给出 tag 时按"版本 + 芯片型号"在 [vllm-ascend 官方镜像仓库](https://quay.io/repository/ascend/vllm-ascend) tag 列表选取(版本配套原则见约束限制第 5 条);**记录 tag 来源**(模型页面 URL)便于事后核对。
3. **记录确认**: 将选定的镜像地址(源仓库 + tag)记入方案,**再进入 2.1 确认 SWR 镜像就绪状态**。

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
> **适配检查清单(模板填充完成后逐项核对,详见 `references/modelarts-console-guide.md` 第十节)**: 启动命令包成 bash 脚本(`exec python -m vllm.entrypoints.openai.api_server`);监听端口 **8080**(与探针一

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
> **适配检查清单(模板填充完成后逐项核对,详见 `references/modelarts-console-guide.md` 第十节)**: 启动命令包成 bash 脚本(`exec python -m vllm.entrypoints.openai.api_server`);监听端口 **8080**(与探针一

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
> **适配检查清单(模板填充完成后逐项核对,详见 `references/modelarts-console-guide.md` 第十节)**: 启动命令包成 bash 脚本(`exec python -m vllm.entrypoints.openai.api_server`);监听端口 **8080**(与探针一

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
> **适配检查清单(模板填充完成后逐项核对,详见 `references/modelarts-console-guide.md` 第十节)**: 启动命令包成 bash 脚本(`exec python -m vllm.entrypoints.openai.api_server`);监听端口 **8080**(与探针一

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
> **适配检查清单(模板填充完成后逐项核对,详见 `references/modelarts-console-guide.md` 第十节)**: 启动命令包成 bash 脚本(`exec python -m vllm.entrypoints.openai.api_server`);监听端口 **8080**(与探针一

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
> **适配检查清单(模板填充完成后逐项核对,详见 `references/modelarts-console-guide.md` 第十节)**: 启动命令包成 bash 脚本(`exec python -m vllm.entrypoints.openai.api_server`);监听端口 **8080**(与探针一

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
> **适配检查清单(模板填充完成后逐项核对,详见 `references/modelarts-console-guide.md` 第十节)**: 启动命令包成 bash 脚本(`exec python -m vllm.entrypoints.openai.api_server`);监听端口 **8080**(与探针一

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
1.5. **⚠️ 产物自检关卡(强制,FAIL 不得上传)**: 产物生成后、上传前,必须按 **`references/artifact-check.md`** 自检清单,运行 `scripts/check_artifacts.py` 静态校验产物的**可用性(硬性)**与**性能最优(软性)**——依据已确认的模

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
1.5. **⚠️ 产物自检关卡(强制,FAIL 不得上传)**: 产物生成后、上传前,必须按 **`references/artifact-check.md`** 自检清单,运行 `scripts/check_artifacts.py` 静态校验产物的**可用性(硬性)**与**性能最优(软性)**——依据已确认的模

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
1.5. **⚠️ 产物自检关卡(强制,FAIL 不得上传)**: 产物生成后、上传前,必须按 **`references/artifact-check.md`** 自检清单,运行 `scripts/check_artifacts.py` 静态校验产物的**可用性(硬性)**与**性能最优(软性)**——依据已确认的模

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
> **完整排查表见 `references/troubleshooting.md`**(按现象定位根因与排查动作)。高频问题速览:

Ae1

High
Category
analysis-evasion
Confidence
100% confidence
Finding

Referenced artifact was not completely inspected

Content

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

md
> **完整排查表见 `references/troubleshooting.md`**(按现象定位根因与排查动作)。高频问题速览:

External Script Fetching

High
Category
Supply Chain
Confidence
97% confidence
Finding

The guide instructs users to download and immediately execute a remote shell script with bash, creating a classic trust-on-first-use supply-chain risk. If the hosting bucket, network path, or script contents are compromised, arbitrary code would run on the user's machine and could steal credentials or alter the deployment environment.

Content

Scanner excerpt · references/cli-installation-guide.md (reported line 28)May include surrounding context.

bash
# 交互式安装
curl -sSL https://cn-north-4-hdn-koocli.obs.cn-north-4.myhuaweicloud.com/cli/latest/hcloud_install.sh -o ./hcloud_install.sh && bash ./hcloud_install.sh

# 非交互式安装(跳过确认)
curl -sSL https://cn-north-4-hdn-koocli.obs.cn-north-4.myhuaweicloud.com/cli/latest/hcloud_install.sh -o ./hcloud_install.sh && bash ./hcloud_install.sh -y

External Script Fetching

High
Category
Supply Chain
Confidence
98% confidence
Finding

The non-interactive variant increases risk because it both fetches remote code and suppresses user confirmation, reducing opportunities to detect unexpected behavior. In a skill that also handles cloud credentials, compromise of the installer path could directly expose AK/SK, alter CLI behavior, or implant persistence on operator workstations.

Content

Scanner excerpt · references/cli-installation-guide.md (reported line 31)May include surrounding context.

curl -sSL https://cn-north-4-hdn-koocli.obs.cn-north-4.myhuaweicloud.com/cli/latest/hcloud_install.sh -o ./hcloud_install.sh && bash ./hcloud_install.sh

非交互式安装(跳过确认)

curl -sSL https://cn-north-4-hdn-koocli.obs.cn-north-4.myhuaweicloud.com/cli/latest/hcloud_install.sh -o ./hcloud_install.sh && bash ./hcloud_install.sh -y

text

### Linux

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
80% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · references/modelarts-console-guide.md (reported line 116)May include surrounding context.

md
| 创建在线服务 | `POST /v2/{project_id}/services` |
| 查询服务列表 | `GET /v2/{project_id}/services` |
| 查询服务详情 | `GET /v2/{project_id}/services/{service_id}` |
| 删除服务 | `DELETE /v2/{project_id}/services/{service_id}`(路径以 API 文档为准) |
| 扩缩容 | UpdateInferDeploymentScale(路径以 API 文档为准) |
| 鉴权 | 请求头 `Authorization: Bearer <IAM Token>`(有效期 24h)或 AK/SK 签名 |
| 权限 | `modelarts:service:create`(Write)/ `modelarts:service:get`(Read) |

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
80% confidence
Finding

Tool parameters are crafted to achieve unintended or unsafe behavior. Parameter abuse can bypass intended safety checks (e.g. shell=True, --force, dangerous glob patterns).

Content

Scanner excerpt · references/modelarts-console-guide.md (reported line 276)May include surrounding context.

md
| 创建服务 | `POST /v2/{project_id}/services` | `create` |
| 查询服务列表 | `GET /v2/{project_id}/services` | `list` |
| 查询服务详情(状态 + 调用端点) | `GET /v2/{project_id}/services/{service_id}` | `show` |
| 删除服务 | `DELETE /v2/{project_id}/services/{service_id}` | `delete` |
| 扩缩容 | UpdateInferDeploymentScale | `scale` |
| 切换部署版本 | SwitchInferDeploymentVersion | — |

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
98% confidence
Finding

Duplicate valid finding. The unsafe parameterization of curl disables a primary transport-security control and can normalize insecure operator behavior. Because this skill supports obtaining model and image deployment guidance from third-party endpoints, a compromised or intercepted connection could lead to downstream supply-chain compromise or incorrect deployment choices.

Content

Scanner excerpt · references/troubleshooting.md (reported line 22)May include surrounding context.

md
| 多节点/PD 部署卡住或启动失败 | **节点间网络不通(HCCL/DP)**、master/slave 角色判定失败(rank table 未 completed / `POD_IP` 不匹配)、`--tensor-parallel-size` 与单节点卡数不一致 | ① 确认节点间网络互通、安全组放通 HCCL/DP 通信端口(`--data-parallel-rpc-port`);② 核对平台注入 `GLOBAL_RANK_TABLE_FILE_PATH`/`POD_IP` 与 `get_master_ip.py` 角色判定(rank table 是否 completed、POD_IP 是否匹配);③ TP_SIZE = 每台推理单元 NPU 卡数;④ 查 vllm-ascend 多机部署示例核对环境变量 |
| PD 分离请求失败/ConnectError | 单机 PD(S6/S7): 双角色端口/KV 传输未打通;多机 PD(S8/S9 单引擎): DP 通信或 master/slave 判定失败 | **单机 PD(S6/S7)**: ① 核对 Prefill/Decode 双角色 `VLLM_ROLE`/`PORT` 注入正确;② KV Cache 传输(Mooncake 等)网络可达(社区双引擎方案)。**多机 PD(S8/S9 单引擎)**: ③ 放通 `--data-parallel-rpc-port`(13389);④ 核对 `get_master_ip.py` 读 rank table 角色判定正确 |
| 模型不支持 | 不在 vllm-ascend 支持列表 | 换支持列表内模型,或告知用户需自行适配 |
| 访问 docs.vllm.ai / quay.io 等第三方站点报 `SSL certificate problem: self-signed certificate in certificate chain`,或 curl 000(非代理真拦截) | **企业/云上代理对目标站点做 TLS 中间人(MITM)证书替换**,本机不信任其 CA;`getent`/直连 DNS 可能不通,但 curl 走代理不受影响 | ① 先按"安全编码规范"校验 URL 主机在白名单内(docs.vllm.ai 等),再重新用 `curl -sk <url>`(跳过证书校验)访问——多数场景实际可达;② `-k` 仅跳过证书校验,不影响"以官方文档为准"的 tag 决策;③ 若 `-k` 后仍 000/超时,才是代理白名单真拦截(如部分环境 github.com / modelscope.cn),再走降级机制 |
| 拉取镜像失败 | Quay.io 网络受限 | 配置代理;或找镜像站/自行构建后推送 SWR |
| 多机部署卡住 | HCCL 网络不通 | 检查节点间网络互通、安全组放通 |
| 跨节点 TP 部署(S4/S5/S8/S9)报业务错误 | **超节点亲和组实例数未配置或不等于 N** | ModelArts 部署配置"超节点亲和组实例数"=N(副本内节点数),确保多机调度到同一超节点(参见 ModelArts 故障排除 inference2.0-modelarts-0042) |

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
98% confidence
Finding

Duplicate valid finding. The unsafe parameterization of curl disables a primary transport-security control and can normalize insecure operator behavior. Because this skill supports obtaining model and image deployment guidance from third-party endpoints, a compromised or intercepted connection could lead to downstream supply-chain compromise or incorrect deployment choices.

Content

Scanner excerpt · references/troubleshooting.md (reported line 22)May include surrounding context.

md
| 多节点/PD 部署卡住或启动失败 | **节点间网络不通(HCCL/DP)**、master/slave 角色判定失败(rank table 未 completed / `POD_IP` 不匹配)、`--tensor-parallel-size` 与单节点卡数不一致 | 1 确认节点间网络互通、安全组放通 HCCL/DP 通信端口(`--data-parallel-rpc-port`);2 核对平台注入 `GLOBAL_RANK_TABLE_FILE_PATH`/`POD_IP` 与 `get_master_ip.py` 角色判定(rank table 是否 completed、POD_IP 是否匹配);3 TP_SIZE = 每台推理单元 NPU 卡数;4 查 vllm-ascend 多机部署示例核对环境变量 |
| PD 分离请求失败/ConnectError | 单机 PD(S6/S7): 双角色端口/KV 传输未打通;多机 PD(S8/S9 单引擎): DP 通信或 master/slave 判定失败 | **单机 PD(S6/S7)**: 1 核对 Prefill/Decode 双角色 `VLLM_ROLE`/`PORT` 注入正确;2 KV Cache 传输(Mooncake 等)网络可达(社区双引擎方案)。**多机 PD(S8/S9 单引擎)**: 3 放通 `--data-parallel-rpc-port`(13389);4 核对 `get_master_ip.py` 读 rank table 角色判定正确 |
| 模型不支持 | 不在 vllm-ascend 支持列表 | 换支持列表内模型,或告知用户需自行适配 |
| 访问 docs.vllm.ai / quay.io 等第三方站点报 `SSL certificate problem: self-signed certificate in certificate chain`,或 curl 000(非代理真拦截) | **企业/云上代理对目标站点做 TLS 中间人(MITM)证书替换**,本机不信任其 CA;`getent`/直连 DNS 可能不通,但 curl 走代理不受影响 | 1 先按"安全编码规范"校验 URL 主机在白名单内(docs.vllm.ai 等),再重新用 `curl -sk <url>`(跳过证书校验)访问——多数场景实际可达;2 `-k` 仅跳过证书校验,不影响"以官方文档为准"的 tag 决策;3 若 `-k` 后仍 000/超时,才是代理白名单真拦截(如部分环境 github.com / modelscope.cn),再走降级机制 |
| 拉取镜像失败 | Quay.io 网络受限 | 配置代理;或找镜像站/自行构建后推送 SWR |
| 多机部署卡住 | HCCL 网络不通 | 检查节点间网络互通、安全组放通 |
| 跨节点 TP 部署(S4/S5/S8/S9)报业务错误 | **超节点亲和组实例数未配置或不等于 N** | ModelArts 部署配置"超节点亲和组实例数"=N(副本内节点数),确保多机调度到同一超节点(参见 ModelArts 故障排除 inference2.0-modelarts-0042) |

Missing User Warnings

High
Category
Not specified by scanner
Confidence
96% confidence
Finding

The document explicitly requires using plain HTTP for an endpoint while also showing Bearer-token authentication, which exposes credentials and prompts to interception if traffic traverses untrusted networks. In this deployment context the service is reached via a public IP, so the skill normalizes insecure transport rather than warning users about compensating controls such as private networking or TLS termination.

Content

No source excerpt is available for this finding.

Tool Parameter Abuse

High
Category
Tool Misuse
Confidence
95% confidence
Finding

This is tool-parameter abuse because it mandates a dangerous flag (-k) for network retrievals, overriding a core security control. In this skill's context, the danger is amplified because downstream deployment decisions are derived from the retrieved content, so a compromised fetch can propagate directly into scripts, model-serving commands, and infrastructure configuration.

Content

Scanner excerpt · references/vllm-ascend-model-doc-guide.md (reported line 19)May include surrounding context.

md
> - `latest` 对应最新文档;若模型页面标注适配版本(如 `v0.23.0`),建议对照固定版本路径确认内容一致。
> - 一个模型系列可能共用一个页面,如 `Qwen3.5-27B-Qwen3.6-27B.html`;也可能按量化/芯片变体拆分为多个页面(如 `xxx-W8A8-310p`)。
>
> **访问方式(强制)**: 用 curl 抓取上述第三方站点(docs.vllm.ai、quay.io 等)时必须加 **`-k`(跳过证书校验)**——企业/云上代理常对公网站点做 TLS 中间人(MITM)证书替换,不带 `-k` 会报 `SSL certificate problem: self-signed certificate in certificate chain` 而失败,误判为"网络不可达"。`-k` 后仍 000/超时才是代理真拦截(详见 SKILL.md"关键原则")。示例: `curl -sk https://docs.vllm.ai/projects/ascend/zh-cn/latest/tutorials/models/`。

## 二、模型页面常见结构(按需提取)

Static analysis

Detected: suspicious.secret_argv_exposure

Instructions pass high-value credentials through process argv.

Critical
Code
suspicious.secret_argv_exposure
Location
references/mooncake-pd-deploy-guide.md:139