#45772 [SC-Insight] NatSpec Mismatch in CoreVault Redemption Logic
Submitted on May 20th 2025 at 10:05:51 UTC by @MyssTeeQue for Audit Comp | Flare | FAssets
Report ID: #45772
Report Type: Smart Contract
Report severity: Insight
Target: https://github.com/flare-foundation/fassets/blob/main/contracts/assetManager/facets/CoreVaultFacet.sol
Impacts:
Description
Brief/Intro
In CoreVaultFacet.sol
, there is a mismatch between the NatSpec comment and the actual code implementation for the redeemFromCoreVault
function. The NatSpec comment states that "the number of lots, must be larger than coreVaultMinimumRedeemLots
setting", but the code uses a greater than or equal to (>=
) comparison:
Vulnerability Details
//@audit-info natspec says "the number of lots, must be larger than `coreVaultMinimumRedeemLots` setting"
// but the code is using `_lots >= minimumRedeemLots`
require(_lots >= minimumRedeemLots, "requested amount too small");
The code's implementation is actually safer as it:
Allows redemption at exactly the minimum threshold
Avoids potential precision issues with strict inequalities
Impact Details
The code is actually more permissive than documented, not less
Could cause confusion for developers reading the documentation
Might lead to unnecessary code changes if someone tries to "fix" the code to match docs
Proof of Concept
Proof of Concept
Update the NatSpec comment to accurately reflect the code's behavior and its rationale:
// The number of lots must be greater than or equal to the minimum required lots.
// This allows redemption of exactly the minimum amount while avoiding strict inequality precision issues.
No code changes are needed as the current implementation using >=
is the safer approach.
Was this helpful?