讲师中心 微信公众号
AI工具推荐 视频效率加速

Prisma Finance被攻击事件复盘与漏洞分析

星萱小哥_6732

星萱小哥_6732

发布时间:2026-07-11 11:10:21

|

901人浏览过

|

来源于php中文网

原创

一、Prisma Finance 被攻击事件交易分析

在这次 prisma finance 安全事件中,涉及的关键地址与合约如下:

  • 攻击者 1:0x7e39e3b3ff7adef2613d5cc49558eab74b9a4202(简记为 0x7e39)
  • 攻击合约 1:0xd996073019c74b2fb94ead236e32032405bc027c(简记为 0xd996)
  • 攻击者 2:0x7fe83f45e0f53651b3ed9650d2a2c67d8855e385
  • 攻击合约 2:0x4148310fe4544e82f176570c6c7b649290a90e17
  • 被攻击目标合约:0x1cc79f3f47bfc060b6f761fcd1afc6d399a968b6

本次攻击共涉及 16 笔交易。为了更清楚地理解 Prisma Finance 被攻击的执行逻辑,下面以第一笔攻击交易为例进行拆解:

交易哈希:0x00c503b595946bccaea3d58025b5f9b3726177bbdc9674e634244135282116c7

从链上行为来看,整个攻击流程大致可以分为以下几个阶段。

1、先读取目标账户的抵押物与债务数据

攻击开始前,攻击者先读取地址 0x56a201b872b50bbdee0021ed4d1bb36359d291ed(简记为 0x56a2)在目标合约中的全部抵押物和债务信息。

Prisma Finance被攻击事件分析吸取教训

查询结果如下:

Prisma Finance被攻击事件分析吸取教训

数据显示,地址 0x56a2 在目标合约中的抵押物为 1,745 wstETH,总债务为 1,442,100 mkUSD。

2、利用 mkUSD 的 flashLoan 触发资产迁移流程

随后,攻击者 0x7e39 通过攻击合约 0xd996 调用 mkUSD 债务合约中的 flashLoan 函数。

Prisma Finance被攻击事件分析吸取教训

其中,参数 receiver 被设置为 MigrateTroveZap,amount 则对应此前查询到的全部债务规模。

Prisma Finance被攻击事件分析吸取教训

在 flashLoan 执行过程中,合约会继续调用 receiver,也就是 MigrateTroveZap 中的 onFlashLoan 函数。

Prisma Finance被攻击事件分析吸取教训

在这一过程中,onFlashLoan 借助闪电贷先偿还原有全部债务,提取抵押物到 receiver,之后 receiver 再将一部分抵押物重新抵押,并生成新的债务。核心涉及两个步骤:

(1)closeTrove 函数:用于偿还债务,并将全部抵押物(1745.08 swtETH)从 troverManager 提取到 receiver,也就是 MigrateTroveZap 合约。

Prisma Finance被攻击事件分析吸取教训

(2)openTrove 函数:由 receiver 将 463.18 wstETH 重新抵押到 troverManager 中,同时生成 1,443,598 mkUSD 债务。

Prisma Finance被攻击事件分析吸取教训

从这一结果可以看出,flashLoan 执行结束后,receiver 中仍然保留了从 troverManager 提取出的部分抵押物,而这部分资产原本属于地址 0x56a2,数量约为 1745.08 - 463.18 = 1281.90 wstETH。

3、再借入 1 wstETH,构造新的抵押与债务头寸

接下来,攻击者 0x7e39 通过攻击合约 0xd996 从 Balancer 再次以闪电贷方式借入 1 wstETH。

Prisma Finance被攻击事件分析吸取教训

随后,攻击者将这 1 wstETH 作为抵押借出 2000 mkUSD,加上 fee 后,总负债达到 2200 mkUSD。

Prisma Finance被攻击事件分析吸取教训

4、再次调用 flashLoan,将他人抵押物并入攻击合约路径

然后,攻击者再次调用 mkUSD 债务合约中的 flashLoan 函数。与前一轮操作类似,此时 receiver 依旧设置为 MigrateTroveZap,amount 则是上一笔 1 wstETH 抵押后形成的全部债务,即 2000 mkUSD。执行 flashLoan 后,会继续触发 receiver 中的 onFlashLoan,再进入 closeTrove 和 openTrove 的流程。

Prisma Finance被攻击事件分析吸取教训

Prisma Finance被攻击事件分析吸取教训

这一步与前面不同的地方在于,此次 closeTrove 和 openTrove 操作的 account,不再是前述地址 0x56a2,而是刚刚完成 1 wstETH 抵押的攻击合约 0xd996。

(1)closeTrove 函数:偿还债务后,将全部抵押物(1 swtETH)从 troverManager 提取到 receiver,也就是 MigrateTroveZap 合约。此时 receiver 中的抵押物总量变为 1281.90 + 1 = 1282.90 wstETH。

Prisma Finance被攻击事件分析吸取教训

(2)openTrove 函数:由 receiver 将 1282.80 wstETH 几乎全部重新抵押到 troverManager 中,并生成 2001.8 mkUSD 债务。

Prisma Finance被攻击事件分析吸取教训

需要注意的是,这笔新抵押中的 1281.80 wstETH,实际并不属于攻击合约 0xd996,而是来自前述地址 0x56a2。

5、最终提取抵押物,完成获利

最后,攻击者 0x7e39 通过攻击合约 0xd996 单独调用 closeTrove 函数,将已经抵押的 1282.80 wstETH 提取到攻击合约 0xd996 中。

Prisma Finance被攻击事件分析吸取教训

Prisma Finance被攻击事件分析吸取教训

在偿还闪电贷后,攻击者最终仍获得 1281.80 wstETH,按原文口径约为 2.30M USD。

Prisma Finance被攻击事件分析吸取教训

二、Prisma Finance 漏洞分析:问题出在哪里

从 Prisma Finance 被攻击事件的完整路径来看,根本原因在于项目合约在逻辑设计和权限校验方面存在缺陷,进而让攻击者有机会获取其他账户地址的质押资产。

攻击者最终得到的 wstETH,本质上属于地址 0x56a2 存放在 troverManager 合约中的抵押物。其攻击方式是通过 mkUSD 合约中的 flashLoan 函数,配合自定义的 MigrateTroveZap 合约中 onFlashLoan 函数参数,利用 MigrateTroveZap 将相关资产转化为攻击合约名下的抵押物,随后再进一步提取出来。

换句话说,攻击者是借助 mkUSD 合约的 flashLoan 能力,以及 MigrateTroveZap 合约 onFlashLoan 的执行逻辑,操纵了其他账户地址的抵押、迁移和提取流程。

Prisma Finance被攻击事件分析吸取教训

Prisma Finance被攻击事件分析吸取教训

具体来看,这次智能合约漏洞主要体现在以下几个方面:

  • flashLoan 函数对 receiver 地址缺少有效校验。由于 onFlashLoan 执行时,receiver 会接收到 account 的全部抵押物,因此 receiver 是否可信,本应受到更严格的限制和校验。
  • onFlashLoan 函数对 account 地址缺少权限校验。closeTrove 与 openTrove 实际操作的是 account 对应的资产,所以 account 参数同样需要明确的权限控制。
  • 数量参数与整体执行逻辑约束不足。除 receiver 和 account 这两个关键地址参数外,flashLoan 中的数量参数以及完整执行路径,也可能需要进一步增加边界检查与限制条件。

三、Prisma Finance 被攻击事件带来的安全启示

结合这次 Prisma Finance 安全事件,智能合约项目在设计、开发和上线前后,可以重点关注以下几个安全方向:

(1)强化关键业务流程的权限校验。在项目设计和开发阶段,应尽量保证业务逻辑完整且严谨,尤其是在涉及资产迁移、抵押、提取、债务处理等关键流程时,需要加强对调用者、调用函数、函数参数以及转账逻辑的权限验证,确保执行链路处于可控范围内。

(2)上线前进行独立审计与充分测试。项目正式上线前,应由专业第三方审计团队开展智能合约审计,并对关键模块进行充分的安全测试、复核与异常场景验证。

(3)持续关注协议权限边界与资产风险敞口。链上安全事件通常具有较强的复杂性和组合性,项目方与用户在关注协议功能的同时,也应持续重视合约权限边界、参数控制以及资产风险暴露问题。

需要说明的是,本文内容主要用于还原 Prisma Finance 被攻击事件的链上过程与漏洞逻辑,不构成任何投资建议。DeFi 协议、智能合约与链上资产本身存在技术与安全风险,参与前仍需充分了解相关机制。

关于 SharkTeam

SharkTeam 的愿景是保护 Web3 世界的安全。团队由来自全球的资深安全专业人士和高级研究人员组成,具备区块链与智能合约底层理论方面的经验,提供风险识别与阻断、智能合约审计、KYT/AML、链上分析等服务,并打造了链上智能风险识别与阻断平台 ChainAegis,用于应对 Web3 世界中的高级持续性威胁(Advanced Persistent Threat,APT)。据原文介绍,其已与 Web3 生态多个领域的关键参与者建立长期合作关系,包括 Polkadot、Moonbeam、polygon、Sui、OKX、imToken、Collab.Land 等。

相关文章

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
咔片AIPPT

一款在线AI演示文稿制作工具,可根据主题和内容需求辅助生成PPT结构与页面,提高演示材料制作效率。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

讯飞智作

讯飞智作是一款AI视频创作工具,AI文本配音工具,数字人课程、营销视频制作。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

蛙蛙写作

一款AI论文写作工具,主要用于超级AI智能写作助手,适合需要提升相关任务效率的用户。

相关专题

更多
Buffalo框架数据库开发全教程
Buffalo框架数据库开发全教程

本专题围绕Buffalo框架数据库开发,讲解database.yml多环境配置、soda与fizz迁移生成回滚、模型结构体标签、增删改查与条件查询、一对多与多对多关联、数据校验、回调钩子、事务处理及原生SQL执行能力。

180

2026.09.23

Buffalo框架路由与请求处理实操指南
Buffalo框架路由与请求处理实操指南

本专题讲解Buffalo框架路由与请求处理机制,涵盖路由注册与分组、资源路由、Handler编写规范、Context上下文方法、参数绑定、中间件编写挂载、Session与Cookie读写、Flash消息及错误页面定制方法。

80

2026.09.23

Buffalo框架零基础入门教程
Buffalo框架零基础入门教程

本专题整理Buffalo框架入门内容,涵盖Go环境准备、buffalo CLI安装、新项目生成、目录结构说明、dev热加载启动、数据库连接配置与常见报错排查,帮助新手按约定优于配置的思路跑通第一个Buffalo框架应用。

80

2026.09.23

Conan创建软件包配方指南
Conan创建软件包配方指南

本专题介绍通过conanfile.py创建软件包的方法,讲解包名、版本、依赖和构建设置等基础信息,以及source、build、package、package_info等常用方法的作用及编写思路。

60

2026.09.22

Conan二进制包配置指南
Conan二进制包配置指南

本专题介绍Conan根据操作系统、编译器、架构和构建类型生成二进制包的方法,讲解Profile、Settings、Options及Package ID的作用,帮助管理不同平台和编译环境下的包版本。

60

2026.09.22

Conan私有仓库搭建教程
Conan私有仓库搭建教程

本专题系统的讲解Conan私有仓库的搭建流程,涵盖仓库服务部署、存储目录配置、用户认证、权限划分和远程地址添加,并介绍内部C++依赖包的上传、下载及版本维护方法。

60

2026.09.22

loomy官网入口地址合集
loomy官网入口地址合集

本专题汇总了 Loomy 桌面 AI 助理的官方入口地址合集及使用指南。提供 macOS 与 Windows 客户端下载 。Loomy 是讯飞推出的桌面级 AI 工作搭子,支持文件整理、数据分析、网页操作及通过飞书/钉钉远程操控电脑,助你高效完成本地办公任务 。

60

2026.09.22

NumPy常见函数使用方法
NumPy常见函数使用方法

本专题整理 NumPy 常见函数使用方法相关教程,覆盖函数大全、参数用法、数组运算、统计聚合、排序处理、where 条件筛选、linspace 创建数列等常用场景,帮助读者快速掌握 NumPy 函数调用思路和实际数据处理技巧。

80

2026.09.22

NumPy性能优化版本更新与常见报错排查
NumPy性能优化版本更新与常见报错排查

本专题整理 NumPy 性能优化、版本更新与常见报错排查相关教程,覆盖向量化计算、广播性能、内存布局、NumPy 2.0 升级、版本兼容冲突、安装导入报错、dtype 溢出、矩阵运算异常和 broadcasting 报错修复,帮助读者系统掌握 NumPy 性能调优与问题定位方法。

80

2026.09.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn