Primex Finance

Resonance Security401 addresses on Ethereum, Polygon (POS) and Arbitrum

Resonance Security reviewed Primex Finance on 7 Dec 2023: 17 findings, 1 critical; 13 marked fixed, 4 open.

1 critical finding, fixed
Open the reportOpen Primex Finance’s security record
Report stored on IPFS. Content hash Qmat2FzynN5HZLT79ECUTPvSxUCfeynuMtjcoY69eEfXfy

Trustblock does not review code.

Findings17

Statuses are the security firm’s own, from its report.

SeverityOpenAcknowledgedFixed
Critical001
High100
Medium204
Low108
HighLack of Penalty System For Liquidatable TradersOpen

When a trader attempts to close a position, no validation is made on its health. This means that traders can close active positions at will even if the position is ready to be liquidated. While the Primex Protocol provides incentives for keepers to perform the necessary upkeep and liquidate positions that require so, traders can frontrun the keepers and deny them of their rewards.Additionally, since there is no penalty system implemented for traders that close unhealthy positions with the reason CLOSE_BY_TRADER, this yields an inherent incentive to traders to take on the maximum amount of leverage on every trade. Adding to the fact that traders receive rewards through activity on the DEX, this problem could exacerbate, and impact the supply of PMX tokens.

MediumBucket's Aave Liquidity May Be Temporarily BlockedOpen

The majority of withdrawal functions in Bucket.sol are safeguarded by the liquidity mining period. However, the withdrawByAdminFromAave function can be executed at any time. Withdrawing all collateral from the AAVE pool may cause a temporary lock on the bucket's Aave liquidity.- [`aave-v3-core/contracts/protocol/libraries/logic/SupplyLogic.sol#L134`](https://github.com/aave/aave-v3-core/blob/v1.17.2/contracts/protocol/libraries/logic/SupplyLogic.sol)The impact of this issue has been lowered as the function can only be invoked by SMALL_TIMELOCK_ADMIN.

MediumOracle Data Feed Can Be Outdated Yet Used AnywaysOpen

The Chainlink priceFeed is used in the PriceOracle.sol as a source of price for assets. However, latestRoundData() function of priceFeed returns roundId, answer, startedAt, updatedAt, asnwerInRound values but only the answer value is used in the functions. The retrieved price of the priceFeed can be outdated and used anyways as a valid data because no timestamp tolerance of the update source time is checked while storing the return parameters of latestRoundData().

LowMissing Validation Of Zero Amount On batchBurn()Open

The function batchBurn() does not validate whether the _amounts array contains elements with 0 amount, allowing transactions to take place and events to be emitted that do not change the state of the blockchain. This fact not only incurs unnecessary gas costs, but also fills the blockchain with unnecessary transactions,

Contracts in scope

No deployed address is recorded for this audit.

The report names a repository or files. Open the report to see its scope.

Part of Primex Finance’s security record

Primex Finance
Audits5 audits by 2 firmsLast audit Oct 2024, by Resonance Security.
Critical findingsNo open critical findingsAcross the 5 reports, 2 critical findings were reported. Each is marked fixed by the firm that reported it.
Open Primex Finance’s security record

Security firm

Resonance Security

18 projects reviewed · 25 reports · latest Aug 2025

See Resonance Security’s audits

Something wrong on this page? A missing report, a wrong date, a finding that was fixed since. Tell us and we check it against its source.

Tell us