All leveraged positions created through the Stratax contract share a single Aave account (`address(this)`), meaning one position’s unwind can degrade the health factor of all other positions, potentially triggering cascading liquidations and loss of user funds.
In a properly isolated leveraged position protocol, each position should have its own independent health factor on the lending platform. This ensures that managing one position (opening, closing, or adjusting) does not affect the risk profile of other positions.
In Stratax, every call to `aavePool.supply()`, `aavePool.borrow()`, `aavePool.repay()`, and `aavePool.withdraw()` uses `address(this)` as the user. This means Aave sees all positions as belonging to a single account. When the owner unwinds one position by withdrawing collateral and repaying debt, the global health factor changes, directly impacting every other open position.
Likelihood: High
Every time the owner unwinds any position, the collateral backing all other positions is reduced, changing the global health factor. No special conditions are required — this occurs during normal protocol usage
The protocol is designed to manage multiple concurrent positions (the code explicitly acknowledges this: “There might be other positions open”), so this issue manifests on every unwind operation.
Impact: High
Funds are directly at risk. An improperly calculated unwind pushes the global health factor below 1, causing Aave to liquidate the entire account — destroying all positions, not just the one being unwound.
Users have no way to isolate their position risk. A position that was healthy when opened becomes liquidatable due to another position’s unwind.
Command to run : orge test --mt testOnePositionImpactingOther --fork-url https://ethereum-rpc.publicnode.com -vvv
Deploy a separate proxy contract per position so that each position has its own isolated Aave account. The existing Beacon Proxy pattern already supports this — each position should be a new `BeaconProxy` instance.
The contest is live. Earn rewards by submitting a finding.
This is your time to appeal against judgements on your submissions.
Appeals are being carefully reviewed by our judges.
The contest is complete and the rewards are being distributed.