Safe Fallback Handler安全吗? 图 1
Safe Fallback Handler安全吗? · 图 1

Safe 的 Fallback Handler 会接收 Safe 本身未实现的方法调用,因此它可提供签名验证或兼容接口,也可能扩大外部调用面。安全判断不能停在地址非零,还要确认 handler 由谁设置、代码是什么、当前阈值能否更改。

调用为何落到 Handler

外部账户调用 Safe 未匹配的方法时,fallback 路径会把调用转交给已配置 handler,并附带原始调用者信息。常见用途包括 ERC-1271 合约签名验证。它不是普通模块:模块主动发起 Safe 交易,handler 响应落到 fallback 的外部调用,两者权限面不同。

链上核验步骤

先从 Safe storage reader 或官方 SDK 读取当前 handler 地址;再用 eth_getCode 确认地址确有字节码,并在浏览器核对源码和实现类型;随后检查设置该地址的 Safe 交易、nonce、确认者与执行结果。未知自定义 handler 不应因为界面显示已验证就自动放行。

何时立即停止

handler 地址与预期版本不符、源码不可验证、升级代理实现未知,或最近变更并非由预期所有者确认时,应暂停签名。移除或替换 handler 本身也是 Safe 配置交易,必须按当前 threshold 收集确认并再次读取链上状态。

Safe Fallback Handler:当前证据的停止位置

具体handler提供的接口和升级性取决于部署地址,读取Safe核心版本并不能自动证明handler行为。

Safe Fallback Handler:一手资料能确认的三件事

  1. 当调用数据中的函数选择器未匹配Safe核心合约函数时,配置的Fallback Handler可接收转发并扩展签名验证或代币回调等能力。
  2. Safe在转发calldata时附加原始调用者地址,使handler能够识别调用来源;集成不能把普通calldata末尾字节误当业务参数。
  3. 设置或更换handler需要Safe交易确认,但handler本身可以执行外部逻辑并引入安全风险,只应使用可信且经过审计的实现。(有限确认)

Safe Fallback Handler:把搜索问题拆成四层

  • 要问:未匹配调用入口是否与当前环境一致? 验收目标:用未匹配调用入口直接回答搜索意图并形成可执行核验信息。
  • 要问:调用者地址附加是否与当前环境一致? 验收目标:用调用者地址附加直接回答搜索意图并形成可执行核验信息。
  • 要问:常见Handler能力是否与当前环境一致? 验收目标:用常见Handler能力直接回答搜索意图并形成可执行核验信息。
  • 要问:任意逻辑风险是否与当前环境一致? 验收目标:用任意逻辑风险直接回答搜索意图并形成可执行核验信息。

Safe Fallback Handler最容易出现的误判

不能因为未匹配调用入口看起来正常,就省略调用者地址附加和常见Handler能力。界面成功、请求被接收和业务完成是三种状态,各自需要证据。

Safe Fallback Handler的证据出处

  • Safe Fallback Handler的一级来源 1:Safe Docs。用于正式字段、流程或产品说明
  • Safe Fallback Handler的一级来源 2:Safe setFallbackHandler。用于实现路径、比较基准或风险边界

与Safe Fallback Handler直接相邻的站内主题

执行Safe Fallback Handler相关操作前,应重新打开对应版本的原始资料。