ZKCross - Penetration Test - ZKCross


Prepared by:

Halborn Logo

HALBORN

Last Updated 09/12/2025

Date of Engagement: August 14th, 2025 - August 20th, 2025

Summary

100% of all REPORTED Findings have been addressed

All findings

17

Critical

2

High

7

Medium

7

Low

1

Informational

0


1. Introduction

ZKCross engaged Halborn to conduct a security assessment for the off-chain side of components of their cross-chain bridge. Halborn was provided access to the testing environment for testing and performed whitebox testing to identify and validate potential security vulnerabilities. The engagement was designed to identify vulnerabilities, validate security controls, and ensure the robustness of the bridge against both traditional application threats and bridge-specific business logic risks. Testing was performed using both blackbox and greybox methodologies to balance coverage and depth, and all findings were documented and reported at the conclusion of the engagement.

2. Assessment Summary

The team at Halborn was provided a timeline for the engagement and assigned a full-time security engineer to verify the security of the assets in scope. The security engineer is a penetration testing expert with advanced knowledge in web, mobile, blockchain, recon, discovery & infrastructure penetration testing. The engineer conducted in-depth testing of transaction flows, API endpoints, and supporting infrastructure.

The assessment identified multiple vulnerabilities affecting transaction handling, withdrawal rights assignment, nonce-based authentication, event processing, token resolution, API design, and dependency management. Business-logic flaws such as duplicate processing of bridge transactions and missing verification before fund release were noted as particularly impactful. Additional weaknesses included unauthenticated initialization endpoints, lack of rate limits, cacheable HTTPS responses, and persistence of token prices without safeguards. Observations also highlighted risks from outdated dependencies and exposed secrets in code history.

The findings underscore the importance of remediating key logic and API weaknesses to improve resilience while maintaining the strong baseline already present in secure operational practices.

The client addressed all identified issues, where one issue was partially resolved and will be completely addressed in future releases of the application.

3. Scope

The following repository was part of the scope:

4. Test Approach and Methodology

Halborn followed whitebox methodology as per the scope and performed a combination of manual and automated security testing with both to balance efficiency, timeliness, practicality, and accuracy regarding the scope of the pentest. While manual testing is recommended to uncover flaws in logic, process, and implementation; automated testing techniques assist enhance coverage of the infrastructure and can quickly identify flaws in it.

The assessment methodology covered a range of phases and employed various tools, including but not limited to the following:

- Mapping bridge workflows (lock → index → execute → release)

- Validating chain and token configuration

- Testing concurrency and race conditions in worker scheduling

- Verifying RPC reliability and alt-RPC fallback logic

- Assessing price feed caching and persistence

- Reviewing funder detection and withdrawal authorization flows

- Evaluating session, nonce, and authentication mechanisms in API endpoints

- Testing role assignment and liquidity wallet access controls

- Fuzzing endpoints for injection or misuse

- Dependency analysis for outdated or vulnerable third-party libraries

- Analysis for hardcoded credentials or API keys


5. RISK METHODOLOGY

Halborn assesses the severity of findings using either the Common Vulnerability Scoring System (CVSS) framework or the Impact/Likelihood Risk scale, depending on the engagement. CVSS is an industry standard framework for communicating characteristics and severity of vulnerabilities in software. Details can be found in the CVSS Specification Document published by F.I.R.S.T.
Vulnerabilities or issues observed by Halborn scored on the Impact/Likelihood Risk scale are measured by the LIKELIHOOD of a security incident and the IMPACT should an incident occur. This framework works for communicating the characteristics and impacts of technology vulnerabilities. The quantitative model ensures repeatable and accurate measurement while enabling users to see the underlying vulnerability characteristics that were used to generate the Risk scores. For every vulnerability, a risk level will be calculated on a scale of 5 to 1 with 5 being the highest likelihood or impact.
RISK SCALE - LIKELIHOOD
  • 5 - Almost certain an incident will occur.
  • 4 - High probability of an incident occurring.
  • 3 - Potential of a security incident in the long term.
  • 2 - Low probability of an incident occurring.
  • 1 - Very unlikely issue will cause an incident.
RISK SCALE - IMPACT
  • 5 - May cause devastating and unrecoverable impact or loss.
  • 4 - May cause a significant level of impact or loss.
  • 3 - May cause a partial impact or loss to many.
  • 2 - May cause temporary impact or loss.
  • 1 - May cause minimal or un-noticeable impact.
The risk level is then calculated using a sum of these two values, creating a value of 10 to 1 with 10 being the highest level of security risk.
Critical
High
Medium
Low
Informational
  • 10 - CRITICAL
  • 9 - 8 - HIGH
  • 7 - 6 - MEDIUM
  • 5 - 4 - LOW
  • 3 - 1 - VERY LOW AND INFORMATIONAL

7. Assessment Summary & Findings Overview

Critical

2

High

7

Medium

7

Low

1

Informational

0

Security analysisRisk levelRemediation Date
Race condition allows duplicate bridge transactions for same lockIdCriticalSolved - 09/12/2025
First depositor can gain withdraw rightsCriticalSolved - 09/11/2025
Missing re-verification before fund releaseHighSolved - 09/11/2025
Nonce auth message is weak and volatileHighSolved - 09/11/2025
Bridge Initialization Endpoint Accessible Without AuthenticationHighSolved - 09/11/2025
Concurrency may cause resource exhaustion & duplicate worker processingHighSolved - 09/11/2025
Alt-RPC verification fails open when secondary is unsetHighSolved - 09/11/2025
Price worker persists values without safeguardsHighSolved - 09/12/2025
API Endpoints Served Over Insecure HTTPHighSolved - 09/11/2025
Event processing at head block may skip events on reorgsMediumSolved - 09/11/2025
Outdated third party dependencies introduce riskMediumPartially Solved - 09/11/2025
Token resolution inconsistencies can cause wrong contract selectionMediumSolved - 09/11/2025
Hardcoded Secret Git HistoryMediumSolved - 09/11/2025
Lack of Rate Limits in APIMediumSolved - 09/11/2025
Block sync pointer may update incorrectly could lead to race conditionsMediumSolved - 09/11/2025
Risk Of Supply Chain Attack Due To Unpinned DependenciesMediumSolved - 09/11/2025
Cacheable Https API ResponsesLowSolved - 09/11/2025

8. Findings & Tech Details

8.1 Race condition allows duplicate bridge transactions for same lockId

//

Critical

Description
Proof of Concept
Score
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N(9.1)
Recommendation
Remediation Comment
Remediation Hash

8.2 First depositor can gain withdraw rights

//

Critical

Description
Proof of Concept
Score
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N(9.1)
Recommendation
Remediation Comment
Remediation Hash

8.3 Missing re-verification before fund release

//

High

Description
Proof of Concept
Score
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N(8.2)
Recommendation
Remediation Comment
Remediation Hash

8.4 Nonce auth message is weak and volatile

//

High

Description
Proof of Concept
Score
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:H/A:N(8.2)
Recommendation
Remediation Comment

8.5 Bridge Initialization Endpoint Accessible Without Authentication

//

High

Description
Score
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N(7.5)
Recommendation
Remediation Comment
Remediation Hash

8.6 Concurrency may cause resource exhaustion & duplicate worker processing

//

High

Description
Proof of Concept
Score
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H(7.5)
Recommendation
Remediation Comment
Remediation Hash

8.7 Alt-RPC verification fails open when secondary is unset

//

High

Description
Proof of Concept
Score
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N(7.5)
Recommendation
Remediation Comment
Remediation Hash

8.8 Price worker persists values without safeguards

//

High

Description
Proof of Concept
Score
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N(7.5)
Recommendation
Remediation Comment
Remediation Hash

8.9 API Endpoints Served Over Insecure HTTP

//

High

Description
Proof of Concept
Score
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N(7.5)
Recommendation
Remediation Comment
Remediation Hash

8.10 Event processing at head block may skip events on reorgs

//

Medium

Description
Proof of Concept
Score
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N(6.5)
Recommendation
Remediation Comment
Remediation Hash

8.11 Outdated third party dependencies introduce risk

//

Medium

Description
Proof of Concept
Score
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N(6.5)
Recommendation
Remediation Comment
Remediation Hash

8.12 Token resolution inconsistencies can cause wrong contract selection

//

Medium

Description
Proof of Concept
Score
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N(5.3)
Recommendation
Remediation Comment
Remediation Hash

8.13 Hardcoded Secret Git History

//

Medium

Description
Proof of Concept
Score
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:H/I:N/A:N(5.3)
Recommendation
Remediation Comment
Remediation Hash

8.14 Lack of Rate Limits in API

//

Medium

Description
Proof of Concept
Score
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:L(5.3)
Recommendation
Remediation Comment
Remediation Hash

8.15 Block sync pointer may update incorrectly could lead to race conditions

//

Medium

Description
Proof of Concept
Score
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:L/A:L(4.8)
Recommendation
Remediation Comment
Remediation Hash

8.16 Risk Of Supply Chain Attack Due To Unpinned Dependencies

//

Medium

Description
Proof of Concept
Score
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:C/C:N/I:L/A:N(4.0)
Recommendation
Remediation Comment
Remediation Hash

8.17 Cacheable Https API Responses

//

Low

Description
Score
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N(3.7)
Recommendation
Remediation Comment
Remediation Hash

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.