AI 代码安全审计报告 · 2026
五项目全量扫描
能力与发现
首次对五个核心项目做全量 AI 代码审计,产出 47 条漏洞,每条附带完整攻击路径与 sandbox PoC 验证结果,39 条待修复。
安全团队 · 2026.06 · Cobo 内部
01 / 17
01 · Scope
5 项目全覆盖:后端 · 移动端 · Web
AI 静态分析识别漏洞位置,sandbox PoC 实测确认可利用性;后端漏洞均经 PoC 验证。
| 项目 | 技术栈 | 审计方式 | 漏洞数 |
| waas2 / custody | Python / Django 后端 | AI 静态分析 + PoC 实测 | 28 |
| cobo-oauth | Python / Django 后端 | AI 静态分析 + PoC 实测 | 9 |
| cobo-authenticator-bnd | Python / Django 后端 | AI 静态分析 + PoC 实测 | 7 |
| cobo-auth-new | React Native / TypeScript | AI 静态分析 | 2 |
| custody-2.0-website | Umi / React / TypeScript | AI 静态分析 32 轮 + sandbox 验证 | 1 |
02 / 17
01 · Methodology
规则库驱动 · 逐入口深析 · sandbox PoC 确认才记为发现
Agent 启动时按项目技术栈加载 skills/rules/ 规则库,枚举所有入口后逐一深入分析,sandbox PoC 打通才写入 issues。
-
1
枚举入口
找到所有 API endpoint、路由、异步消费者、Webhook,标注鉴权方式与审查状态(✅ / ⚠️ / ❌)
-
2
追踪调用链路
从入口追踪权限校验、用户可控数据流、业务逻辑与状态机;重点看跨租户隔离、注入路径、重放窗口
-
3
参考 skills/rules 规则库判断
按技术栈加载规则(Django → idor · framework-django · oauth · celery;React → xss · insecure-crypto),对照规则模式确认是否命中
-
4
sandbox PoC 验证
编写 PoC 脚本在 sandbox 验证可利用性;无法独立验证时标 blocked,等待人工协助
-
5
输出 issue
PoC 确认后写入 issues/,含漏洞分析、攻击路径、验证结果与修复建议
产物结构
entrypoints/ — 入口清单,鉴权方式与审查状态(✅ / ⚠️ / ❌)
issues/ — 每个确认问题一个 .md,含攻击路径与 PoC
verify/ — PoC 脚本(.sh / .py),可直接在 sandbox 执行
analysis/ — 架构理解、模块关系、高风险路径笔记
迭代策略
每轮 ~30 min;跨轮持久化误报 / 已修复 / 高风险区域;所有入口标记 ✅ 且连续两轮无新 issue → 报告审计完成
03 / 17
02 · Overview
47 项漏洞,64% 高危,39 项待修复
风险等级说明
等级由 AI 依据代码层面影响范围判断,未充分考虑 CVSS 利用条件(攻击复杂度、所需权限、用户交互)。本次大部分"高危"需要有效认证凭据,按 CVSS v3 实际评分会降级。修复优先级建议结合实际利用难度重新评估。
05 / 17
02 · Key Findings
越权漏洞最普遍 · AI 静态检测有效 · 修复响应已启动
越权访问是最普遍问题
waas2/custody 单项目发现 21 处 IDOR,且多处共享同一根因——
check_permission_scope 缺失
instance_parm_type,可通过 lint 规则批量修复,无需逐一处理。
代码层缺陷覆盖充分
AI 静态分析对"代码写法导致的安全缺陷"检测有效,9 类漏洞均有实际命中。配置层漏洞和复杂业务逻辑漏洞超出覆盖范围,需专项渗透测试补充。
已修复 8 项,响应及时
已修复问题主要集中在 Travel Rule / Satoshi Test 系列跨 org 越权,漏洞定位准确,开发团队响应迅速。剩余 39 项按优先级推进修复。
06 / 17
03 · Capability
AI 可有效发现:访问控制 · 协议 · 密码学
✓ 越权访问 / IDOR
追踪权限校验装饰器和对象归属校验逻辑,系统性识别缺失的访问控制。本次命中逾 20 处。
✓ 认证绕过 / 未授权接口
扫描缺少鉴权中间件或装饰器的接口,发现 inner 接口未鉴权等高危场景。
✓ OAuth 协议实现缺陷
审查授权码绑定、过期、一次性语义等协议约束,发现授权码永久有效、client 未绑定等问题。
✓ 签名请求重放
追踪 nonce/timestamp 校验及防重放持久化,发现 Aladdin 脚本和 MFA 绑定均可无限重放。
✓ 密码学误用
识别固定 IV、硬编码密钥、不安全模式回退,发现 AES 三重失效:固定零 IV + 硬编码密钥 + GCM 静默降级 CBC。
✓ 竞态条件 / 幂等缺陷
识别无锁 SELECT-then-INSERT 模式、缺少唯一约束的幂等去重,发现资金双花风险。
07 / 17
03 · Capability
AI 可有效发现:数据安全 · 注入
✓ SSRF
追踪用户可控 URL 从入参到 HTTP 请求的完整数据流,识别缺少 allowlist 校验的路径,可探测内网及云 metadata。
✓ 敏感信息泄露
扫描 token、密钥、PII 等字段是否流入日志、Sentry、错误响应,发现 Bearer Token 明文写入 DB 日志,refresh token 上传 Sentry。
✓ XSS / DOM 注入
追踪用户可控数据流向 dangerouslySetInnerHTML 等 sink,发现客服聊天消息 HTML 未转义可升级为 Stored XSS。
9 类漏洞均在本次审计中有实际命中
9 种漏洞类型在本次审计中均有实际命中,AI 静态分析对代码级安全缺陷具有较强的系统性检测能力。
08 / 17
03 · Limitations
超出 AI 静态分析覆盖范围的类型
以下类型未发现不等于不存在,需在修复完成后安排专项测试补充覆盖。
复杂业务逻辑漏洞
资金流转规则绕过、多步审批绕过等需结合运行时状态机和深度业务知识,代码静态分析无法覆盖。
基础设施 / 配置层
网络策略、云服务 IAM 权限、Kubernetes 配置、密钥管理等不在代码静态分析范围内,需独立安全评审。
供应链 / 第三方依赖
npm/pip 依赖 CVE 未扫描,需单独运行 SCA 工具(Dependabot / Snyk)检查第三方库已知漏洞。
运行时 / 部署配置
生产环境变量的实际值、CORS 响应头、rate limiting 配置、TLS 证书 pinning 有效性等均无法从代码推断;需在 prod/staging 环境实测确认。
09 / 17
04 · Findings · waas2 / custody
waas2 最高危:KYC 裸接口可下载护照,并发出款存在双花
越权访问 / IDOR — 21 项(含已修复)Python / Django · AI 静态分析 + PoC 实测 · 共 28 项
高危KYC 文件接口无需认证,可直接下载解密后的护照/证件,影响全平台所有 org
高危KYC 企业信息接口信任参数 org_id,越权读取任意 org 法人 PII
高危Babylon 质押注册跨 org IDOR:staking_id 无归属校验,可驱动受害者 BTC 钱包 MPC 签名
高危链上风控白名单地址更新缺 org_id 校验,可篡改他人风控策略
高危Prime Broker dev API 缺 UAC 权限,可越权绑定/删除他人 Guard pubkey
中危OTC 收款地址 · Fee Station 明细 · 账单预览均未绑定 org,可跨 org 读取
高危出款/退款幂等去重非原子且 DB 无唯一约束,并发可触发重复出款(资金双花)
10 / 17
04 · Findings · waas2 / custody
21 处 IDOR 共享同一根因,一条 lint 规则可批量修复
系统性根因
check_permission_scope 装饰器调用时未传
instance_parm_type,对象归属校验被静默跳过。用 lint 规则一次扫描全库,无需逐一处理。
密码学 · SSRF · 其他发现
高危AESCipher 固定全零 IV + 硬编码长期密钥;GCM 解密失败静默降级为无认证 CBC
中危OAuth 登录 state JWT 使用硬编码密钥 "cobo_custody",CSRF 防护失效
中危Superloop 代理主机可被用户覆盖,可探测内网/云 metadata
中危Aladdin KYC 文件下载令牌为无密钥哈希,可伪造令牌越权解密任意 org KYC 证件
11 / 17
04 · Findings · cobo-oauth
cobo-oauth:登录页可被劫持(高危)· OAuth 授权码三处缺陷
认证绕过
高危inner 接口未鉴权,任意调用者可覆盖 Auth0 自定义登录页,构建钓鱼登录页面
中危Guard query_statement 未鉴权,可触发/干扰 Guard 审批回调
OAuth 授权码缺陷
中危Connection OAuth2 code 未绑定 client,可被其他 client 代兑换,绕过认证
中危OAuth authorization code 过期时间未生效,永久有效可重放
低危OAuth authorization code 可并发双兑换(竞态绕过一次性语义)
低危Connection authorization code 同样可并发双兑换(同一竞态模式)
签名重放 · IDOR
高危Aladdin tools 脚本签名请求可无限重放执行
高危CoboGuard bind_tss_node_id_v2 IDOR,可任意篡改他人 TSS 节点绑定
中危MFA 签名请求可重放,反复轮换 TOTP seed,绕过 MFA 绑定状态校验
12 / 17
04 · Findings · cobo-authenticator-bnd
authenticator-bnd 全高危:service 隔离缺失 + Token 明文写库
越权访问 / 数据隔离
高危Service statement 读接口未按 service 隔离,可跨 service 读取他人审批记录
高危SERVICE 可绕过绑定,向任意已知 pubkey 创建待签审批(伪造审批请求)
高危SERVICE 可伪造 type 30 上下文,从 AGUI 读取任意组织/用户数据
高危get_ai_description 未绑定当前 pubkey,可跨用户读取 AI 描述
签名重放 · SSRF · 信息泄露
高危Aladdin 脚本执行签名请求可无限重放
高危service callback_url 未校验,worker 可向任意 URL 发起 POST(SSRF,含内网/metadata)
高危AGUI 失败日志将 portal-authorization Bearer Token 明文写入数据库日志
13 / 17
04 · Findings · Mobile & Web
移动端 Token 上传 Sentry · Web 前端聊天消息存在 XSS 风险
cobo-auth-new · 移动端React Native / TypeScript · 2 项 · 高危 · 静态分析推断,未经动态验证
高危退出登录后本地日志仍保留,可通过设置页导出——日志中包含 API 请求参数和 token
高危API 请求参数和 authorizer token 被写入日志并上传至 Sentry(含 refresh token、pubkey 注册参数)
custody-2.0-website · Web 前端Umi / React / TypeScript · 1 项 · 中危
中危客服聊天消息 HTML 未转义(Self-XSS):slack-markdown 转 HTML 时 escapeHTML: false,结果写入 dangerouslySetInnerHTML;若客服座席侧未做服务端清洗,可升级为 Stored XSS
14 / 17
05 · Remediation
立即处理 4 项资产安全缺陷,两周内 lint 批量清除 21 处 IDOR
-
1
立即处理 — 高危及资金安全
cobo-oauth 登录页篡改接口(inner/set_custom_login_page 无鉴权)· waas2 KYC 文件无认证下载 · Babylon 质押 MPC 签名劫持 · 出款幂等竞态双花。四项直接影响资产安全和用户身份,需最优先处理。
-
2
两周内 — 系统性 IDOR 批量修复
waas2 的 21 处跨 org IDOR 共享同一根因:check_permission_scope 调用时未传 instance_parm_type。建议用 lint 规则一次扫描全库批量修复,而非逐一处理。同步修复 cobo-authenticator-bnd 的 service 隔离缺陷。
15 / 17
05 · Remediation
一个月内修复密码学三重失效,完成后补充渗透测试覆盖盲区
-
3
一个月内 — 密码学 + 重放 + 信息泄露
AESCipher 三重失效(更换密钥、修复 IV、移除不安全回退)· cobo-oauth 授权码绑定与过期修复 · 移动端日志脱敏并关闭 Sentry token 上报 · cobo-authenticator-bnd 失败日志脱敏 · SSRF allowlist 补充。
-
4
后续 — 补充测试覆盖 AI 分析盲区
修复完成后安排专项渗透测试覆盖复杂业务逻辑漏洞(资金流转规则绕过、多步审批绕过);运行 SCA 工具扫描 npm/pip 依赖 CVE;对基础设施配置进行独立安全评审。
16 / 17
06 · Close
首轮全量扫描完成:47 条漏洞,39 条待修复
高危问题需立即处理。建议将 AI 审计纳入重大功能迭代前的标准检查流程,持续保持代码层安全可见性。
安全团队 · defei.li@cobo.com · 2026.06
17 / 17