#45665 [SC-Medium] [H-02] Minting Cap Bypass via Pool Fee Exclusion during Self Mint
Description
Description
uint64 valueAMG = _lots * Globals.getSettings().lotSizeAMG;
@>> _reserveCollateral(agent, valueAMG + _currentPoolFeeAMG(agent, valueAMG)); function _reserveCollateral(
Agent.State storage _agent,
uint64 _reservationAMG
)
private
{
AssetManagerState.State storage state = AssetManagerState.get();
@>> Minting.checkMintingCap(_reservationAMG);
// @>> _reservationAMG includes both the valueAMG and poolFee
_agent.reservedAMG += _reservationAMG;
state.totalReservedCollateralAMG += _reservationAMG;
}
Impact Details
References
Recommendation
Proof of Concept
Proof of Concept
Previous#45574 [SC-Insight] Redundant Per‑Item Upper Bound Check in `validateLiquidationFactors`Next#45674 [SC-Insight] `executeMinting()` allows impersonation of minter during chain-reorg due to deterministic `crtId` and lack of minter binding
Was this helpful?