Automated Vulnerability Injection in Smart Contracts Using Large Language Models

📄 arXiv: 2609.02624v1 📥 PDF

作者: Luca Migliaccio, Roberto Natella, Naghmeh Ivaki, Nuno Laranjeiro, Marco Vieira

分类: cs.SE, cs.AI, cs.CR

发布日期: 2026-09-02


💡 一句话要点

利用大型语言模型自动注入智能合约漏洞

🎯 匹配领域: 支柱九:具身大模型 (Embodied Foundation Models)

关键词: 智能合约 漏洞检测 大型语言模型 自动化测试 区块链安全 静态分析 数据集构建

📋 核心要点

  1. 现有的智能合约漏洞检测工具依赖于稀缺且难以构建的已知漏洞数据集,限制了评估的有效性。
  2. 本文提出了一种基于大型语言模型的自动漏洞注入方法,能够生成多种漏洞合约,解决数据集不足的问题。
  3. 实验结果显示,经过验证的合约中有32个确认存在漏洞,涵盖25种漏洞类型,表明该方法在实际应用中的可行性。

📝 摘要(中文)

评估智能合约的漏洞检测工具需要已知真相的数据集,但此类数据集稀缺且难以手动构建。本文提出了一种利用大型语言模型(LLMs)自动向Solidity智能合约中注入漏洞的方法,并在针对OpenSCV的49种漏洞类型的案例研究中进行了验证。通过多步骤管道检查编译、执行、业务逻辑及预期漏洞的存在,生成了近1000个候选变体,最终确认32个漏洞合约,涵盖25种漏洞类型,存活率为16.58%。存活的合约主要集中在结构较简单的目标和具有局部语法模式的漏洞类型上。我们还报告了LLMs的非确定性和保持合约语义的困难等实际挑战。最后,利用验证过的合约评估了三种静态分析器,揭示了互补和不完整的覆盖特征。

🔬 方法详解

问题定义:本文旨在解决智能合约漏洞检测中缺乏已知漏洞数据集的问题。现有方法在构建此类数据集时面临稀缺性和手动构建的困难。

核心思路:通过利用大型语言模型(LLMs)自动注入漏洞,生成多样化的智能合约变体,从而丰富漏洞数据集,提升漏洞检测工具的评估能力。

技术框架:整体流程包括多个阶段:首先,使用LLMs生成候选合约;其次,通过编译、执行和业务逻辑检查等多步骤验证合约的有效性;最后,筛选出确认存在漏洞的合约。

关键创新:该研究的创新点在于首次将LLMs应用于智能合约漏洞注入,显著提高了生成合约的多样性和覆盖面,与传统手动构建数据集的方法形成鲜明对比。

关键设计:在生成合约时,设置了特定的参数以确保生成的合约符合Solidity语法,并设计了多步骤验证流程以确保合约的有效性和漏洞的存在性。具体的损失函数和网络结构细节在论文中进行了详细描述。

🖼️ 关键图片

fig_0
fig_1
fig_2

📊 实验亮点

实验结果表明,利用LLMs进行漏洞注入是可行的,生成了近1000个候选合约,经过去重和验证后,确认了32个漏洞合约,涵盖25种漏洞类型,存活率为16.58%。这些结果展示了该方法在智能合约安全性评估中的有效性和潜力。

🎯 应用场景

该研究的潜在应用领域包括智能合约的安全性评估和漏洞检测工具的开发。通过自动生成漏洞合约,研究者和开发者可以更有效地测试和改进现有的安全工具,提升区块链技术的安全性和可靠性。未来,该方法可能推动智能合约安全领域的进一步研究与应用。

📄 摘要(原文)

Assessing vulnerability detection tools for smart contracts requires datasets with known ground truth, yet such datasets are scarce and difficult to build by hand. We propose an approach that uses Large Language Models (LLMs) to automatically inject vulnerabilities into Solidity smart contracts, and demonstrate it in a case study targeting 49 vulnerability types from OpenSCV. Injected contracts are validated through a multi-step pipeline checking compilation, execution, business logic, and the presence of the intended vulnerability. Applied to real-world contracts from SmartBugs, LLMs generate nearly 1,000 candidate variants; after deduplication and validation, 32 confirmed vulnerable contracts spanning 25 vulnerability types survive (a 16.58% survival rate). Surviving contracts concentrate in structurally simpler targets and vulnerability types with localized syntactic patterns. We report practical challenges including LLMs' non-determinism and the difficulty of preserving contract semantics. We then use the validated contracts to assess three static analyzers, revealing complementary and incomplete coverage profiles. Results show that LLM-based vulnerability injection is feasible, while exposing key limitations in scalability and diversity.