一份签名,多次支付:解构并检测智能合约中的签名重放漏洞
密码学与安全
2025-11-13 v1 软件工程
摘要
智能合约显著推动了区块链技术的发展,数字签名对于可靠验证合约授权至关重要。通过签名验证,智能合约可确保签名者拥有所需权限,从而增强安全性和可扩展性。然而,缺乏对签名使用条件的检查可能导致重复验证,增加权限滥用风险并威胁合约资产。我们将此问题定义为签名重放漏洞(SRV)。本文进行了首次针对 SRV 的实证研究,探讨其成因和特征。从 37 家区块链安全公司的 1,419 份审计报告中,我们识别出 108 份包含详细 SRV 描述的报告,并对其进行了五类型分类。为自动检测这些漏洞,我们设计了 LASiR,利用大型语言模型(LLM)的通用语义理解能力辅助签名状态的静态污点分析,以识别签名重复使用的行为。该方法还通过符号执行实现路径可达性验证,确保检测有效可靠。为评估 LASiR 的性能,我们在 15,383 份涉及签名验证的合约上进行大规模实验,这些合约从 918,964 份跨越四个区块链(以太坊、币安智能链、Polygon、Arbitrum)的初始数据集中筛选得出。结果表明,SRV 无处不在,受影响的合约持有 476 万美元的活跃资产。在这些合约中,以太坊上使用签名的合约 19.63% 包含 SRV。此外,手动验证表明 LASiR 在检测方面 achieves 87.90% 的 F1 分数。消融实验和比较实验表明,LLM 提供的语义信息有助于静态污点分析,显著提升了 LASiR 的检测性能。
引用
@article{arxiv.2511.09134,
title = {One Signature, Multiple Payments: Demystifying and Detecting Signature Replay Vulnerabilities in Smart Contracts},
author = {Zexu Wang and Jiachi Chen and Zewei Lin and Wenqing Chen and Kaiwen Ning and Jianxing Yu and Yuming Feng and Yu Zhang and Weizhe Zhang and Zibin Zheng},
journal= {arXiv preprint arXiv:2511.09134},
year = {2025}
}
备注
Accepted at ICSE2026