Jarvis Network遭闪电贷重入攻击 损失663,101个MATIC

robot
摘要生成中

Jarvis Network项目遭受闪电贷重入攻击分析

2023年1月15日,Jarvis_Network项目遭遇攻击,损失663,101个MATIC。这次攻击主要利用了闪电贷和重入漏洞,导致项目资金流失。

Jarvis Network闪电贷重入攻击事件分析

通过分析交易调用栈,发现攻击者在remove_liquidity函数中实施了重入攻击。该函数负责移除流动性并返还用户代币。由于Polygon与EVM链结构相似,在MATIC转账过程中触发了合约重入。

Jarvis Network闪电贷重入攻击事件分析

重入攻击发生在价格查询环节。攻击者在移除流动性时,MATIC被转移到攻击者合约。在回调过程中,攻击者先查询了某代币的价格。由于合约中self.D变量的更新滞后于转账操作,导致前期价格获取出现错误。

Jarvis Network闪电贷重入攻击事件分析

remove_liquidity函数的执行流程如下:

  1. 销毁用户LP代币
  2. 向用户发送质押资金
  3. 更新self.D变量

Jarvis Network闪电贷重入攻击事件分析

self.D变量用于价格计算,在添加和移除流动性时都会更新。攻击者利用了大额资金操作,导致self.D值在添加流动性时显著增加,而在移除时未能及时更新。

Jarvis Network闪电贷重入攻击事件分析

虽然remove_liquidity函数使用了@nonreentrant('lock')装饰器来防止重入,但攻击者通过跨合约借贷绕过了这一限制。

Jarvis Network闪电贷重入攻击事件分析

这次攻击暴露出项目代码存在安全隐患。为避免类似问题,建议项目方采取以下措施:

  1. 进行严格的安全审计
  2. 将变量修改操作置于外部调用之前
  3. 采用多数据源进行价格获取
  4. 遵循"检查-生效-交互"(Checks-Effects-Interactions)的编码规范

Jarvis Network闪电贷重入攻击事件分析

通过优化代码逻辑和加强安全措施,可以有效提升项目的安全性和稳定性,防止类似攻击再次发生。

Jarvis Network闪电贷重入攻击事件分析

Jarvis Network闪电贷重入攻击事件分析

Jarvis Network闪电贷重入攻击事件分析

Jarvis Network闪电贷重入攻击事件分析

Jarvis Network闪电贷重入攻击事件分析

此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 9
  • 分享
评论
0/400
MEVWhisperervip
· 07-22 15:42
这锅只能开发扛了
回复0
空投碎片收集者vip
· 07-22 15:27
一看就不想买了啊
回复0
GateUser-e87b21eevip
· 07-20 04:01
项目方防护不给力啊
回复0
Stake_OrRegretvip
· 07-19 19:17
又一家项目被抄家了...
回复0
佛系矿工ervip
· 07-19 19:09
这保安在干啥呢?
回复0
LayerZeroEnjoyervip
· 07-19 19:09
哎 又是重入 老套路了
回复0
LiquidityOraclevip
· 07-19 19:05
谁叫写代码不认真的
回复0
去中心化老干部vip
· 07-19 19:01
又被黑了,真是不长记性
回复0
巨鲸资深观察员vip
· 07-19 18:54
又一个半吊子项目遭重击
回复0
查看更多
交易,随时随地
qrCode
扫码下载 Gate APP
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)