security-review-cn

security-review-cn is a skill for Claude Code, Codex from pingfanfan/hello-dsh. It costs 52 tokens per session (1,185 once invoked), scanned B, original, MIT.

A Chinese-language guide for reviewing software security by tracing untrusted data from its source to the operations it reaches. It covers inputs such as requests, files, configuration, third-party responses, and AI output.

In plain words
What is it for?
Use it to review trust boundaries, input handling, credentials, access checks, file paths, database queries, HTML output, regular expressions, deserialization, and redirects.
Why use it?
It focuses attention on places where outside data is mistakenly treated as safe, including command injection, path traversal, SQL injection, leaked credentials, and permission errors.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit Use it to review trust boundaries, input handling, credentials, access checks, file paths, database queries, HTML output, regular expressions, deserialization, and redirects.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/pingfanfan/hello-dsh/security-review-cn
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add pingfanfan/hello-dsh --skill security-review-cn
Clone the repo
git clone --depth 1 https://github.com/pingfanfan/hello-dsh

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for security-review-cn

README.md
[![agentmods](https://agentmods.dev/badge/skills/pingfanfan/hello-dsh/security-review-cn/github.svg)](https://agentmods.dev/skills/pingfanfan/hello-dsh/security-review-cn)
Your own site
<a href="https://agentmods.dev/skills/pingfanfan/hello-dsh/security-review-cn"><img src="https://agentmods.dev/badge/skills/pingfanfan/hello-dsh/security-review-cn/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for security-review-cn

Your own site · 80×15
<a href="https://agentmods.dev/skills/pingfanfan/hello-dsh/security-review-cn"><img src="https://agentmods.dev/badge/skills/pingfanfan/hello-dsh/security-review-cn.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 52 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,185 The whole file, excluding the scripts and references it only reads on demand.
Security scan B 1 finding. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector warn 7 Sept 2026
SkillSpector: 4 findings, up to high

These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →

  • high Tool Misuse · line 87
    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).
    Fix: Validate all tool parameters against an allowlist. Reject dangerous parameter values (shell=True, --force, -rf /) and use safe defaults.
  • high Tool Misuse · line 87
    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).
    Fix: Validate all tool parameters against an allowlist. Reject dangerous parameter values (shell=True, --force, -rf /) and use safe defaults.
  • high Tool Misuse · line 87
    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).
    Fix: Validate all tool parameters against an allowlist. Reject dangerous parameter values (shell=True, --force, -rf /) and use safe defaults.
  • high Tool Misuse · line 87
    Tool calls are chained to bypass individual safety checks or escalate capabilities beyond what any single tool call would allow.
    Fix: Limit tool chaining depth and validate the output of each tool before passing it to the next. Require explicit user approval for multi-step chains.
How audits are shown
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00052 $0.01185
Opus 5 $0.00026 $0.00593
Sonnet 5 $0.00010 $0.00237
Haiku 4.5 $0.00005 $0.00119

Measured 10d ago against content hash b2f68518a54f, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-09, from the pricing page.

Security

Grade B, and why

security-review-cn scanned grade B with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 10d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Recursive force deletemediumDestructive command

rm -rf with a variable or a broad path is one typo away from removing the wrong tree.

filename 传入 `a.txt; rm -rf ~` 会执行任意命令。

Downgraded: this mod is about security review, or the phrase is quoted, so it is likely naming the pattern rather than instructing it.

examples/skills/security-review-cn/SKILL.md · 102 lines

What it actually says

中文安全审查

从信任边界开始,不要从漏洞清单开始。

先画清楚:哪些数据来自外部、它们流经哪里、在哪一步被当成可信的。绝大多数漏洞都发生在「本来不可信的数据被当成可信」的那个交界处。

第一步:标出外部输入

外部输入不只是用户表单。这些都算:

  • HTTP 请求的任何部分(body、query、header、cookie、路径)
  • 文件内容、文件名、上传的元数据
  • 环境变量、命令行参数、配置文件
  • 数据库里的数据(如果曾经由用户写入)
  • 第三方 API 的响应
  • 模型的输出(在 agent 系统里尤其重要)

最后一条经常被忽略。模型输出会被拼进命令、路径、SQL、HTML 时,它和用户输入一样不可信。

第二步:跟踪它们流到哪

对每个外部输入,追它是否流入这些地方:

汇聚点 风险 检查
shell 命令 命令注入 有没有拼字符串?用了 exec 还是 execFile/数组参数?
文件路径 路径穿越 有没有 ..?拼接后是否 resolve 并校验仍在允许根内?符号链接呢?
SQL 注入 参数化查询还是字符串拼接?
HTML/模板 XSS 转义了吗?有没有 dangerouslySetInnerHTML 之类
正则 ReDoS 用户能控制正则本身吗?有嵌套量词吗?
反序列化 任意代码执行 在反序列化不可信数据吗?
重定向 URL 开放重定向 目标在白名单里吗?

凭据

单独一节,因为泄漏路径太多:

  • 不要写进日志,包括错误日志和调试输出
  • 不要写进返回给用户的错误信息
  • 不要提交进仓库,包括测试 fixture 和文档示例
  • 不要放进 URL(会进浏览器历史、代理日志、Referer)
  • 不要在诊断包或崩溃报告里带上完整环境变量

检查动作:搜一遍 console.log、日志调用、错误构造,看有没有把整个配置对象或整个 error 打出去。

对外提供诊断导出功能时,默认应该是白名单(只包含明确列出的字段),不是黑名单(排除已知敏感字段)。黑名单永远会漏。

权限

  • 默认拒绝,不是默认允许
  • 检查放在执行操作的那一层,不只在界面层。绕过 UI 直接调 API 的路径也要有检查
  • 覆盖「访问别人的资源」(水平越权),不只是「访问管理员功能」(垂直越权)
  • 检查的是当前请求者的权限,不是资源上记录的所有者

一个高频漏洞模式:接口按 id 取资源,取到之后忘了验证这个 id 属不属于当前用户。

沙箱与访问控制不是一回事

这条在 agent 系统里尤其重要。

语言层的访问控制(比如通过代理限制能访问哪些能力)可以约束遵守规则的代码。但如果不可信代码已经拿到了宿主运行时的权限,它可以直接触达底层对象,语言层的检查形同虚设。

真正隔离不可信代码需要外部机制:独立进程、受限运行时、容器、虚拟化。

所以不要说「声明了依赖所以是安全的」。DSH 官方文档在这点上写得很明确:Cordis 提供的是能力式访问控制,沙箱必须由外部提供。

依赖

  • 有没有引入维护状态不明的包
  • 有没有 postinstall 脚本
  • 锁文件提交了吗
  • 有没有从非官方源拉包

输出

可利用性排序,不是按理论严重性:

【高】src/tools/bash.ts:88 — 命令注入

用户提供的 filename 直接拼进 shell 字符串。
filename 传入 `a.txt; rm -rf ~` 会执行任意命令。

修复:改用 execFile 传数组参数,不经过 shell。

每条要有具体的利用路径。说不出怎么利用的,标成「建议」而不是「漏洞」。

不要做的事

  • 不要罗列 OWASP 条目而不看具体代码
  • 不要把「理论上可能有问题」报成漏洞
  • 不要在报告里写出可直接使用的完整攻击载荷
  • 不要假设前端校验有效
  • 不要认为「内网服务」就不需要鉴权
  • 不要把模型输出当成可信数据
Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 10d ago First seen · 102 lines · 52 tokens per session scan B b2f68518a54f

Subscribe to this mod's changes

security-review-cn is a skill published in the GitHub repository pingfanfan/hello-dsh (90 stars, last pushed 26d ago), licensed MIT. It adds 52 tokens to every session and 1,185 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it B with 1 finding (recursive force delete). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

dsh-plugin-guide

Use when developing, reviewing, packaging, debugging, or answering questions about DeepSeek Harness (DSH) plugins — the plugin-based agent harness on vendored Cordis. Applies the official plugin-development constraints (plugin contract, cordis.yml layers, services/events/effects, tool DSL, bundles/profiles) backed by…

PerryLink/dsh-plugin-guide · 76 tokens

dsh-web-community-plugin-developer

Develop a DSH community plugin and register it in the dsh-web Community Plugins index — author the plugin in the contributor's own repository following the official cordis bundle standard, add its entry to packages/dsh-community-plugins/community.json, regenerate the index with scripts/community-index, rebuild and…

zhu1090093659/dsh-web · 123 tokens

dsh-web-skin-developer

Build a new skin for the dsh-web skin collection (DSH Web GUI) and publish it into the Skin Center — the first-level settings section — scaffold with scripts/dsh-skin-new, author the v2 skin.json manifest plus skin.css token remap (pure asset directory, no package.json, no build step), validate with scripts/dsh-skin…

zhu1090093659/dsh-web · 120 tokens

dsh-sdk-upgrade

Safely select and install a compatible official @deepseek-ai SDK release for dsh plugin projects (dsh-web, dsh-trading, and similar monorepos) from npm using an isolated worktree, explicit cohort review, CI-equivalent validation, and controlled rollout — including syncing the project's declared DSH host-version floor…

zhu1090093659/dsh-web · 176 tokens

dsh-web-sdk-compatibility

Adapt and repair dsh-web after an approved official @deepseek-ai SDK/runtime cohort is selected or installed. Compare public API, type, service-injection, module-table, protocol, and behavior changes; map every change to repository consumers; implement the smallest fixes and durable compatibility contracts; handle…

zhu1090093659/dsh-web · 107 tokens

dsh-web-pet-developer

Create a pet for the dsh-pet plugin and integrate it into the dsh web GUI — author a v2 pet.json manifest plus an 8-column x 9-row atlas per the Codex/hatch-pet contract (live2d pets, voice packs and status decorations included), drop it into the pet-center user directory or contribute it as a built-in asset under…

zhu1090093659/dsh-web · 162 tokens