Skip to content

[Security][Low] 审计 Low 发现汇总追踪 (L-1~L-14 + M-6) #328

Description

@jhfnetboy

严重级: Low(汇总追踪)
来源: 2026-07-03 多 Agent 安全审计
完整分析: docs/security/audit-2026-07-03-multiagent.md 第四节

本 issue 汇总 14 项 Low + 2 项由 High/Medium 降级而来的发现,供逐项追踪。每项可按需拆成独立子 issue。

# 文件 摘要 修复方向
L-1 PaymasterFactory.sol:197-251 deployPaymasterDeterministic salt 不含 operator,可被抢跑/占址(DoS+squat,非盗币) salt 混入 msg.sender,同步 predictPaymasterAddress
L-2 xPNTsToken.sol:979-996 exchangeRate owner 每小时 ±20% 走高,债务按结算时汇率折算,可温水加价(仅本社区,有界) 债务按计提时汇率结算,或收紧 delta/延长冷却
L-3 Registry.sol:330-348 safeMintForRole 无被授对象同意,可强制挂 soulbound SBT(griefing) 要求目标签名同意或预授权
L-4 Registry.sol:341-364 社区代付质押,退出时退给 beneficiary 而非 payer(经济 footgun) 记录 sponsor 并退给 sponsor,或明文"代付即赠与"
L-5 Registry.sol:567-569 blacklistNonce 加在 __gap[50] 前未减 gap(升级布局卫生) __gap[49],升级前 forge inspect 逐槽比对
L-6 SuperPaymaster.sol:5,24 UUPS 代理继承非升级版 ReentrancyGuard——已核实不可利用(自愈) ReentrancyGuardUpgradeable(注意升级期存储布局,勿贸然改)
L-7 SuperPaymaster.sol:1583-1590 __gap 注释与代码不一致(注释 [31],代码 [30]) 升级前逐槽比对部署布局,修正注释
L-8 SuperPaymaster.sol:715-724 fee-on-transfer/rebasing APNTS_TOKEN 破坏 totalTrackedBalance(owner 配置边界) 按实收 delta 入账,或断言标准代币
L-9 SuperPaymaster.sol:633-699 Chainlink 宕机时 updatePriceDVT 跳过 ±20% 偏离校验 宕机分支也用相对 cachedPrice 的窄带
L-10 X402Facilitator.sol:246-257 EIP-3009 结算 fee 可被另一 operator 抢跑窃取(仅 fee 归属) 目标结算方绑入授权/nonce
L-11 X402Facilitator.sol:292-326 settleX402PaymentDirect 无实收 delta 检查(有 isXPNTs 门禁缓解) 复用 EIP-3009 路径 balBefore/After
L-12 MicroPaymentChannel.sol:184-226 authorizedSigner 不可轮换/撤销,session key 泄露最多被抽干 deposit 加 payer-only setAuthorizedSigner
L-13 BLSAggregator.sol:259-314 两验证者地址可注册相同 G1 公钥,单密钥算 2 票(各槽需独立 minStake 缓解) usedKeyHash 去重
L-14 ReputationSystem.sol:94-108 社区可自设 baseScore 至 10000 并无限 push 规则 ID(全局分另有 Registry 复验) 规则数量封顶、去重、聚合分上界
M-6→Low PaymasterBase.sol:619-625 depositFor 名义额记账,fee-on-transfer 破坏账目(需 operator 白名单通缩币,前置弱) 按实收 delta 入账,或禁 fee-on-transfer

Info / 修正:Slither M-1(xPNTs divide-before-multiply)取整偏向协议、不可利用,降 Info。

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions