news 2026/5/1 5:52:42

安全事件:链上实时计算的滑点就等于没有滑点

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
安全事件:链上实时计算的滑点就等于没有滑点

DRLVaultV3 就是一个基于 USDC 的 Uniswap V3 [WETH, USDC] 流动性收益协议:用户只需要存 USDC 和取 USDC,项目方(operator)负责所有添加流动性、调仓、收手续费的复杂操作,最终收益和本金都以 USDC 形式归用户所有。

造成本次事件的原因是在 DRLVaultV3.swapToWETH() 中采用了 Quoter.quoteExactInputSingle() 在线计算滑点,这个途径计算得到的滑点并不会起作用。这导致了白帽可以对 swapToWETH() 函数进行三文治攻击挽救协议资产。

相关地址:

DRLVaultV3: 0x6A06707ab339BEE00C6663db17DdB422301ff5e8

Quoter: 0x61fFE014bA17989E743c5F6cB21bF9697530B21e

WhiteHat: 0xC0ffeEBABE5D496B2DDE509f9fa189C25cF29671

攻击交易:

https://app.blocksec.com/explorer/tx/eth/0xe3eab35b288c086afa9b86a97ab93c7bb61d21b1951a156d2a8f6f5d5715c475

Trace 分析

白帽先从 Morpho 闪电贷了 USDC 来完成资金准备

重点是三文治攻击的手法

首先用 USDC → WETH 抬高 WETH 的价格

然后调用 DRLVaultV3.swapToWETH() 在被操纵的价格基础上,进行 USDC → WETH 进一步抬高 WETH 的价格

最后 WETH → USDC 兑换出超额的 USDC 完成获利

代码分析

在 DRLVaultV3.swapToWETH() 函数中,它通过 Quoter.quoteExactInputSingle() 计算与滑点相关的最少换出数量。最后调用 swapRouter.exactInputSingle() 将合约中的 USDC 兑换成 WETH。

注意它的滑点是通过计算得到的,而不是从传入参数得到的

而在 Quoter.quoteExactInputSingle() 中,则是通过执行一个 revert swap 的形式来获取 amountOut 的数量,并在返回值中返回。由于此时 USDC/WETH 的价格已经被 Sandwich1 操纵了,所以通过该函数计算得到的值也是失真的,是不正常的,是无效的。

因为这个 Quoter 合约不持有任何代币,所以它发起的 swap 是必然 revert 的。

最终 DRLVaultV3.swapToWETH() 兑换得到的 WETH 会小于实际的数量。白帽再利用 Sandwich2 将失衡的价格恢复到正常

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/30 13:58:04

DeepSeek-Prover-V2终极指南:671B参数定理证明AI的完整教程

DeepSeek-Prover-V2终极指南:671B参数定理证明AI的完整教程 【免费下载链接】DeepSeek-Prover-V2-671B 项目地址: https://ai.gitcode.com/hf_mirrors/deepseek-ai/DeepSeek-Prover-V2-671B 在人工智能与数学定理证明的交叉领域,DeepSeek-Prover…

作者头像 李华
网站建设 2026/4/18 8:15:53

【网安科普】网安巨头Palo Alto:2026年网络安全趋势预测

【网安科普】网安巨头Palo Alto:2026年网络安全趋势预测 Palo Alto预言在AI经济下,网络安全将迎来六大新格局: 针对从高管到AI代理的身份伪造欺骗、AI代理变身新内部威胁、如何解决AI数据可信问题、如何应对AI风险的新法律责任、量子倒计时日…

作者头像 李华
网站建设 2026/4/25 4:56:42

CachyOS 内核重装修复流程(更新后启动失败)

准备 使用 CachyOS Live USB 启动进入桌面/终端连接到网络打开终端开始操作1.确认分区(找出根分区和 EFI 分区) 执行查看硬盘与分区文件系统: lsblk -f根据 lsblk 结果,确认你真正的 Linux 系统分区(示例)&…

作者头像 李华
网站建设 2026/4/26 4:51:53

12、DB2数据库备份、恢复与维护全解析

DB2数据库备份、恢复与维护全解析 1. 数据库备份与恢复 当多个备份存储在同一路径时,文件名末尾的时间戳可用于区分备份镜像。恢复命令(RESTORE)能利用该时间戳从特定备份进行恢复。 1.1 数据库恢复类型 崩溃或重启恢复 :假设在运行重要事务到DB2数据库时,突然停电或…

作者头像 李华