Summary
100% of all REPORTED Findings have been addressed
- 10Acknowledged
- 3Risk Accepted
- 5Solved
- 18All Findings
- Critical1
- 1Solved
- High0
- Medium0
- Low6
- 3Risk A.
- 3Solved
- Informational11
- 10Ack.
- 1Solved
Introduction#
Halborn was engaged by StartEngine to conduct a security assessment of the ERC-1450 Upgradeable Security Token. The assessment was performed from December 15th, 2025 to December 18th, 2025 with reviewed commit hashes and scope details documented in the Scope section of this report.
The ERC-1450 implementation provides a regulated security token framework designed for compliant issuance, transfer, and lifecycle management of tokenized securities. The system enforces restricted transfers through an RTA-controlled workflow, supports regulation-specific batch tracking, and integrates fee-based transfer requests with broker delegation. Upgradeability is implemented using the UUPS proxy pattern, while administrative control and governance are delegated to a multisignature RTA proxy to reduce single-key risk and enable controlled upgrades.
Assessment Summary#
A full-time security engineer was assigned by Halborn to perform a targeted review of the smart contracts in scope. The engineer is a blockchain and smart contract security specialist with advanced penetration - testing and smart - contract auditing skills, and extensive knowledge of multiple blockchain protocols.
The purpose of the assessment was to:
Identify potential security issues within the smart contracts.
Confirm that smart contract functionality operates as intended.
In summary, Halborn identified several areas for improvement to minimize both the likelihood and potential impact of security risks, which were partially addressed by the StartEngine team. The primary issues include:
Enforce protocol-calculated fees and reject zero or user-defined fee amounts to prevent fee bypass across all tokens.Enforce strict mutual exclusivity between ETH and ERC20 fee payments.Replace all usages of '.transfer' with '.call' and explicitly handle the return value.Enforce frozen account checks consistently across all token movement paths.Introduce an explicit expiration or deadline mechanism for multisig operations.Revert if the request is already rejected or executed.Track reserved fees associated with pending transfer requests separately from withdrawable fees.
Scope#
Findings Overview#
# | Title | Severity | Score | Status |
|---|---|---|---|---|
HAL-01 | User-controlled fee amount enables fee bypass and ambiguous multi-token fee enforcement | Critical | 9.4 | Solved12/22/2025 |
HAL-02 | Incorrect Fee Handling Allows Double Payment of Fees (ETH + ERC20) | Low | 3.4 | Risk Accepted12/17/2025 |
HAL-03 | Native ETH transfers use .transfer, causing refunds and withdrawals to fail | Low | 3.4 | Solved12/22/2025 |
HAL-04 | Inconsistent Frozen Account Enforcement Allows Transfers and Token Operations Involving Frozen Addresses | Low | 3.1 | Risk Accepted12/22/2025 |
HAL-05 | Stale multisig operations can be executed long after submission due to missing expiration | Low | 2.0 | Solved12/19/2025 |
HAL-06 | Missing request finalization check allows multiple fee refunds | Low | 2.0 | Solved12/22/2025 |
HAL-07 | Fee withdrawal can break future transfer fee refunds | Low | 2.0 | Risk Accepted12/22/2025 |
HAL-08 | Fee Type Enumeration Is Declared but Not Enforced | Informational | 1.7 | Acknowledged12/17/2025 |
HAL-09 | Inconsistent fee refund handling across transfer request rejection paths | Informational | 1.7 | Acknowledged12/17/2025 |
HAL-10 | Inconsistent batch cleanup during token burns leaves unused regulation entries | Informational | 1.7 | Solved12/22/2025 |
HAL-11 | Token transfers bypass regulation tracking and allow unregulated movement | Informational | 1.7 | Acknowledged12/30/2025 |
HAL-12 | Missing no-op state change validation allows redundant administrative updates | Informational | 1.7 | Acknowledged12/30/2025 |
HAL-13 | burnFrom lacks on-chain enforcement of regulation vs non-regulation token burns | Informational | 1.7 | Acknowledged12/30/2025 |
HAL-14 | Transfer agent becomes permanently immutable after being set to a contract address | Informational | 1.6 | Acknowledged12/17/2025 |
HAL-15 | Missing input validation during initialization allows invalid token configuration | Informational | 0.8 | Acknowledged12/30/2025 |
HAL-16 | Single-step ownership initialization limits safe ownership transfer | Informational | 0.7 | Acknowledged12/30/2025 |
HAL-17 | Redundant transfer agent existence check causes unnecessary logic complexity | Informational | 0.5 | Acknowledged12/22/2025 |
HAL-18 | Event declaration placement improves code readability | Informational | 0.5 | Acknowledged12/30/2025 |
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.
