| 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 |
严重级: Low(汇总追踪)
来源: 2026-07-03 多 Agent 安全审计
完整分析:
docs/security/audit-2026-07-03-multiagent.md第四节本 issue 汇总 14 项 Low + 2 项由 High/Medium 降级而来的发现,供逐项追踪。每项可按需拆成独立子 issue。
PaymasterFactory.sol:197-251deployPaymasterDeterministicsalt 不含 operator,可被抢跑/占址(DoS+squat,非盗币)msg.sender,同步predictPaymasterAddressxPNTsToken.sol:979-996exchangeRateowner 每小时 ±20% 走高,债务按结算时汇率折算,可温水加价(仅本社区,有界)Registry.sol:330-348safeMintForRole无被授对象同意,可强制挂 soulbound SBT(griefing)Registry.sol:341-364Registry.sol:567-569blacklistNonce加在__gap[50]前未减 gap(升级布局卫生)__gap[49],升级前forge inspect逐槽比对SuperPaymaster.sol:5,24ReentrancyGuard——已核实不可利用(自愈)ReentrancyGuardUpgradeable(注意升级期存储布局,勿贸然改)SuperPaymaster.sol:1583-1590__gap注释与代码不一致(注释 [31],代码[30])SuperPaymaster.sol:715-724APNTS_TOKEN破坏totalTrackedBalance(owner 配置边界)SuperPaymaster.sol:633-699updatePriceDVT跳过 ±20% 偏离校验cachedPrice的窄带X402Facilitator.sol:246-257X402Facilitator.sol:292-326settleX402PaymentDirect无实收 delta 检查(有isXPNTs门禁缓解)MicroPaymentChannel.sol:184-226authorizedSigner不可轮换/撤销,session key 泄露最多被抽干 depositsetAuthorizedSignerBLSAggregator.sol:259-314usedKeyHash去重ReputationSystem.sol:94-108PaymasterBase.sol:619-625depositFor名义额记账,fee-on-transfer 破坏账目(需 operator 白名单通缩币,前置弱)Info / 修正:Slither M-1(xPNTs divide-before-multiply)取整偏向协议、不可利用,降 Info。