The informal security review of the patch to fix the vulnerability of the Poly Network hack
In this blog, we will share our informal security review of the patch to fix the recent Poly network vulnerability.
Disclaimer:
We only provide an informal security review of the patch. Our evaluation shows that the patch can fix the vulnerability that was previously attacked on Aug 10, 2021. However, our review does not guarantee that there do not exist other vulnerabilities in other components of the project.
Our review
Basically, the method to fix the vulnerability is using allow lists. The allow lists are initialized when creating the EthCrossChainManager. By doing so, this patch can ensure the following security properties.
- Property one: Only the contract in the allow lists can invoke the crossChain function, which is used to start the cross-chain transaction.
- Property two: Only the method and the contract in the allow lists can be invoked by the cross-chain transaction.
By enforcing the above properties, we think the patch can fix the vulnerability.
Note that, we only review the specific patch that is used to fix the vulnerability for BSC and Ethereum. We are not sure whether other chains with the native support of cross-chain transactions have the security property one or not (without reviewing the change of the corresponding code). Besides, this patch does not perform the security enhancement on the Poly chain, which we think, could be a better place for security policies (without trusting the source and destination chain.)
Credits: Yufeng Hu, Siwei Wu, Lei Wu, Yajin Zhou @ BlockSecTeam