# Mean Finance 漏洞被披露了：有毒小数

By [一川drive](https://paragraph.com/@yichuandrive) · 2023-01-30

---

### ⚠️ 目前没有资金处于风险之中。 漏洞未被利用 ⚠️

> 昨天（2022年4月16日）在晚上8：42PM UTC我们通过**Immune Fi**收到了漏洞披露。 此漏洞将允许攻击者提取用户的资金。

                                                   。 。 。

### 漏洞披露时间表：

*   晚上 20:42 通过ImmuneFi收到了回报
    
*   晚上 20:48 ImmuneFi的团队加剧了这个问题
    
*   晚上 20:50 团队确认了问题恶化，确认它可能是有效的，并开始调查它
    
*   晚上 21:50 团队确认这是个漏洞，并与白帽黑客开始沟通进行
    
*   晚上 21:57 我们暂停了已部署链中的所有存款和掉期，我们开始查看是否被攻击了
    
*   晚上 22:30 验证漏洞未不是攻击
    

### 漏洞

关于用户可以提粗多少个令牌的计算可以通过允许更改小数的恶意令牌进行操作。

**修复步骤**

*   部署让攻击者控制 `decimals()` 的恶意令牌 (let's call it `Poison(PSN)` )
    
    \=>攻击者以18位小数启动恶意令牌。
    
*   使用我们的恶意令牌和我们想要窃取的令牌在UniswapV3上创建一个池 ( `PSN/ETH` )，然后我们的 `OracleAggregator`可以稍后有一个oracle
    
         =>攻击者在池中设置1比1的比例
        
    
*   在我们的集线器创建一个仓位 `PSN` 往 `ETH`
    
         =>率为0.1 `PSN`
        
    
*   在对上执行交换 `PSN/ETH`
    
    \=>计算是用18位小数进行的，因此以1比1的比例用户可以提出 **0.1ETH**
    
*   兑换 `decimals()`
    
    \=>攻击者将小数设置为17
    
*   把资金提出去了
    
    \=>新的计算是用17位小数完成的，所以欠的0.1个ETH变成了1个ETH
    

。 。 。
-----

### 减少出现漏洞的可能性

可悲的是，bug在软件中并不罕见。 他们是流程的一部分，这是所有程序员都需要忍受的。 尽管如此，**我们还是做了几件事来减少生产它们的机会:**

*   **测试：** 我们所有的存储库都有大约800个测试。 我们甚至在受影响的存储库上有+99％的复盖率。 我们有单元，集成和端到端测试
    
*   **审计：** 我们的协议被两个\*\*[Pessimistic](https://github.com/Mean-Finance/dca-v2-core/tree/main/audits)\*\* [与 **Peckshield**](https://github.com/Mean-Finance/dca-v2-core/tree/main/audits)审计过了两次
    
*   **Bug赏金：我们在ImmuneFirst**有了一个bug赏金活动
    

### 重要的结论

*   \*\*加密货币挺困难：\*\*人类容易出错，区块链是不可变的。 我们可以做一些事情来解决这个问题，但一切都需要权衡（例如，具有可升级的智能合约）
    
*   \*\*ImmuneFi 能干：\*\*从我们设置bug赏金的那一天起，我们收到了多个回报：其中大多数都不适用，或者是未成年人。 但这证明了bug奖励提供了多少曝光和价值。 如果你是一个没有活bug奖励的协议开发者:尽快得到它!
    
*   \*\*我们不会放手：\*\*我们将尽我们所能为每个人带来安全，可访问和分散的平均成本。 这可能是一个失利，但它不会阻止我们实现我们的目标
    

### 前进的一条路

*   用户可以像以前一样通过我们的**dApp**安全地提出自己的资金
    
*   用户不能再在合约上创建新仓位
    
*   本次版本合约的掉期将不再执行
    
*   集线器实现将需要修复。 在接下来的几天里，我们将宣布前进的步骤以及我们的流程将如何改变，以确保它不会再次发生
    

。 。 。
-----

### 注意好自己 🧯

**骗子可能想利用这些新信息，所以只是重申一下:**

*   我们团队从来不会主动私聊您，发邮箱或者问您的12个词
    
*   我们唯一的官方渠道是：[**Twitter**](https://twitter.com/mean_fi) ｜ [**Discord**](https://discord.gg/VXh3W9V6fp) ｜ [**dApp**](https://mean.finance/create)
    

### 鼓励

非常感谢白帽黑客[cergyk](https://twitter.com/cergyk)，他们通过我们的[ImmuneFi's](https://immunefi.com/bounty/meanfinance/)的\*\*[bug](https://immunefi.com/bounty/meanfinance/)\*\*赏金做了一个负责任的披露。

[Subscribe](null)

[原版本在这儿](https://mean-finance.medium.com/mean-vulnerability-disclosure-poisonous-decimals-40bc1f45b5ea)

---

*Originally published on [一川drive](https://paragraph.com/@yichuandrive/mean-finance-3)*
