跳转到正文
报告库
用途分类 / 其他用途

Lark Okr Skill 安全审计

作者说它能做什么(原文)

飞书 OKR:管理目标与关键结果。查看和编辑 OKR 周期、目标、关键结果、对齐关系、量化指标和进展记录。当用户需要查看或创建 OKR、管理目标和关键结果、查看对齐关系时使用。不负责:待办任务管理(lark-task)、日程/会议安排(lark-calendar)、绩效评估

第三方安全检查结论

发现安全风险

已检查文件
26
发现的风险
4
会不会运行危险命令?检查是否下载程序后直接运行、让他人远程控制电脑,或藏起要运行的命令。未发现风险
会不会泄露文件和密钥?检查是否发送含密码或密钥的文件,以及代码里是否直接写了密钥。发现 1 项风险
中风险

部分不可恢复删除操作没有强制用户确认

原文依据:5 处
发现了什么

进展删除和对齐关系删除均被注明不可恢复,但给出的真实执行命令及工作流不要求 --yes 或在执行前取得用户确认;同一 Skill 的评论删除却有明确确认协议。

为什么需要注意

选错 ID、周期或目标时,进展记录可能永久丢失,对齐关系也会被移除,影响 OKR 历史和组织关系展示。

进展记录和对齐关系删除都被明确描述为不可恢复,但其真实执行示例及工作流没有要求用户确认或确认参数。相比之下,评论删除明确要求先 dry-run、告知不可恢复、取得确认并附加 --yes。若代理将一般“删除”请求直接执行,用户可能永久丢失进展记录或对齐关系。用户可要求这些删除采用与评论删除相同的显式确认门槛。

references/lark-okr-progress-delete.md:5来自说明文档
根据 ID 删除一条 OKR 进展记录。此操作为高风险操作,删除后不可恢复。
查看另外 4 个位置
references/lark-okr-progress-delete.md:27来自说明文档
1. 使用 `+progress-get` 确认要删除的进展记录 ID 和内容。2. 执行 `lark-cli okr +progress-delete --progress-id "1234567890123456789"`。3. 报告结果:已删除的进展记录 ID。> **注意**:此操作不可恢复,建议在删除前先用 `+progress-get` 确认记录内容。
references/lark-okr-alignments.md:121来自说明文档
```bashlark-cli okr alignments delete --alignment-id "<对齐关系ID>"```
references/lark-okr-alignments.md:139来自说明文档
### 注意事项- 删除操作不可逆,请谨慎操作- 需要对关联的目标有编辑权限
references/lark-okr-comment-delete.md:30来自说明文档
1. 使用 [+comment-list](lark-okr-comment-list.md)、[+comment-detail](lark-okr-comment-detail.md) 或 [+comment-get](lark-okr-comment-get.md) 定位并确认 comment-id。2. 判断是否真的需要删除:解决评论使用 [+comment-solve](lark-okr-comment-solve-reopen.md),删除只用于永久移除内容。3. 先执行带 --dry-run 的命令检查 URL 和 comment-id。4. 向用户明确说明删除不可恢复;得到确认后,在原始命令末尾追加 --yes 执行。5. 根据 deleted=true 和返回的 comment_id 确认结果。
会不会删除文件或一直在后台运行?检查是否大范围删除文件、改写磁盘,或设置自动启动。未发现风险
会不会绕过安全保护?检查是否跳过网站安全验证、开放过多文件权限,或取消操作前的确认。发现 1 项风险
中风险

机器人身份可能绕过用户本人可见范围读取他人 OKR

原文依据:3 处
发现了什么

说明允许使用 --as bot 查看他人 OKR,只要求机器人具备相应权限,没有要求确认请求者本人也有权查看这些内容。应用权限可能宽于个人权限。

为什么需要注意

若代理在用户身份无权读取时改用机器人身份,同事的目标、评分、备注、进展或评论可能被返回给无权查看的请求者。

这段证据能说明什么

主文档确实允许以机器人身份查看他人 OKR,而应用权限可能不同于当前用户权限;但它同时要求具备“相应权限”,并强制先读取未提供的共享认证与权限规则。现有证据无法判断共享规则是否要求核验请求者的访问授权,因此风险成立与否不确定。用户可要求作者说明机器人模式如何验证请求者有权查看目标人员的 OKR,并限制默认使用用户身份。

这项判断针对展示的代码和适用条件,不表示风险已经实际发生。
SKILL.md:15来自说明文档
**身份**:OKR 操作默认使用 `--as user`(查看当前用户/上下级的 OKR 时)。也支持 `--as bot` 查看他人 OKR(需相应权限)。
查看另外 2 个位置
references/lark-okr-entities.md:384来自说明文档
所有 OKR API 均支持 `user` 和 `tenant`(应用)两种 access token 类型。
SKILL.md:13来自说明文档
**CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../lark-shared/SKILL.md`](../lark-shared/SKILL.md),其中包含认证、权限处理**
会不会误导 AI 或隐藏内容?检查工作说明是否要求 AI 忽略你的指令、干扰检查结果,或夹带看不见的文字。未发现风险
会不会偷偷改推广链接或收款方?检查是否强制替换推广链接或收款对象,同时要求隐瞒更改。发现 2 项风险
中风险

Skill 可在未获用户确认时自行选择并写入 Objective 分类

原文依据:2 处
发现了什么

当创建失败且仅“怀疑”租户强制分类时,指令要求选择代理认为语义合适的分类,并明确说无需等待用户确认。分类可能表达个人、团队或承诺等业务含义。

为什么需要注意

目标可能被错误归入个人、团队或其他管理类别,影响组织视图、汇报解释及后续管理决策。

指令允许仅因怀疑租户强制分类,就由代理选择其认为语义合适的分类,并明确无需等待确认。分类用于表达“个人 OKR”“团队 OKR”“承诺 OKR”等业务标签,因此错误选择可能改变目标的组织含义或展示方式。用户可要求创建失败时先展示候选分类及其名称,并在写入前确认;至少应限制代理只能使用用户已指定的分类。

SKILL.md:32来自说明文档
分类只在用户明确要求分类,或创建 Objective 返回 `invalid parameters` 且怀疑租户强制开启分类时处理:用 `lark-cli okr categories list --params '{"owner_type":"user","page_size":100}' --as user` 查可用分类,选择语义合适且`enabled=true` 的分类 ID;分类可后续调整,不必停下等待用户确认。
查看另外 1 个位置
references/lark-okr-entities.md:332来自说明文档
## Category (分类)分类用于对目标进行分组标记(如"个人 OKR"、"团队 OKR"、"承诺 OKR")等。具体的分类根据租户设置而定。
低风险

新建进展会默认写入工具品牌及官方应用链接作为来源

原文依据:2 处
发现了什么

未提供来源参数时,进展记录默认显示“created by lark-cli”,并自动使用飞书或 Lark 官方应用 URL;这些字段在 OKR 界面中被描述为进展来源。

为什么需要注意

读者可能把自动插入的工具链接误解为进展信息的真实业务来源,降低记录的来源可信度。

创建进展时若用户未提供来源字段,Skill 会默认写入“created by lark-cli”和飞书/Lark 官方应用链接;文档称这些字段会作为进展来源显示。这与上传数据或凭据泄露无关,但可能让读者误以为官方应用页面是实际信息来源,并公开工具使用痕迹。用户可要求默认不填来源字段,或在写入前展示并确认来源标题和链接。

references/lark-okr-progress-create.md:42来自说明文档
| `--progress-status`  | 否  | —                     | 进度状态:`normal`(正常) \| `overdue`(逾期) \| `done`(已完成)。仅在指定 `--progress-percent` 时生效。                                                     || `--source-title`     | 否  | `created by lark-cli` | 来源标题,用于在 OKR 界面中显示进展来源                                                                                                               || `--source-url`       | 否  | 根据品牌自动生成              | 来源 URL,用于在 OKR 界面中显示进展来源链接,通常可以填写 OKR 编写信息来源的文档链接等。飞书品牌默认为 `https://open.feishu.cn/app`, Lark 品牌默认为 `https://open.larksuite.com/app` || `--user-id-type`     | 否  | `open_id`             | 用户 ID 类型:`open_id` \| `union_id` \| `user_id`                                                                                        |
查看另外 1 个位置
references/lark-okr-entities.md:173来自说明文档
| `progress_rate` | `ProgressRate` | 否  | 进度率,可设置 `percent` 和 `status`                            || `source_title`  | `string`       | 否  | 来源标题,用于在 OKR 界面中显示进展来源                                  || `source_url`    | `string`       | 否  | 来源 URL,用于在 OKR 界面中显示进展来源链接                              |

Skill 逻辑拆解

5 个说明模块

该 Skill 通过 lark-cli 读取和修改飞书 OKR,包括目标、关键结果、指标、进展、评论、权重及对齐关系;实际权限与认证规则依赖另一个未随本证据提供的共享 Skill。

查看原文
SKILL.md:7来自说明文档
  requires:    bins: [ "lark-cli" ]  cliHelp: "lark-cli okr --help"---
SKILL.md:13来自说明文档
**CRITICAL — 开始前 MUST 先用 Read 工具读取 [`../lark-shared/SKILL.md`](../lark-shared/SKILL.md),其中包含认证、权限处理****身份**:OKR 操作默认使用 `--as user`(查看当前用户/上下级的 OKR 时)。也支持 `--as bot` 查看他人 OKR(需相应权限)。

多数写操作提供 --dry-run 预览;评论永久删除还明确要求核对目标、告知不可恢复并获得确认。

查看原文
references/lark-okr-comment-delete.md:30来自说明文档
1. 使用 [+comment-list](lark-okr-comment-list.md)、[+comment-detail](lark-okr-comment-detail.md) 或 [+comment-get](lark-okr-comment-get.md) 定位并确认 comment-id。2. 判断是否真的需要删除:解决评论使用 [+comment-solve](lark-okr-comment-solve-reopen.md),删除只用于永久移除内容。3. 先执行带 --dry-run 的命令检查 URL 和 comment-id。4. 向用户明确说明删除不可恢复;得到确认后,在原始命令末尾追加 --yes 执行。5. 根据 deleted=true 和返回的 comment_id 确认结果。

周期评论聚合查询会读取周期下全部目标、关键结果、进展及四类对象的评论,并自动分页;大型周期可能产生较多读取请求。

查看原文
references/lark-okr-comment-detail.md:30来自说明文档
1. 使用 +cycle-list 获取周期 ID;如果用户已经提供周期 ID,直接使用。2. 执行 +comment-detail --cycle-id "..."。shortcut 会依次获取周期下的 Objective、每个 Objective 下的 KeyResult、每个 Objective/KeyResult 下的 Progress,以及四类对象的评论。3. 评论接口自动处理分页;对象读取和评论读取使用有界并发。任一底层请求失败时整体返回错误,不返回静默不完整结果。4. 评论串按首条评论的 create_time 升序排列,串内评论也按 create_time 升序排列。
references/lark-okr-comment-detail.md:69来自说明文档
- 这是聚合查询,接口调用次数取决于周期下的 Objective、KeyResult 和 Progress 数量。- +comment-detail 不接受 department-id-type,该接口参数由 shortcut 忽略。- 该命令只读取评论,不会修改、解决或删除评论。

本地图片上传被限制为当前工作目录内的相对路径,并明确禁止通过符号链接访问目录外文件。

查看原文
references/lark-okr-image-upload.md:104来自说明文档
## 安全限制- `--file` 参数**必须使用相对路径**(如 `./photo.png` 或 `images/photo.png`),不支持绝对路径- 图片文件必须存在于当前工作目录或其子目录中- 不支持符号链接指向目录外的文件
从这里开始 · 工作说明SKILL.md
lark-okr
连线表示工作说明包含的模块,不是实际运行顺序。点击模块可查看原文。

文件引用关系图

40 处引用
哪些文件发起引用引用了什么
连线表示真实的文件引用,不是运行顺序。点击节点可高亮相关连线,并查看具体文件和原文位置。虚线表示还有文件需要定位。
文件与检查记录26 个文件

检查范围与遗漏

逐文件查看涉及的内容

下方列出本次涉及的原文范围;纳入检查不代表已查清所有问题。

  • SKILL.md已纳入全文
  • references/lark-okr-alignments.md已纳入全文
  • references/lark-okr-batch-create.md已纳入全文
  • references/lark-okr-comment-create.md已纳入全文
  • references/lark-okr-comment-delete.md已纳入全文
  • references/lark-okr-comment-detail.md已纳入全文
  • references/lark-okr-comment-get.md已纳入全文
  • references/lark-okr-comment-list.md已纳入全文
  • references/lark-okr-comment-patch.md已纳入全文
  • references/lark-okr-comment-solve-reopen.md已纳入全文
  • references/lark-okr-contentblock.md已纳入全文
  • references/lark-okr-create.md已纳入全文
  • references/lark-okr-cycle-detail.md已纳入全文
  • references/lark-okr-cycle-list.md已纳入全文
  • references/lark-okr-entities.md已纳入全文
  • references/lark-okr-image-upload.md已纳入全文
  • references/lark-okr-indicator-update.md已纳入全文
  • references/lark-okr-indicators.md已纳入全文
  • references/lark-okr-patch.md已纳入全文
  • references/lark-okr-progress-create.md已纳入全文
  • references/lark-okr-progress-delete.md已纳入全文
  • references/lark-okr-progress-get.md已纳入全文
  • references/lark-okr-progress-list.md已纳入全文
  • references/lark-okr-progress-update.md已纳入全文
  • references/lark-okr-reorder.md已纳入全文
  • references/lark-okr-weight.md已纳入全文

这份报告只针对上方版本。我们看了拿到的代码和说明文件,没有实际运行 Skill,也没有检查它另外安装的软件包。因此,这不是“保证安全”的承诺;换了版本或使用环境,结果也可能不同。

  • SKILL.md工作说明
  • references/lark-okr-alignments.md配套文件
  • references/lark-okr-batch-create.md配套文件
  • references/lark-okr-comment-create.md配套文件
  • references/lark-okr-comment-delete.md配套文件
  • references/lark-okr-comment-detail.md配套文件
  • references/lark-okr-comment-get.md配套文件
  • references/lark-okr-comment-list.md配套文件
  • references/lark-okr-comment-patch.md配套文件
  • references/lark-okr-comment-solve-reopen.md配套文件
  • references/lark-okr-contentblock.md配套文件
  • references/lark-okr-create.md配套文件
  • references/lark-okr-cycle-detail.md配套文件
  • references/lark-okr-cycle-list.md配套文件
  • references/lark-okr-entities.md配套文件
  • references/lark-okr-image-upload.md配套文件
  • references/lark-okr-indicator-update.md配套文件
  • references/lark-okr-indicators.md配套文件
  • references/lark-okr-patch.md配套文件
  • references/lark-okr-progress-create.md配套文件
  • references/lark-okr-progress-delete.md配套文件
  • references/lark-okr-progress-get.md配套文件
  • references/lark-okr-progress-list.md配套文件
  • references/lark-okr-progress-update.md配套文件
  • references/lark-okr-reorder.md配套文件
  • references/lark-okr-weight.md配套文件

代码和说明中提到的操作

运行命令
SKILL.md:36来自说明文档
```bashlark-cli contact +search-user --query "张三" --has-chatted --as user
SKILL.md:42来自说明文档
```bash# 查用户周期,再用周期 ID 查详情
references/lark-okr-alignments.md:21来自说明文档
```bashlark-cli okr objective.alignments list --objective-id "<目标ID>" [flags]
连接外部网站
references/lark-okr-contentblock.md:52来自说明文档
                "link": {                  "url": "https://example.com"                }
references/lark-okr-contentblock.md:60来自说明文档
            "docs_link": {              "url": "https://larkoffice.com/docx/xxx",              "title": "Lark Document"
references/lark-okr-contentblock.md:79来自说明文档
            "file_token": "file_xxx",            "src": "https://...",            "width": 800,
读取了多少行
3,373
文件校验值(用于核对版本)
f8fb41258f0b00f80cd4fa98fcdba934664a4949cf3a42160e0edc4e9e6e7c46