Normal behavior: Stratax uses 1inch to swap tokens during leveraged position open and unwind operations.
Issue: The contract executes low-level calls with calldata passed directly from the owner (createLeveragedPosition and unwindPosition) via _call1InchSwap:
Centralization risk: Only the owner can initiate leveraged operations, meaning the owner controls all calldata for token swaps, which could be maliciously crafted to:
Drain user collateral
Swap to tokens with 0 value (rug-pull)
Interact with arbitrary contracts
Likelihood:
High likelihood because the contract relies on owner-supplied 1inch calldata for both opening and unwinding positions.
Any user calling these functions must trust the owner, creating complete centralization of risk.
Impact:
Users’ funds can be stolen or locked if the owner crafts malicious calldata.
Even fully collateralized positions can be drained during swaps.
Flash loan repayment logic will still attempt to repay the loan, but leftover tokens could be redirected.
The _call1InchSwap function blindly executes owner-provided calldata. Malicious data could:
Transfer collateral to attacker’s address
Swap to worthless tokens
Trigger arbitrary contract calls
This is a complete trust-of-owner issue and represents a centralization risk that can lead to full fund loss.
Never allow arbitrary low-level calls supplied by an externally trusted party.
Implement whitelisted swap paths or use a safe aggregator interface with parameters strictly validated.
Consider multi-signature execution for swap calldata changes.
Include slippage checks and max loss limits to prevent unintended fund loss.
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.