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

Gws Calendar Skill 安全审计

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

Google Calendar: Manage calendars and events.

第三方安全检查结论

先别安装或运行

已检查文件
1
发现的风险
4
会不会运行危险命令?检查是否下载程序后直接运行、让他人远程控制电脑,或藏起要运行的命令。未发现风险
会不会泄露文件和密钥?检查是否发送含密码或密钥的文件,以及代码里是否直接写了密钥。未发现风险
会不会删除文件或一直在后台运行?检查是否大范围删除文件、改写磁盘,或设置自动启动。发现 1 项风险
高风险

暴露可永久清空日历及删除日历或事件的操作

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

目录明确提供清空主日历全部事件、删除次级日历和删除单个事件的方法。可见规则只要求先检查参数,没有要求逐次确认、备份或限制目标日历。

为什么需要注意

代理选错账号、日历 ID 或事件 ID 时,可能删除用户的日程记录并影响受邀者;主日历清空会一次删除其中全部事件。

这些是可调用方法的目录,不是自动删除指令;但其中明确包含清空主日历全部事件、删除次级日历和删除单个事件的能力。若代理在用户没有明确指定目标或确认影响时调用,可能造成不可逆的数据损失。文件只要求先检查方法参数,没有可见的备份或逐次确认约束。用户可限制为只读方法,并要求任何 `clear` 或 `delete` 调用前显示账号、日历和事件目标并单独确认。

SKILL.md:53来自说明文档打开原文件
  - `clear` — Clears a primary calendar. This operation deletes all events associated with the primary calendar of an account.  - `delete` — Deletes a secondary calendar. Use calendars.clear for clearing all events on primary calendars.  - `get` — Returns metadata for a calendar.
查看另外 2 个位置
SKILL.md:73来自说明文档打开原文件
  - `delete` — Deletes an event.  - `get` — Returns an event based on its Google Calendar ID. To retrieve an event using its iCalendar ID, call the events.list method using the iCalUID parameter.
SKILL.md:98来自说明文档打开原文件
Before calling any API method, inspect it:```bash# Browse resources and methodsgws calendar --help# Inspect a method's required params, types, and defaultsgws schema calendar.<resource>.<method>```
会不会绕过安全保护?检查是否跳过网站安全验证、开放过多文件权限,或取消操作前的确认。发现 1 项风险
高风险

可修改或删除日历访问控制规则,并提及域级用户模拟

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

该 Skill 暴露 ACL 的创建、更新和删除方法;同时建议可用域级授权代表特定用户操作。二者都可能改变谁能访问日历,或扩大应用可代表的账号范围。

为什么需要注意

若参数错误或凭据权限过宽,第三方可能获得日历访问权,合法用户也可能失去权限。启用域级授权还可能让应用以组织内用户身份操作,而不只影响当前账号。

目录确实提供 ACL 创建、更新和删除操作;若对错误日历或主体调用,会改变或移除他人的访问权限。域级委派则出现在创建日历时关于数据所有者的说明中,并非要求 Skill 配置该权限,但它明确涉及应用代表特定用户行动的高权限模式。用户可仅授权必要账号与日历,并要求每次 ACL 写入显示主体、角色和目标;域级委派应由管理员另行审批。

SKILL.md:33来自说明文档打开原文件
  - `delete` — Deletes an access control rule.  - `get` — Returns an access control rule.  - `insert` — Creates an access control rule.  - `list` — Returns the rules in the access control list for the calendar.  - `patch` — Updates an access control rule. This method supports patch semantics.  - `update` — Updates an access control rule.  - `watch` — Watch for changes to ACL resources.
查看另外 2 个位置
SKILL.md:59来自说明文档打开原文件
Note: We recommend to authenticate as the intended data owner of the calendar. You can use domain-wide delegation of authority to allow applications to act on behalf of a specific user. Don't use a service account for authentication. If you use a service account for authentication, the service account is the data owner, which can lead to unexpected behavior.  - `patch` — Updates metadata for a calendar. This method supports patch semantics.
SKILL.md:56来自说明文档打开原文件
  - `get` — Returns metadata for a calendar.  - `insert` — Creates a secondary calendar.The authenticated user for the request is made the data owner of the new calendar.Note: We recommend to authenticate as the intended data owner of the calendar. You can use domain-wide delegation of authority to allow applications to act on behalf of a specific user. Don't use a service account for authentication. If you use a service account for authentication, the service account is the data owner, which can lead to unexpected behavior.  - `patch` — Updates metadata for a calendar. This method supports patch semantics.
会不会误导 AI 或隐藏内容?检查工作说明是否要求 AI 忽略你的指令、干扰检查结果,或夹带看不见的文字。发现 1 项风险
中风险

缺少共享前置文件时会生成并信任新的外部指令

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

该 Skill 要求读取包外的 `../gws-shared/SKILL.md`;若不存在,又要求运行命令生成它。生成内容未包含在本次材料中,因此用户无法在安装前审查将控制认证、全局参数和安全规则的指令。

为什么需要注意

如果 `gws` 程序或其生成模板不可信,后续代理可能接受被替换的认证或安全指令;生成命令也会在本地创建持久文件。现有证据不能证明这种篡改已经发生。

这段证据能说明什么

该前置要求确实会在共享文件缺失时运行生成命令,并让后续代理读取其中的认证与安全规则;而生成内容不在材料中,无法审查其实际权限或指令。不过,这看起来是同一 `gws` 工具的初始化流程,现有证据没有表明它从不可信网络来源下载指令或会自动执行生成内容中的操作。用户可要求提供生成文件及其来源后再授权使用。

这项判断针对展示的代码和适用条件,不表示风险已经实际发生。
SKILL.md:16来自说明文档打开原文件
> **PREREQUISITE:** Read `../gws-shared/SKILL.md` for auth, global flags, and security rules. If missing, run `gws generate-skills` to create it.
会不会偷偷改推广链接或收款方?检查是否强制替换推广链接或收款对象,同时要求隐瞒更改。发现 1 项风险
中风险

移动事件会同时更改会议组织者

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

`events.move` 并非单纯整理日历;说明明确表示它会把事件移到另一日历并更改组织者。可见文件没有要求在此身份变更前确认。

为什么需要注意

误用可能改变谁控制会议更新、邀请和后续管理,造成参与者混淆或业务安排被错误归属。

说明明确表示 `events.move` 会把事件移至另一日历并更改组织者,因此它可能改变会议的控制身份,而不只是分类整理。该风险仅在实际调用此方法时发生,且只适用于列出的默认事件类型;材料中没有可见的身份变更确认要求。用户可要求调用前显示源日历、目标日历、事件及新组织者,并单独确认。

SKILL.md:80来自说明文档打开原文件
  - `list` — Returns events on the specified calendar.  - `move` — Moves an event to another calendar, i.e. changes an event's organizer. Note that only default events can be moved; birthday, focusTime, fromGmail, outOfOffice and workingLocation events cannot be moved.  - `patch` — Updates an event. This method supports patch semantics.
查看另外 1 个位置
SKILL.md:98来自说明文档打开原文件
Before calling any API method, inspect it:```bash# Browse resources and methodsgws calendar --help# Inspect a method's required params, types, and defaultsgws schema calendar.<resource>.<method>```

Skill 逻辑拆解

3 个说明模块

该 Skill 是 Google Calendar 命令目录,要求代理先查看具体方法的参数定义,再构造参数和 JSON;所示文件没有包含自动执行这些方法的脚本。

查看原文
SKILL.md:98来自说明文档打开原文件
Before calling any API method, inspect it:```bash# Browse resources and methodsgws calendar --help# Inspect a method's required params, types, and defaultsgws schema calendar.<resource>.<method>```
SKILL.md:108来自说明文档打开原文件
Use `gws schema` output to build your `--params` and `--json` flags.

命令使用当前已认证的 Google 身份;新日历的数据所有者取决于该身份,服务账号认证可能产生意外的所有权结果。

查看原文
SKILL.md:57来自说明文档打开原文件
  - `insert` — Creates a secondary calendar.The authenticated user for the request is made the data owner of the new calendar.Note: We recommend to authenticate as the intended data owner of the calendar. You can use domain-wide delegation of authority to allow applications to act on behalf of a specific user. Don't use a service account for authentication. If you use a service account for authentication, the service account is the data owner, which can lead to unexpected behavior.  - `patch` — Updates metadata for a calendar. This method supports patch semantics.
从这里开始 · 工作说明SKILL.md
gws-calendar
连线表示工作说明包含的模块,不是实际运行顺序。点击模块可查看原文。
文件与检查记录1 个文件

检查范围与遗漏

逐文件查看涉及的内容

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

  • SKILL.md已纳入全文

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

  • SKILL.md工作说明

代码和说明中提到的操作

运行命令
SKILL.md:18来自说明文档打开原文件
```bashgws calendar <resource> <method> [flags]
SKILL.md:100来自说明文档打开原文件
```bash# Browse resources and methods
读取了多少行
110
文件校验值(用于核对版本)
1b189227fdce517f8f38591a5be693b95ccaad40456afdc7698f225b3b250f56