Maia DAO - Ulysses - tank's results

Harnessing the power of Arbitrum, Ulysses Omnichain specializes in Virtualized Liquidity Management.

General Information

Platform: Code4rena

Start Date: 22/09/2023

Pot Size: $100,000 USDC

Total HM: 15

Participants: 175

Period: 14 days

Judge: alcueca

Total Solo HM: 4

Id: 287

League: ETH

Maia DAO

Findings Distribution

Researcher Performance

Rank: 163/175

Findings: 1

Award: $0.11

🌟 Selected for report: 0

🚀 Solo Findings: 0

Lines of code

https://github.com/code-423n4/2023-09-maia/blob/main/src/VirtualAccount.sol#L85-L112

Vulnerability details

Impact

an attacker can steal all assets in VirtualAccount. Every functions in VirtualAccount have requiresApprovedCaller except function payableCall(PayableCall[] calldata calls) public payable returns (bytes[] memory returnData) ref: https://github.com/code-423n4/2023-09-maia/blob/main/src/VirtualAccount.sol#L85, so the attacker can call any contracts with any calldatas. (eg. transfer NFT, transfer ERC20 tokens)

Proof of Concept

according to this line: https://github.com/code-423n4/2023-09-maia/blob/main/src/VirtualAccount.sol#L101 attacker can send

  • _call.target = USDC
  • _call.callData = abi.encodeWithSelector(IERC20.transfer.selector, <attacker address>, <amount>)

Tools Used

  • manual review
  • add requiresApprovedCaller modifier

Assessed type

Access Control

#0 - c4-pre-sort

2023-10-08T14:04:19Z

0xA5DF marked the issue as duplicate of #888

#1 - c4-pre-sort

2023-10-08T14:37:20Z

0xA5DF marked the issue as sufficient quality report

#2 - c4-judge

2023-10-26T11:29:15Z

alcueca marked the issue as satisfactory

AuditHub

A portfolio for auditors, a security profile for protocols, a hub for web3 security.

Built bymalatrax © 2024

Auditors

Browse

Contests

Browse

Get in touch

ContactTwitter