Summary
100% of all REPORTED Findings have been addressed
- 0Risk Accepted
- 1Acknowledged
- 11Solved
- 12All Findings
- Critical0
- High0
- Medium3
- 3Solved
- Low2
- 2Solved
- Informational7
- 6Solved
- 1Ack.
Introduction#
HorizonX engaged Halborn to conduct a security assessment on their smart contracts beginning on December 8th, 2025 and ending on December 24th, 2025. The security assessment was scoped to the smart contracts provided in the strong-smart-contracts-internal Github repository, provided to the Halborn team. Commit hash and further details can be found in the Scope section of this report.
The Stratium Hyperliquid Vault is a liquid staking protocol where users deposit HYPE tokens to receive srHYPE, the vault delegates to validators via HyperCore precompiles, manages withdrawal queues with unbonding periods, and distributes collateral rewards.
Following the completion of the initial audit, two additional issues were identified during a re-scan of commit 4870a97 and subsequently remediated in commit 1604c64:
Accounting drift in totalUnstakingForWithdrawals during slashing events - The
applySlash()function failed to update thetotalUnstakingForWithdrawalstracking variable when reducing withdrawal amounts, causing incorrect liquidity calculations.Batch processor DoS via non-existent HyperCore account - The
processWithdrawalQueue()function would revert when encountering users without HyperCore accounts, permanently blocking the batch withdrawal processor.
Both issues have been successfully resolved in the remediation commit with appropriate accounting updates and graceful error handling.
Assessment Summary#
Halborn was provided with 8 days for this engagement and assigned a full-time security engineer to assess the security of the smart contracts in scope. The assigned engineer possess 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
Stratiumprotocol smart contracts.Ensure that smart contract of
Stratiumprotocol functions operate as intended.
In summary, Halborn identified several areas for improvement to reduce the likelihood and impact of security risks, which were successfully addressed by the HorizonX team. The main recommendations were:
Decouple reward balance snapshotting from reward distribution by fixing eligible balances in a prior block, thereby preventing same-block manipulation.Extend the slashing mechanism to support multiple events by allowing repeated slashing with appropriate safeguards and event logging.Add a pre-transfer balance check to ensure the Core spot balance for the specified collateral is sufficient to cover the reward amount, reverting otherwise.Include logic to refresh Core balances from L1Read before processing withdrawals.
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
Stratiumprotocol.Manual code review and walkthrough of the
Stratiumin-scope contracts.Manual assessment of critical Solidity variables 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
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 |
|---|---|---|---|---|
| Front running reward distribution allows disproportionate reward capture | Medium | 5.0 | Solved01/05/2026 | |
| Single-use slashing flag prevents handling multiple slash events | Medium | 5.0 | Solved01/05/2026 | |
| Accounting drift in totalUnstakingForWithdrawals during slashing events | Medium | 5.0 | Solved02/08/2026 | |
| Missing core balance check before reward transfer | Low | 3.8 | Solved01/05/2026 | |
| Unbounded loop over all historical withdrawal requests during slashing | Low | 3.8 | Solved01/05/2026 | |
| Gas limit denial of service in reward distribution loop | Informational | 1.9 | Solved01/09/2026 | |
| Cancelled withdrawals leave unstaked HYPE idle in core | Informational | 1.9 | Solved01/09/2026 | |
| Lack of slippage protection on deposits | Informational | 1.9 | Acknowledged01/09/2026 | |
| Syncing balances during unbonding can cause claim underflow and denial of service | Informational | 1.7 | Solved01/09/2026 | |
| Lack of two-step ownership transfer | Informational | 1.5 | Solved01/09/2026 | |
| Batch processor denial of service via non-existent HyperCore account | Informational | 1.3 | Solved02/08/2026 | |
| Inconsistent / Floating pragma usage | Informational | 1.1 | Solved01/09/2026 |
Findings & Tech Details#
Description
Recommendation
Description
Recommendation
Description
Recommendation
Description
Recommendation
Description
Recommendation
Description
Recommendation
Description
Recommendation
Description
Recommendation
Remediation Comment
Description
Recommendation
Description
Recommendation
Description
Recommendation
Description
Recommendation
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.
