Skill flagged — suspicious patterns detected
ClawHub Security flagged this skill as suspicious. Review the scan results before using.
AI机票预订助手
v1.0.0AI机票助手 - 实现国内航班搜索、舱位查询、预订下单、机票改期、机票退票。适用于用户询问航班、查询机票价格、提交机票订单、改期航班、退票时使用。
⭐ 1· 62·0 current·0 all-time
MIT-0
Download zip
LicenseMIT-0 · Free to use, modify, and redistribute. No attribution required.
Security Scan
OpenClaw
Suspicious
high confidencePurpose & Capability
Skill 名称与描述(国内航班搜索、舱位查询、下单、改期、退票)与所包含的脚本保持一致:脚本实现了 searchFlight、searchPrice、createOrder、endorseApply、refundApply 等功能,所需二进制仅 python3。整体功能与声明的用途匹配,但脚本将请求发送到固定后端(默认 https://app-gate.fenbeitong.com/air_biz/skill/execute),而 SKILL.md 使用泛称“AI机票服务”,源码中的后端域名未在文档中明确说明。
Instruction Scope
SKILL.md 声明“请勿在日志或回复中暴露用户个人信息”,但 create_order.py 等脚本在控制台直接打印乘客姓名、手机号、证件号等 PII;脚本会将这些 PII 和订单数据通过 HTTP POST 发送到外部 API(期望功能内需发送 PII,但文档与实现对“保存位置/隐私处理”的描述不一致且实现有潜在记录泄露风险)。SKILL.md 指示鉴权文件保存在用户主目录 (~/.fbt_auth.json),但实际代码将鉴权文件写入临时目录(tempfile.gettempdir(),例如 /tmp/.fbt_auth.json),产生文档/实现不一致。脚本依赖并读取/写入临时 JSON 文件(/tmp/flight_seat_items.json 等),这在功能上合理,但会在宿主环境产生可被其他进程访问的 PII/票务数据文件。
Install Mechanism
无安装脚本或下载行为;Skill 为 instruction + 本地 Python 脚本集合,所需仅为本地 python3,可在本机直接审查并控制代码,安装机制风险低。
Credentials
skill.json / SKILL.md 未声明需要任何环境变量,但 common.py 读取 FBT_API_URL 环境变量以替换 API 端点(未在文档中充分说明可被覆写的事实)。鉴权不是通过环境变量提供,而是通过运行时完成并将 apiKey 保存在本地文件;虽然这种方式可行,但未在 manifest 中声明 primary credential 或 requires.env。还要注意脚本会自动在请求中注入并发送 apiKey 与用户 PII 给远端服务——这是功能需要但具有敏感性,应由用户自行确认远端服务可信度。
Persistence & Privilege
Skill 不要求始终驻留(always:false)。脚本会在临时目录下写入和读取文件(.fbt_auth.json、flight_seat_items.json、endorse_seat_items.json),并长时保存 apiKey(默认 expire_days:90)。保存 apiKey 与临时舱位数据是实现需要的持久化,但将敏感鉴权令牌保存在可被其他本地进程访问的临时文件夹中有安全隐患;另外 SKILL.md 与代码在鉴权文件路径上的描述不一致(~/.fbt_auth.json vs /tmp/.fbt_auth.json)。
What to consider before installing
要点和建议:
- 功能一致性:脚本的功能(查询、下单、改期、退票)与描述相符,但实现细节有不一致之处,建议在真实个人信息或真是资金出现前谨慎使用。
- PII 泄露风险:脚本会将乘客姓名、手机号、证件号等通过 HTTP POST 发送到外部 API(这是预订功能必须的),同时部分脚本在控制台打印这些敏感字段。控制台输出可能被宿主系统日志、CI 或监控采集。建议在使用前审查并修改代码以避免打印完整证件号/手机号,或在受控环境中运行。
- 鉴权文件位置不一致:SKILL.md 指向 ~/.fbt_auth.json,但代码将 apiKey 存到系统临时目录(tempfile.gettempdir(),例如 /tmp/.fbt_auth.json)。如果你依赖位置来清理/保护凭据,请注意这一点并考虑改为更安全的位置(并设置严格文件权限)。
- 可替换的后端地址与 TLS 风险:common.py 支持通过环境变量 FBT_API_URL 覆写 API 地址(未在 manifest 中声明)。更重要的是,代码为网络请求创建了不验证证书的 SSL 上下文(ssl._create_unverified_context),这会使请求易受中间人攻击并可能导致凭据/PII 被窃取。建议在生产或使用真实 PII 前将其移除(使用默认证书验证),并只向受信任的 API 端点发送数据。
- 如果决定使用:
- 在受控环境(隔离机器或临时账号/手机号)先进行测试。
- 修改代码以禁用打印敏感字段、启用证书验证、并将鉴权文件保存到受限权限的目录(如用户主目录且设为 600 权限)。
- 确认并信任默认 API 域名或通过 FBT_API_URL 将其替换为你认可的端点。
总体结论:此 skill 并不明显恶意,但存在若干实现/文档不一致与安全配置问题(尤其是 TLS 验证被禁用和 PII 在日志中明文打印),在向真实用户提供服务并上传真实个人信息前应修复这些问题或仅在受控环境中使用。Like a lobster shell, security has layers — review code before you run it.
latestvk97d9vwxkt4sx3m62ykrzbfxhh83pbye
License
MIT-0
Free to use, modify, and redistribute. No attribution required.
Runtime requirements
✈️ Clawdis
Binspython3
