Skip to content
Report library
Purpose / Other

Lark Workflow Meeting Summary Skill Security Audit

What the author says it does (original text)

会议纪要整理工作流:汇总指定时间范围内的会议纪要并生成结构化报告。当用户需要整理会议纪要、生成会议周报、回顾一段时间内的会议内容时使用。

Independent security check

Security risks found

Files checked
1
Risks found
3
Could it run dangerous commands?Looks for programs run straight after downloading, remote control of your computer, and hidden commands.Risks found: 1
Medium risk

Directly inserting a dynamic report into a shell-quoted argument can enable command injection

Source references: 1
What we found

The cloud-document commands carry the dynamic report in `$'<内容>'`. If an executor substitutes meeting-derived text directly into this shell template, a single quote in that text can terminate the quoting early; following shell operators or commands may then be interpreted by the terminal instead of being document content.

Why this matters

A crafted meeting title, transcript passage, or report fragment could execute local commands with the agent user's privileges, potentially reading or changing accessible files and credentials. Ordinary apostrophes can also make document creation fail.

What this evidence establishes

The file does show a shell template that passes dynamic body text through ANSI-C single quotes (`$'…'`); an unescaped single quote could alter shell parsing. However, the evidence is only a placeholder example, with no script or instruction requiring raw meeting text to be concatenated into it, so unsafe interpolation is not established. A user can ask the author to require file/stdin or structured JSON input and explicitly forbid direct placeholder substitution.

This assessment concerns the code and conditions shown, not proof that harm has occurred.
SKILL.md:112In the instructions
### Step 5: 生成文档(可选,用户要求时)阅读 [`../lark-doc/SKILL.md`](../lark-doc/SKILL.md) 学习云文档技能。```bashlark-cli docs +create --doc-format markdown --content $'<title>会议纪要汇总 (<start> - <end>)</title>\n<内容>'# 或追加到已有文档lark-cli docs +update --doc "<url_or_token>" --command append --doc-format markdown --content $'<内容>'```
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

The Minutes fallback writes full meeting transcripts to a local directory

Source references: 1
What we found

The command explicitly uses `--transcript --output-dir ./transcripts`, and the instructions state that the transcript is written to disk. Raw meeting speech may contain personal data, business secrets, or credentials, but this file defines no retention period, access restriction, or cleanup after processing.

Why this matters

Other local processes, synchronization or backup services, and people who later gain workspace access may obtain the full transcript, which is more sensitive than the final summary.

This is a real, conditional local write: when a meeting lacks note_id but has minute_token and the fallback is used, the full transcript is saved under ./transcripts for report analysis. Reading meeting content matches the stated purpose, but the files may contain sensitive speech, and this file gives no local access-control, retention, or cleanup policy. A user can ask the author to define storage permissions and automatic deletion, or restrict output to a controlled temporary directory.

SKILL.md:82In the instructions
> **妙记备选路径(无 `note_id`、有 `minute_token` 时)**:智能纪要与妙记是两条独立产物链路,缺少智能纪要不代表这场会没有内容。>> ```bash> # --minute-tokens 是复数形式(+download 同);--output-dir 只接受相对路径> lark-cli minutes +detail --minute-tokens "<minute_token>" --transcript --output-dir ./transcripts --as user> ```>> 逐字稿会落盘,供 Step 4 基于原始发言独立提炼(不要照搬 AI 总结)。若返回 `No read permission`(`2091005`),先把无权限事实告知用户,用户明确同意后再用单数 flag 申请:`lark-cli minutes +apply-permission --minute-token "<minute_token>" --perm view --as user`;申请需 owner 在客户端批准后才可重试。详见 [基于 minute_token 查询妙记及关联产物](../lark-meeting/scenes/query-minutes-and-artifacts.md)。
Could it delete files or keep running?Looks for broad file deletion, disk overwrites, and programs set to start automatically.No risks found
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.Risks found: 1
Medium risk

Raw meeting content is given to the agent without isolating embedded instructions from workflow instructions

Source references: 5
What we found

The workflow retrieves transcripts and directs the agent to derive a summary from the raw speech. Meeting speech is participant-controlled data, but this file does not require commands, links, permission requests, or agent-directed instructions found within it to be treated only as quoted content.

Why this matters

Malicious or misleading transcript text could influence the agent to run extra commands, request permissions, access other material, or make unauthorized decisions in the report.

What this evidence establishes

The visible workflow asks the agent to analyze downloaded original speech and may fetch it through `note +transcript`, so meeting participants can control part of the input. This file contains no visible boundary saying commands, links, or permission requests inside transcripts are data only. However, it mandates reading lark-shared and lark-meeting, which were not provided and may contain such safeguards; therefore the overall protection is uncertain. A user can ask the author to make that untrusted-data rule explicit.

This assessment concerns the code and conditions shown, not proof that harm has occurred.
SKILL.md:84In the instructions
>> ```bash> # --minute-tokens 是复数形式(+download 同);--output-dir 只接受相对路径> lark-cli minutes +detail --minute-tokens "<minute_token>" --transcript --output-dir ./transcripts --as user> ```>> 逐字稿会落盘,供 Step 4 基于原始发言独立提炼(不要照搬 AI 总结)。若返回 `No read permission`(`2091005`),先把无权限事实告知用户,用户明确同意后再用单数 flag 申请:`lark-cli minutes +apply-permission --minute-token "<minute_token>" --perm view --as user`;申请需 owner 在客户端批准后才可重试。详见 [基于 minute_token 查询妙记及关联产物](../lark-meeting/scenes/query-minutes-and-artifacts.md)。
Show 4 other places
SKILL.md:105In the instructions
### Step 4: 整理纪要报告根据时间跨度选择输出格式:- **单日汇总**("今天"/"昨天"):用"今日会议概览"标题,逐会议列出会议时间、主题、纪要链接、逐字稿链接(`unified` 纪要无逐字稿链接,标注"unified 纪要,逐字稿需 `note +transcript` 拉取")。- **多日/周报**("这周"/"过去 7 天"等):用"会议纪要周报"标题,含概览统计、逐会议详情。
SKILL.md:13In the instructions
**CRITICAL — 开始前 MUST 先完整读取 [`../lark-shared/SKILL.md`](../lark-shared/SKILL.md) 和 [`../lark-meeting/SKILL.md`](../lark-meeting/SKILL.md)**。认证、身份和权限以 lark-shared 为准;会议与产物关系、产物选择和逐字稿路由以 lark-meeting 为准。
SKILL.md:89In the instructions
>> 逐字稿会落盘,供 Step 4 基于原始发言独立提炼(不要照搬 AI 总结)。若返回 `No read permission`(`2091005`),先把无权限事实告知用户,用户明确同意后再用单数 flag 申请:`lark-cli minutes +apply-permission --minute-token "<minute_token>" --perm view --as user`;申请需 owner 在客户端批准后才可重试。详见 [基于 minute_token 查询妙记及关联产物](../lark-meeting/scenes/query-minutes-and-artifacts.md)。
SKILL.md:91In the instructions
> **逐字稿路由按 `note_display_type` 决定**(详见 [基于 note_id 查询智能纪要及关联产物](../lark-meeting/scenes/query-note-and-artifacts.md)):> - `normal`:逐字稿是独立文档,链接/正文走 `verbatim_doc_token`。> - `unified`:逐字稿**不是独立文档**,没有可分享的逐字稿文档链接;需要逐字稿内容时用 `note +transcript --note-id <note_id>`([lark-meeting](../lark-meeting/SKILL.md))拉取到本地,报告中标注"unified 纪要"即可。
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

4 instruction sections

The Skill queries meetings within a date range under the user's identity, retrieves smart notes or Minutes transcripts, and produces a daily overview or weekly report.

View source
SKILL.md:22In the instructions
仅支持 **user 身份**。执行前确保已授权:```bashlark-cli auth login --domain vc        # 基础(查询+纪要)lark-cli auth login --domain vc,drive   # 含读取纪要文档正文、生成文档lark-cli auth login --domain vc,drive,minutes  # 含无 note_id 时的妙记备选路径```
SKILL.md:54In the instructions
### Step 2: 查询会议记录```bash# page-size 最大为 30lark-cli vc +search --start "<YYYY-MM-DD>" --end "<YYYY-MM-DD>" --format json --page-size 30```- 时间范围拆分:搜索的时间范围最大为 1 个月。搜索更长时间范围的会议,需要拆分为多次时间范围为一个月查询。- `--end` 为**包含当天**的日期(即查"今天"时 start 和 end 都填今天)- `--format json` 输出 JSON 格式,你更佳擅长解析 JSON 数据。- `--page-size 30` 每页最多 30 条。- 有 `page_token` 时必须继续翻页,收集所有 `id` 字段(meeting-id)

If smart notes are unavailable but a minute_token exists, the workflow downloads the Minutes transcript. If access is denied, it requires informing the user and obtaining explicit consent, followed by approval from the content owner in the client.

View source
SKILL.md:82In the instructions
> **妙记备选路径(无 `note_id`、有 `minute_token` 时)**:智能纪要与妙记是两条独立产物链路,缺少智能纪要不代表这场会没有内容。>> ```bash> # --minute-tokens 是复数形式(+download 同);--output-dir 只接受相对路径> lark-cli minutes +detail --minute-tokens "<minute_token>" --transcript --output-dir ./transcripts --as user> ```>> 逐字稿会落盘,供 Step 4 基于原始发言独立提炼(不要照搬 AI 总结)。若返回 `No read permission`(`2091005`),先把无权限事实告知用户,用户明确同意后再用单数 flag 申请:`lark-cli minutes +apply-permission --minute-token "<minute_token>" --perm view --as user`;申请需 owner 在客户端批准后才可重试。详见 [基于 minute_token 查询妙记及关联产物](../lark-meeting/scenes/query-minutes-and-artifacts.md)。

Creating a new cloud document or appending the report to an existing one is marked as optional and limited to cases where the user requests it.

View source
SKILL.md:112In the instructions
### Step 5: 生成文档(可选,用户要求时)阅读 [`../lark-doc/SKILL.md`](../lark-doc/SKILL.md) 学习云文档技能。```bashlark-cli docs +create --doc-format markdown --content $'<title>会议纪要汇总 (<start> - <end>)</title>\n<内容>'# 或追加到已有文档lark-cli docs +update --doc "<url_or_token>" --command append --doc-format markdown --content $'<内容>'```

This file mandates loading adjacent Skills that govern authentication, permissions, content routing, and cloud-document operations. Those dependencies are not included in the supplied complete source, so this audit can assess only the behavior shown here, not additional instructions in those dependencies.

View source
SKILL.md:13In the instructions
**CRITICAL — 开始前 MUST 先完整读取 [`../lark-shared/SKILL.md`](../lark-shared/SKILL.md) 和 [`../lark-meeting/SKILL.md`](../lark-meeting/SKILL.md)**。认证、身份和权限以 lark-shared 为准;会议与产物关系、产物选择和逐字稿路由以 lark-meeting 为准。
SKILL.md:112In the instructions
### Step 5: 生成文档(可选,用户要求时)阅读 [`../lark-doc/SKILL.md`](../lark-doc/SKILL.md) 学习云文档技能。```bashlark-cli docs +create --doc-format markdown --content $'<title>会议纪要汇总 (<start> - <end>)</title>\n<内容>'# 或追加到已有文档lark-cli docs +update --doc "<url_or_token>" --command append --doc-format markdown --content $'<内容>'```
Start here · InstructionsSKILL.md
lark-workflow-meeting-summary
Lines connect the instruction file to its sections, not an observed execution order. Select a section to read the source.
Files and check records1 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

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

Operations mentioned in code and instructions

Run commands
SKILL.md:24In the instructions
```bashlark-cli auth login --domain vc        # 基础(查询+纪要)
SKILL.md:56In the instructions
```bash# page-size 最大为 30
SKILL.md:70In the instructions
1. 查询会议关联的纪要信息```bash# 首先获取 note_id 和 minute_token
Lines read
130
File checksum (to compare versions)
f2204406186f39bb104834488ded358c623e7f66092a600bc855b7101938ce69