Summary
100% of all REPORTED Findings have been addressed
- 0Risk Accepted
- 2Acknowledged
- 5Solved
- 7All Findings
- Critical0
- High0
- Medium0
- Low0
- Informational7
- 5Solved
- 2Ack.
INTRODUCTION#
ZKPass engaged Halborn to conduct a security assessment on their smart contracts beginning and ending on November 25th, 2025. The security assessment was scoped to the smart contracts provided in the zkPass-Token-Contract GitHub repository, provided to the Halborn team. Commit hash and further details can be found in the Scope section of this report.
The reviewed contracts implement a fixed-supply omnichain ERC20 token that uses LayerZero OFT to burn on the source chain and mint on the destination chain during transfers. It also supports ERC20Permit for gasless approvals and ERC20Votes for governance.
ASSESSMENT SUMMARY#
Halborn was provided with 1 day for this engagement and assigned a full-time security engineer to assess the security of the smart contracts in scope. The assigned engineer possesses deep expertise in blockchain and smart contract security, including hands-on experience with multiple blockchain protocols.
The objective of this assessment is to:
Identify potential security issues within the
ZKPTokenprotocol smart contracts.Ensure that smart contract of ````
ZKPTokenprotocol functions operate as intended.
In summary, Halborn identified several areas for improvement to reduce the likelihood and impact of risks, which were mostly addressed by the ZKPass team. The main ones were:
Implementing a mechanism to invalidate outstanding permit signatures prior to their expiry.Configuring the SUPPLY_CAP on non-mint chains to reflect the global supply and avoid ambiguity.Preventing bridging to address(0), as such transfers will reduce the actual circulating supply.Enforcing the global supply cap via the ERC20Votes supply guard.Preventing renouncement of ownership to avoid locking essential OFT configuration.
TEST APPROACH AND METHODOLOGY#
Halborn performed a combination of manual review of the code and automated security testing to balance efficiency, timeliness, practicality, and accuracy in regard to the scope of the smart contract assessment. While manual testing is recommended to uncover flaws in logic, process, and implementation, automated testing techniques help enhance coverage of smart contracts and can quickly identify items that do not follow security best practices.
The following phases and associated tools were used throughout the term of the assessment:
Research into the architecture and purpose of the
ZKPTokenprotocol.Manual code review and walkthrough of the
ZKPTokenin-scope contracts.Manual assessment of critical
Solidityvariables and functions to identify potential vulnerability classes.Manual testing using custom scripts.
Static Analysis of security for scoped contracts and imported functions. (
Slither).Local deployment and testing with (
Foundry,Remix IDE).
Risk Methodology#
4.1 EXPLOITABILITY
Attack Origin (AO):
Attack Cost (AC):
Attack Complexity (AX):
Metrics:
| EXPLOITABILITY METRIC () | METRIC VALUE | NUMERICAL VALUE |
|---|---|---|
| Attack Origin (AO) | Arbitrary (AO:A) | 1 |
| Specific (AO:S) | 0.2 | |
| Attack Cost (AC) | Low (AC:L) | 1 |
| Medium (AC:M) | 0.67 | |
| High (AC:H) | 0.33 | |
| Attack Complexity (AX) | Low (AX:L) | 1 |
| Medium (AX:M) | 0.67 | |
| High (AX:H) | 0.33 |
4.2 IMPACT
Confidentiality (C):
Integrity (I):
Availability (A):
Deposit (D):
Yield (Y):
Metrics:
| IMPACT METRIC () | METRIC VALUE | NUMERICAL VALUE |
|---|---|---|
| Confidentiality (C) | None (C:N) | 0 |
| Low (C:L) | 0.25 | |
| Medium (C:M) | 0.5 | |
| High (C:H) | 0.75 | |
| Critical (C:C) | 1 | |
| Integrity (I) | None (I:N) | 0 |
| Low (I:L) | 0.25 | |
| Medium (I:M) | 0.5 | |
| High (I:H) | 0.75 | |
| Critical (I:C) | 1 | |
| Availability (A) | None (A:N) | 0 |
| Low (A:L) | 0.25 | |
| Medium (A:M) | 0.5 | |
| High (A:H) | 0.75 | |
| Critical (A:C) | 1 | |
| Deposit (D) | None (D:N) | 0 |
| Low (D:L) | 0.25 | |
| Medium (D:M) | 0.5 | |
| High (D:H) | 0.75 | |
| Critical (D:C) | 1 | |
| Yield (Y) | None (Y:N) | 0 |
| Low (Y:L) | 0.25 | |
| Medium (Y:M) | 0.5 | |
| High (Y:H) | 0.75 | |
| Critical (Y:C) | 1 |
4.3 SEVERITY COEFFICIENT
Reversibility (R):
Scope (S):
Metrics:
| SEVERITY COEFFICIENT () | COEFFICIENT VALUE | NUMERICAL VALUE |
|---|---|---|
| Reversibility () | None (R:N) | 1 |
| Partial (R:P) | 0.5 | |
| Full (R:F) | 0.25 | |
| Scope () | Changed (S:C) | 1.25 |
| Unchanged (S:U) | 1 |
| Critical | High | Medium | Low | Informational |
| 9 - 10 | 7 - 8.9 | 4.5 - 6.9 | 2 - 4.4 | 0 - 1.9 |
Scope#
Assessment Summary & Findings Overview#
# | Title | Severity | Score | Status |
|---|---|---|---|---|
| No mechanism to invalidate outstanding permit signatures before expiry | Informational | 0.0 | Solved11/25/2025 | |
| SUPPLY_CAP not reflecting global supply on non-mint chains may lead to incorrect assumptions | Informational | 0.0 | Solved11/25/2025 | |
| Bridging to address(0) mints tokens to an irrecoverable sink, reducing actual circulating supply | Informational | 0.0 | Solved11/25/2025 | |
| Global supply cap is not enforced by ERC20Votes supply guard | Informational | 0.0 | Solved11/25/2025 | |
| Checkpoint clock mode unclear and may not match intended governance design | Informational | 0.0 | Acknowledged11/26/2025 | |
| Renouncing ownership can permanently lock essential OFT configuration | Informational | 0.0 | Solved11/25/2025 | |
| Single-step ownership transfer increases risk of misconfigured or lost ownership | Informational | 0.0 | Acknowledged11/26/2025 |
Findings & Tech Details#
Description
Recommendation
Description
Recommendation
Description
Recommendation
Description
Recommendation
Description
Recommendation
Remediation Comment
Description
Recommendation
Description
Recommendation
Remediation Comment
Disclaimer#
Halborn strongly recommends conducting a follow-up assessment of the project either within six months or immediately following any material changes to the codebase, whichever comes first. This approach is crucial for maintaining the project’s integrity and addressing potential vulnerabilities introduced by code modifications.
