Sample Token 代币合约安全审计报告
一套部署于 BNB Chain 的 BEP-20 代币及配套预售、锁仓合约。本次审计共发现 5 个问题, 其中 1 个高危(无上限增发)已在复审中修复,1 个中危待处理,其余为提示性建议。
- Report number
- UMB-2026-0007
- Client
- Sample Token(样例)
- Chain
- BNB Chain
- Language
- Solidity 0.8.20
- Report version
- v2.0 Final
- Report date
- 2026-05-30
- Overall rating
- Medium risk
Audited contracts
Contracts / files covered by this audit and their verifiable identity (commit and on-chain address).
| Name | Type | commit | Address |
|---|---|---|---|
| Token.sol | 代币合约 | a1b2c3d4e5 | 0x5A1b2C3d4E5f60718293a4B5c6D7e8F901234567 |
| Presale.sol | 预售 / IDO | a1b2c3d4e5 | 0x9F8e7D6c5B4a39281706f5E4d3C2b1A098765432 |
| Vesting.sol | 锁仓 / 释放 | a1b2c3d4e5 | — |
Findings
High 1Medium 2Low 1Info 1| ID | Title | Severity | Status | Category |
|---|---|---|---|---|
| TKN-01 | owner 可无限增发代币(无上限 mint 权限) | High | Resolved | Centralization |
| TKN-02 | 预售合约可被 owner 提前抽走募资 | Medium | Open | Centralization |
| TKN-04 | 交易税率上限缺失,可被改至极端值 | Medium | Resolved | Honeypot / backdoor |
| TKN-03 | 锁仓释放计算在边界时间戳取整偏差 | Low | Acknowledged | Arithmetic |
| TKN-07 | 缺少关键状态变更事件 | Info | Acknowledged | Best practice |
执行摘要
本项目为一套部署于 BNB Chain 的 BEP-20 代币及配套预售、锁仓合约。本次审计采用 AI 增强 + 人工复核 的混合模式:自动化引擎对全量代码做高覆盖率初筛,安全工程师对所有 产出逐条人工验证(剔除误报、确认可利用性、编写 PoC),并独立完成业务逻辑与经济模型分析。
整体安全评级为 中风险:唯一的高危「无上限增发」已在复审中修复,剩余中危「预售可提前 提款」建议在主网放量前处理。
本报告是该时间点、该指定 commit 范围内的安全状况快照,不构成对项目绝对安全的保证,亦不 构成任何投资建议。审计后对代码的任何改动均不在覆盖范围内。
TKN-01 · owner 可无限增发代币
严重等级: High 状态: Resolved 类别: 中心化权限 位置: Token.sol:88-95 · mint()
mint() 仅由 onlyOwner 控制,且对增发数量无任何上限或时间锁约束。owner 私钥一旦被控或
团队作恶,可瞬间增发任意数量代币、稀释所有持有者并砸盘退出(典型 rug 向量)。
概念验证(PoC):
// 前置:attacker == owner
function test_unlimitedMint() public {
uint256 before = token.totalSupply();
vm.prank(owner);
token.mint(attacker, 1e30);
assertGt(token.totalSupply(), before); // 供应量被无限拉高
}
修复建议: 移除无上限 mint,或设置硬顶 MAX_SUPPLY;将 mint 权限交由多签 + 时间锁治理;
若不需要增发,构造时一次性铸造并彻底放弃铸币权。
修复情况: 客户已移除 mint(),改为构造时固定供应量并放弃 owner 铸币权,复审验证通过。
TKN-02 · 预售合约可被 owner 提前抽走募资
严重等级: Medium 状态: Open 类别: 中心化权限 位置: Presale.sol:142 · withdraw()
withdraw() 未与预售结束条件或软顶解锁绑定,owner 可在预售进行中随时提走全部募资,参与者
面临资金被提前转移的风险。
修复建议: 将提款绑定到「预售结束且达到软顶」,并引入多签 / 时间锁;未达软顶时应允许参与者 退款。
修复情况: 待客户处理。
TKN-07 · 缺少关键状态变更事件
严重等级: Informational 状态: Acknowledged 类别: 最佳实践 位置: Token.sol:120 · setFee()
setFee() 修改交易税率时未触发事件,链下与社区无法追踪费率变更。建议增加
event FeeUpdated(uint256 oldFee, uint256 newFee); 并在变更时触发。客户知悉,计划下版本处理。
Compare the on-chain deployed bytecode with the audited commit listed here, confirming you are verifying the same version of code that was audited.