Prepared by:
HALBORN
Last Updated 11/25/2025
Date of Engagement: November 4th, 2025 - November 5th, 2025
100% of all REPORTED Findings have been addressed
All findings
4
Critical
0
High
0
Medium
0
Low
3
Informational
1
LucidLabs engaged Halborn to conduct a security assessment on their smart contracts beginning on November 4th, 2025 and ending on November 6th, 2025. The security assessment was scoped to smart contracts in the GitHub repository provided to the Halborn team. Commit hashes and further details can be found in the Scope section of this report.
The team at Halborn assigned a full-time security engineer to assess the security of the smart contracts. The security engineer is a blockchain and smart-contract security expert with advanced penetration testing, smart-contract hacking, and deep knowledge of multiple blockchain protocols.
The purpose of this assessment is to:
Ensure that smart contract functions operate as intended.
Identify potential security issues with the smart contracts.
In summary, Halborn identified some improvements to reduce the likelihood and impact of risks, which were addressed by the LucidLabs team. The main recommendations were the following:
Reset the existing token spending authorization to zero before assigning a new value, or adopt an incremental authorization pattern, so that future deposit operations remain functional even if the downstream component does not consume the entire approved amount.
Capture the interest bearing balance immediately before and after supplying liquidity to the external pool and base the internal principal update on the actual balance increase, or abort the operation when the increase is smaller than expected, so that the accounting layer never reflects more principal than what was effectively deployed.
Abort the operation whenever the external pool returns fewer tokens than requested, or decrease the internal principal tracker by the originally requested amount instead of the returned amount, so the recorded withdrawable balance cannot drift above what is actually recoverable.
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, purpose, and use of the platform.
Smart contract manual code review and walkthrough to identify any logic issue.
Thorough assessment of safety and usage of critical Solidity variables and functions in scope that could lead to arithmetic related vulnerabilities.
Manual testing by custom scripts.
Graphing out functionality and contract logic/connectivity/functions (solgraph).
Static Analysis of security for scoped contract, and imported functions. (Slither).
Local or public testnet deployment (Foundry, Remix IDE).
| EXPLOITABILITY METRIC () | METRIC VALUE | NUMERICAL VALUE |
|---|---|---|
| Attack Origin (AO) | Arbitrary (AO:A) Specific (AO:S) | 1 0.2 |
| Attack Cost (AC) | Low (AC:L) Medium (AC:M) High (AC:H) | 1 0.67 0.33 |
| Attack Complexity (AX) | Low (AX:L) Medium (AX:M) High (AX:H) | 1 0.67 0.33 |
| IMPACT METRIC () | METRIC VALUE | NUMERICAL VALUE |
|---|---|---|
| Confidentiality (C) | None (C:N) Low (C:L) Medium (C:M) High (C:H) Critical (C:C) | 0 0.25 0.5 0.75 1 |
| Integrity (I) | None (I:N) Low (I:L) Medium (I:M) High (I:H) Critical (I:C) | 0 0.25 0.5 0.75 1 |
| Availability (A) | None (A:N) Low (A:L) Medium (A:M) High (A:H) Critical (A:C) | 0 0.25 0.5 0.75 1 |
| Deposit (D) | None (D:N) Low (D:L) Medium (D:M) High (D:H) Critical (D:C) | 0 0.25 0.5 0.75 1 |
| Yield (Y) | None (Y:N) Low (Y:L) Medium (Y:M) High (Y:H) Critical (Y:C) | 0 0.25 0.5 0.75 1 |
| SEVERITY COEFFICIENT () | COEFFICIENT VALUE | NUMERICAL VALUE |
|---|---|---|
| Reversibility () | None (R:N) Partial (R:P) Full (R:F) | 1 0.5 0.25 |
| Scope () | Changed (S:C) Unchanged (S:U) | 1.25 1 |
| Severity | Score Value Range |
|---|---|
| Critical | 9 - 10 |
| High | 7 - 8.9 |
| Medium | 4.5 - 6.9 |
| Low | 2 - 4.4 |
| Informational | 0 - 1.9 |
Critical
0
High
0
Medium
0
Low
3
Informational
1
| Security analysis | Risk level | Remediation Date |
|---|---|---|
| Fragile allowance handling in yield components | Low | Solved - 11/12/2025 |
| Inconsistent deposit accounting under non standard token behavior | Low | Solved - 11/12/2025 |
| Overoptimistic principal balance after withdrawals | Low | Solved - 11/21/2025 |
| Token amount is trusted on lock and release without verifying actual transfer | Informational | Solved - 11/12/2025 |
//
//
//
//
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.
// Download the full report
Lucid Contracts
* Use Google Chrome for best results
** Check "Background Graphics" in the print settings if needed