Decent - Nikki's results

Decent enables one-click transactions using any token across chains.

General Information

Platform: Code4rena

Start Date: 19/01/2024

Pot Size: $36,500 USDC

Total HM: 9

Participants: 113

Period: 3 days

Judge: 0xsomeone

Id: 322

League: ETH

Decent

Findings Distribution

Researcher Performance

Rank: 90/113

Findings: 1

Award: $0.12

🌟 Selected for report: 0

🚀 Solo Findings: 0

Lines of code

https://github.com/decentxyz/decent-bridge/blob/7f90fd4489551b69c20d11eeecb17a3f564afb18/src/DcntEth.sol#L20

Vulnerability details

Impact

The function DcntEth.setRouter has no access control which is resposible for setting the router address. Also this router address has the authority to mint and burn tokens. Lack of access control leads anyone to set their address as router and mint unlimited tokens. User can then burn those tokens to convert them into ETH. This will lead to loss of funds for the protocol.

Proof of Concept

  1. Attacker sets his own address as router.
  2. Calls mint function to mint some tokens
  3. Attacker sets back the previous router address.
  4. Finally attacker converts DcntEth tokens to Eth by calling DecentEthRouter.removeLiquidityEth().

Tools Used

Manual Review

Enforce access control by allowing only owner to set the value.

    /**
     * @param _router the decentEthRouter associated with this eth
     */
-    function setRouter(address _router) public {
+    function setRouter(address _router) public onlyOwner {
         router = _router;
     }

Assessed type

Access Control

#0 - c4-pre-sort

2024-01-24T16:19:53Z

raymondfam marked the issue as sufficient quality report

#1 - c4-pre-sort

2024-01-24T16:19:59Z

raymondfam marked the issue as duplicate of #14

#2 - c4-judge

2024-02-03T13:23:00Z

alex-ppg 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