Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Windows 日历同步

v1.0.0

将提醒同步到 Windows / Outlook 日历。当用户提到「提醒我」「设置提醒」「加到日历」「同步到日历」「日程」「calendar」「日历」时,使用此技能。支持 Microsoft Graph API 设备代码流认证,无需 Web 服务器,直接写入用户 Outlook 日历。

0· 16·0 current·0 all-time
MIT-0
Download zip
LicenseMIT-0 · Free to use, modify, and redistribute. No attribution required.
Security Scan
Capability signals
Requires OAuth token
These labels describe what authority the skill may exercise. They are separate from suspicious or malicious moderation verdicts.
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Suspicious
medium confidence
!
Purpose & Capability
名/描述要求为将提醒写入用户的 Outlook/Windows 日历;脚本实现了 Microsoft Graph 设备代码流、事件增删查并在本地保存 token,功能与描述一致。异常点:代码在多处写入并使用一个硬编码的 TENANT_ID GUID(fbc75ead-f917-4253-b911-84733c8c3e9c)而非使用通用 endpoints (/common 或 /organizations) 或让用户显式指定租户,这会改变认证目标/范围,需作者/维护者解释该 GUID 的用途和来源。
Instruction Scope
SKILL.md 指示运行本地 Python 脚本、在 Azure 门户注册应用并粘贴 Client ID。脚本只访问 Microsoft 的 endpoints (login.microsoftonline.com、graph.microsoft.com、portal.azure.com) 并读写其脚本目录下的文件 (client_id.txt, config.txt, token_store.json)。没有看到读取/发送系统中其它敏感文件或向非 Microsoft 终端外发数据的指令。
Install Mechanism
这是 instruction + included Python 脚本的组合,没有 install spec、也没有从不受信托的 URL 下载或解压执行外部代码。代码仅依赖标准库和可选 tzlocal/zoneinfo(若缺失会回退)。
Credentials
技能不请求平台级环境变量或外部凭据:用户需在 Azure 门户注册并粘贴自己的 Client ID,token 保存在本地 scripts/token_store.json。总体权限与功能相称,但需要注意 token 存储位置(文件系统中的明文 JSON)和硬编码 TENANT_ID(未在说明中合理化)。
Persistence & Privilege
技能不会设置 always:true、也不修改其它技能或系统范围的配置。它会在自己的 skill 脚本目录中写入 client_id.txt、config.txt、token_store.json —— 这是其正常运行所需的本地持久化。
What to consider before installing
What to consider before installing: - Hardcoded tenant ID: the code writes/uses a fixed TENANT_ID GUID (fbc75ead-...) rather than /common or letting you choose. Ask the author why this value is used. If unknown, do not use until explained—this could direct authentication to an unexpected tenant or change consent/behavior. - Use your own Client ID: the setup instructs you to register an Azure AD app and paste the Application (client) ID. Do not paste any other credentials. Verify you created the app and that its «Supported account types» and permissions are what you expect (Calendars.ReadWrite only). - Tokens are stored locally: token_store.json contains access/refresh tokens in your skills folder. Back it up if you need, and remove it if you revoke access. Treat that file as sensitive. - Network endpoints are Microsoft-only: the scripts call Microsoft endpoints (login.microsoftonline.com, graph.microsoft.com). There are no other external upload endpoints in the code. - Minimal technical checks you can do: inspect the scripts yourself to confirm no code posts tokens elsewhere; confirm the GUID (TENANT_ID) and, if uncomfortable, edit config.txt to use /common or your tenant before running; or run setup_and_auth.py and register the app but change endpoints to /common if you prefer. - If the author confirms the TENANT_ID is benign (e.g., a placeholder that should be replaced or known Microsoft tenant) and/or the code is updated to let you choose tenant or use /common, this would remove the main remaining concern and make the package coherent. Given the unexplained TENANT_ID and minor implementation oddities, proceed only after clarifying that point or after modifying the code to use a tenant value you control or /common.

Like a lobster shell, security has layers — review code before you run it.

calendarvk97asz4jntgfp7y7gb00e3axts84pxbjlatestvk97asz4jntgfp7y7gb00e3axts84pxbjoutlookvk97asz4jntgfp7y7gb00e3axts84pxbjremindervk97asz4jntgfp7y7gb00e3axts84pxbjschedulevk97asz4jntgfp7y7gb00e3axts84pxbjwindowsvk97asz4jntgfp7y7gb00e3axts84pxbj

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

Comments