零时科技 || Port3 攻击事件分析

11 月 23 日,BNB Smart Chain 上 Port3 项目遭攻击。因合约部署未设 owner,攻击者可伪造跨链交易大量增发代币,致其价格归零。建议项目方多方验证代码逻辑,合约上线前由多家审计公司交叉审计。

登链封面(事件).jpg

<!--StartFragment-->

背景介绍

2025年 11 ⽉ 23 ⽇,我们监控到 BNB Smart Chain 上针对 Port3 项⽬的攻击事件(其中之⼀):

https\://bscscan.com/tx/0xa7488ff4d6a85bf19994748837713c710650378383530ae709aec628023cd7cc

经过详细分析,攻击者从 2025 年 11 ⽉ 23 ⽇起,持续对 Port3 项⽬发起攻击,攻击造成 Port3 Token ⼤量增发,导致价格归零。

<!--EndFragment-->

<!--StartFragment-->

攻击及事件分析

看⼀下攻击者发起的交易,

<!--EndFragment-->

1.png

<!--StartFragment-->

攻击者先调⽤ registerChains 后,再调⽤ bridgeIn 。通过利⽤ bridgeIn 完成了 Port3 Token 的 free mint 。

<!--EndFragment-->

2.png

<!--StartFragment-->

我们看⼀下 Port3 项⽬的合约中的 registerChains 函数是如何实现的:

<!--EndFragment-->

3.png

<!--StartFragment-->

该函数的主要作⽤就是设置接收指定 chainID 的 token 。但是,这个函数有对应的权限校验函数 onlyOwnerOrOwnerSignature ,接下来,我们看看攻击者是如何绕过权限校验函数。 

onlyOwnerOrOwnerSignature 的具体实现如下:

<!--EndFragment-->

4.png

<!--StartFragment-->

问题就出现在红框中代码,由于合约的 owner 没有设置,

<!--EndFragment-->

5.png <!--StartFragment-->

所以,任何⼈都可以通过这个验证,攻击者通过 registerChains 将 token address 加⼊到 _state.tokenImplementations 中,随后在 bridgeIn 中的绕过检测,从⽽完成 _mint 的操作。

<!--EndFragment-->

6.png

<!--StartFragment-->

总结

本次漏洞的成因是函数 Port3 项⽬在合约部署后,未设置 onwer ,导致攻击者可以随意设置接收跨链交易的合约地址,最终导致攻击者伪造跨链交易完成 Port3 Token 的⼤量增发。建议项⽬⽅在设计经济模型和代码运⾏逻辑时要多⽅验证,合约上线前审计时尽量选择多个审计公司交叉审计。

<!--EndFragment-->

点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
零时科技
零时科技
0xbD0b...A354
专注区块链生态安全