代码是别人的,但是复制过来后,漏洞却是需要自己承受的,如此局面下,我们能够做的,就是严谨对待自己的项目和代码,因为出了问题后,Compound 和审计公司都没有义务为你负责。
这个漏洞我在2022年02月23日已经在这里发布过,由于内容比较敏感,发布后没多久就将文件的主要内容都删除了。然而,这个漏洞还是被利用了,March-15-2022 06:28:40 PM +8 UTC,Hundred Finance遭受攻击,黑客获利2363 ETH。Hundred Finance代码源自Compound,文中有在rinkeby上模拟攻击的交易,可以自行核对时间。
字符串格式化函数在应用开发时经常用到,而在合约中使用场景似乎没有那么多,然而要实现这个函数,则需要先解决一些问题,本文就探讨一下如何来解决这些问题。
使用重入锁并不能解决所有问题,可以考虑使用checks-effects-interactions模式,另外,转账最好放在一个完整逻辑的最开始或者最结尾,避免状态不一致。
今天看了一下Venus项目的逻辑和代码,发现其存在一个较严重的漏洞,这个漏洞可能导致资金池被盗。 Venus的代码是fork自Compound的,经分析,此漏洞在Compound和Cream中也存在。