Skip to content
Report library
Purpose / Other

Dbs Save Skill Security Audit

What the author says it does (original text)

把当前诊断的关键状态保存到本地,并查看或设置存档位置。用户要求保存结论、跨会话续接或修改存档位置时使用。

Independent security check

Security risks found

Files checked
2
Risks found
3
Could it run dangerous commands?Looks for programs run straight after downloading, remote control of your computer, and hidden commands.No risks found
Could it expose your files or keys?Looks for uploads of files containing passwords or keys, and keys written directly in the code.Risks found: 1
Medium risk

Sensitive diagnostic details are persisted as unencrypted plaintext

Source references: 5
What we found

The archive template retains the user's wording, customer information, income, and possible trade secrets. Files are unencrypted; project mode can place them near Git, while a custom location can be cloud-synced. The Skill warns about this but does not require a preview and field-by-field confirmation before writing.

Why this matters

Other local users, backup software, Git remotes, or people sharing a cloud folder could gain access to the diagnostic information.

The Skill writes summaries of the user's words, customer quotes, and other diagnostic details to Markdown. It explicitly says archives are unencrypted local plaintext and may contain revenue, customer data, and trade secrets. Project mode places them in the project's `.dbs/`, which could leak if tracked by Git, while a custom root may be cloud-synced. Although it requires warnings and lets users adjust sensitive content, it does not require showing and confirming the exact sensitive fields before each write, so persistent storage and unintended synchronization are plausible risks.

SKILL.md:167In the instructionsOpen original file
{用户最初问的问题,原文摘要 1-2 句。不要美化、不要总结成抽象概念,保留用户的原话语气}
Show 4 other places
SKILL.md:193In the instructionsOpen original file
## 备注{自由 markdown,可以补任何对未来回访有用的信息:客户的原话、关键转折点、你当时的怀疑}```
SKILL.md:110In the instructionsOpen original file
- `.dbs/` 和存档目录内可能包含收入、客户与商业秘密,文件是本地纯文本,没有加密。- 如果当前项目使用 Git,建议把 `.dbs/` 加入 `.gitignore`。修改 `.gitignore` 前必须得到用户确认。- 切换位置不会自动搬动旧存档。需要迁移时,先展示来源与目标,得到用户确认后复制;保留原文件。
SKILL.md:261In the instructionsOpen original file
- 用户连续两次 `/dbs-save` 想存同一个状态 → 允许,新文件名带时间戳,不会冲突- 用户的诊断信息特别敏感(比如收入数字、商业秘密)→ 提醒一句:「当前存档目录是本地纯文本,没有加密。如果不想保存敏感细节,可以先调整内容或更换存档位置。」- 用户切换了存档位置后找不到旧记录 → 显示当前存档根目录,并提示旧记录可能仍在原位置。得到确认后可以复制迁移,不删除原文件
SKILL.md:83In the instructionsOpen original file
|---|---|| `default` | `~/.dbs/` || `project` | 当前工作目录下的 `.dbs/` || `custom` | `root` 字段指定的目录 |
Could it delete files or keep running?Looks for broad file deletion, disk overwrites, and programs set to start automatically.Risks found: 2
Medium risk

Unvalidated explicit project names can direct writes outside the intended project directory

Source references: 3
What we found

Default project names are sanitized, but no equivalent validation is specified for a `--slug` value. That value is inserted directly into the `sessions/{slug}/` path, so separators or `..` may change the destination.

Why this matters

An accidental or induced project name could create directories and diagnostic files outside the expected archive root, polluting other locations and widening exposure of sensitive content.

The default project name is sanitized to `[a-z0-9-]`, but no equivalent validation or rejection rule is given for a user-supplied `--slug`. That value is then inserted directly into `sessions/{slug}/...`, with instructions to create missing directories. If the runtime treats `/` or `..` literally, files could be created outside the intended project subdirectory. No implementation script is shown, so this supports an instruction-level exploitable risk, not proof that traversal occurred. Users can ask the author to enforce the slug character set and verify the resolved path remains under the sessions root.

SKILL.md:56In the instructionsOpen original file
**默认项目名**:取自 `basename $(pwd)`,把所有非 `[a-z0-9-]` 字符替换成 `-`。**用户显式指定**:用 `--slug` 参数,例如 `/dbs-save --slug my-project 卖什么没想清楚`。
Show 2 other places
SKILL.md:139In the instructionsOpen original file
先按「存档根目录」规则得到 `{存档根目录}`。```{存档根目录}/sessions/{slug}/{YYYYMMDD-HHMMSS}-{title-slug}.md```
SKILL.md:149In the instructionsOpen original file
如果目录不存在,先 `mkdir -p`。
Medium risk

A project-supplied configuration can silently redirect archive writes

Source references: 5
What we found

The Skill automatically trusts `.dbs/config.json` in the current working directory. An existing `custom.root` can name an arbitrary non-empty directory. Confirmation is explicitly required when a user writes configuration through a location command, but not when consuming configuration already present in a repository.

Why this matters

After opening an untrusted project, a save operation could create directories and write sensitive diagnostic content to a project-selected location without the user confirming that destination.

The Skill first reads `.dbs/config.json` from the current working directory and uses its `root` in custom mode; relative roots are resolved from that directory. It rejects a few especially broad targets but still permits other arbitrary writable locations. Its confirmation requirement explicitly applies when a user invokes `location ...` to create or update the configuration, not before consuming an existing repository-provided configuration. Thus, saving from a project with a preloaded config could write diagnostic data somewhere the user did not expect. Users can restrict it to ignore configurations not confirmed in the current conversation or request the read-only `location` operation first.

SKILL.md:68In the instructionsOpen original file
`dbs-save`、`dbs-restore`、`dbs-report` 必须先按同一套规则解析存档根目录,后续路径都基于这个结果拼接。配置文件固定为当前工作目录下的 `.dbs/config.json`。没有配置文件时,继续使用默认位置,不创建配置文件。
Show 4 other places
SKILL.md:99In the instructionsOpen original file
1. 读取当前工作目录下的 `.dbs/config.json`。2. 文件不存在时,存档根目录为 `~/.dbs/`。3. `mode` 是 `default` 时,存档根目录为 `~/.dbs/`。4. `mode` 是 `project` 时,存档根目录为当前工作目录下的 `.dbs/`。5. `mode` 是 `custom` 时,读取 `root`。展开开头的 `~`;相对路径按当前工作目录解析。6. 配置无法解析、`mode` 不受支持、`root` 为空,或路径指向 `/`、用户家目录、当前项目根目录时,停止操作并说明配置问题。不要静默退回默认位置。只有用户明确调用 `location default`、`location project` 或 `location custom <路径>` 时,才写入配置文件。写入前说明最终解析出的绝对路径,并要求用户确认;用户确认后再创建或更新 `.dbs/config.json`。
SKILL.md:141In the instructionsOpen original file
```{存档根目录}/sessions/{slug}/{YYYYMMDD-HHMMSS}-{title-slug}.md```- `YYYYMMDD-HHMMSS` 用本地时间- `title-slug` 把标题里的空格和标点替换成 `-`,保留中英文字符- 如果同一秒已有同名(极少见),追加 4 位随机后缀,比如 `-a7k2`如果目录不存在,先 `mkdir -p`。
SKILL.md:106In the instructionsOpen original file
只有用户明确调用 `location default`、`location project` 或 `location custom <路径>` 时,才写入配置文件。写入前说明最终解析出的绝对路径,并要求用户确认;用户确认后再创建或更新 `.dbs/config.json`。
SKILL.md:114In the instructionsOpen original file
`/dbs-save location` 只显示当前模式、配置文件位置和解析后的存档根目录,不写文件。
Could it bypass safety checks?Looks for skipped website security checks, excessive file access, or actions that skip your approval.No risks found
Could it mislead the AI or hide text?Checks the skill instructions for requests to ignore you, influence the report, or hide text in invisible characters.No risks found
Could it change links or payment recipients without asking?Looks for forced referral or payment changes combined with instructions to hide the change.No risks found

Inside this skill

8 instruction sections

When the user requests an archive, the Skill writes conclusions, rejected directions, hypotheses, next steps, and notes to a timestamped Markdown file. The default location is `.dbs/` under the user's home directory.

View source
SKILL.md:8In the instructionsOpen original file
你是 dbskill 的状态保存工具。你的工作是:把当前对话里诊断出来的关键结论、用户已经否决的方向、推荐的下一步,写成一个结构化的 markdown 文件存到本地。**你不做诊断。** 诊断是别的 skill 的事,你只做记录。
SKILL.md:99In the instructionsOpen original file
1. 读取当前工作目录下的 `.dbs/config.json`。2. 文件不存在时,存档根目录为 `~/.dbs/`。3. `mode` 是 `default` 时,存档根目录为 `~/.dbs/`。4. `mode` 是 `project` 时,存档根目录为当前工作目录下的 `.dbs/`。5. `mode` 是 `custom` 时,读取 `root`。展开开头的 `~`;相对路径按当前工作目录解析。6. 配置无法解析、`mode` 不受支持、`root` 为空,或路径指向 `/`、用户家目录、当前项目根目录时,停止操作并说明配置问题。不要静默退回默认位置。
SKILL.md:141In the instructionsOpen original file
```{存档根目录}/sessions/{slug}/{YYYYMMDD-HHMMSS}-{title-slug}.md```- `YYYYMMDD-HHMMSS` 用本地时间- `title-slug` 把标题里的空格和标点替换成 `-`,保留中英文字符- 如果同一秒已有同名(极少见),追加 4 位随机后缀,比如 `-a7k2`如果目录不存在,先 `mkdir -p`。

Changing the archive location requires an explicit location command and confirmation of the resolved absolute path before configuration is written. The Skill also requires warnings about plaintext, Git, and cloud-sync exposure, and preserves original files during migration.

View source
SKILL.md:106In the instructionsOpen original file
只有用户明确调用 `location default`、`location project` 或 `location custom <路径>` 时,才写入配置文件。写入前说明最终解析出的绝对路径,并要求用户确认;用户确认后再创建或更新 `.dbs/config.json`。首次选择项目或自定义模式时提醒一次:- `.dbs/` 和存档目录内可能包含收入、客户与商业秘密,文件是本地纯文本,没有加密。- 如果当前项目使用 Git,建议把 `.dbs/` 加入 `.gitignore`。修改 `.gitignore` 前必须得到用户确认。- 切换位置不会自动搬动旧存档。需要迁移时,先展示来源与目标,得到用户确认后复制;保留原文件。

Listing archives reads only the requested project under the currently configured location and does not create a new archive.

View source
SKILL.md:211In the instructionsOpen original file
## list 模式如果用户输入 `/dbs-save list` 或 `/dbs-save list <项目名>`,不写新文件,只列出已有存档。先按「存档根目录」规则定位 `sessions/{项目名}/`。只列出当前配置所指向位置中的存档,不混合其他位置。
Start here · InstructionsSKILL.md
dbs-save
Lines connect the instruction file to its sections, not an observed execution order. Select a section to read the source. 4 more sections are available in the original file.
Files and check records2 files

Coverage and gaps

Content covered in each file

These are the source ranges included in this check, not a guarantee that every issue has been resolved.

  • SKILL.mdFull text included
  • agents/openai.yamlFull text included

This report is for the version above. We read the available code and instructions without running the skill or checking extra packages it installs. This is not a promise of safety: a different version or setup may behave differently.

  • SKILL.mdInstructions
  • agents/openai.yamlSupporting file
Lines read
290
File checksum (to compare versions)
1863282763631b50402accd9bdf5d5426e9fc6a2e38ed3b071b208daf2e85c44