长推:ParaSpace合约硬核审查

原文作者:Juu17

原文来源:twitter

注:本文来自@0xjuu_17 推特,其是Hedgue crypto研究主管,原推文内容由MarsBit整理如下:

我花了8个小时,检查了210个合约文件,并对ParaSpace目前所有线上合约做了权限检查,大家看完之后便可以对 @yuboruan 和ParaSpace的用户资金安全情况消除怀疑:

源代码Github: https://github.com/para-space/paraspace-core

1涉及资产权限的合约文件

/apestaking/AutoCompoundApe.sol

管理员权限控制:

onlyPoolAdmin

/apestaking/AutoYieldApe.sol

管理员权限控制:

onlyPoolAdmin

/apestaking/P2PPairStaking.sol

管理员权限控制:

onlyOwner

/misc/ParaSpaceAirDrop.sol

管理员权限控制:

onlyOwner

/protocol/pool/PoolParameters.sol

管理员权限控制:

onlyPoolAdmin

/protocol/tokenization/PToken.sol

管理员权限控制:

onlyPoolAdmin

通过继承受影响:

/protocol/tokenization/DelegationAwarePToken.sol

/protocol/tokenization/PTokenSApe.sol

/protocol/tokenization/PYieldToken.sol

/protocol/tokenization/base/MintableIncentivizedERC721.sol

管理员权限控制:

onlyPoolAdmin

通过继承受影响:

/protocol/tokenization/NToken.sol

2涉及资产权限的接口文件

/interfaces/IPoolParameters.sol

通过继承受影响:

/interfaces/IPool.sol (Section 4展开)

/protocol/pool/PoolParameters.sol (Section 1已列出)

/interfaces/IPToken.sol

通过继承受影响:

/protocol/tokenization/PToken.sol (Section 1已列出)

3涉及资产权限的库文件

/protocol/libraries/logic/PoolLogic.sol

使用受影响合约:

/protocol/pool/PoolParameters.sol

/protocol/tokenization/libraries/MintableERC721Logic.sol

使用受影响合约:

/protocol/tokenization/base/MintableIncentivizedERC721.sol

4存放用户资产的线上合约

P2P Staking:

0xf090Eb4c2B63e7B26E8Bb09e6Fc0cC3A7586263B

权限:

0xca8678d2d273b1913148402aed2E99b085ea3F02 (TimeLockExecutor)

权限穿透:

0xe965198731CDdB2f06e91DD0CDff74b71e4b3714 (Safe多签钱包 4签5)

ParaSpace

ParaSpace

https://app.safe.global/settings/setup?safe=eth:0xe965198731CDdB2f06e91DD0CDff74b71e4b3714

TimeLockProxy:

0x59B72FdB45B3182c8502cC297167FE4f821f332d

无集权账号可直接提取资产

ParaSpace

PToken 的transferUnderlyingTo 和 transferOnLiquidation虽然可以转移资产,但只有 Pool 合约可以调用,其余对IncentivizedERC20的调用均为view只读权限

集权资产提取函数 rescueTokens 权限判断为继承自 IncentivizedERC20 的 onlyPoolAdmin

NToken 的transferUnderlyingTo 和 transferOnLiquidation虽然可以转移资产,但只有 Pool 合约可以调用

集权资产提取函数直接继承自 MintableIncentivizedERC721 的 rescueERC20,权限判断为 onlyPoolAdmin

经检查,列出的PToken/NToken 资产合约的管理权限均来自 ACLManager 远程读取

ACLManager合约地址:

0x42b0C49130162F949e82ba855C4eFF0C3Fd4C5cC

PToken和NToken架构图如下

ParaSpace

PToken和NToken高危财产函数传递关系

ParaSpace

ParaSpace

yubo.eth 对权限有绝对的控制力,并在5个月前将前文提到的Safe多签钱包

0xe965198731CDdB2f06e91DD0CDff74b71e4b3714

设置为了Admin,PoolAdmin和AssetListingAdmin

yubo.eth将ACLManager 的 ADDRESSES_PROVIDER 更改为了多签且 PoolAdmin 设置为了 TimeLockExecutor

ParaSpace

https://etherscan.io/tx/0xa511b88029ed090da4480504107a0f11e20758959b6b28ca983a134fc84e642c

Recap:

只要多签钱包

0xe965198731CDdB2f06e91DD0CDff74b71e4b3714

的4把私钥牢牢受 @yuboruan 和公司的控制,便可以保证用户的资产不会受到损失。

我会继续保持跟进此事进展。

转载声明:本文 由CoinON抓取收录,观点仅代表作者本人,不代表CoinON资讯立场,CoinON不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。若以此作为投资依据,请自行承担全部责任。

声明:图文来源于网络,如有侵权请联系删除

风险提示:投资有风险,入市需谨慎。本资讯不作为投资理财建议。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 2023年5月11日 上午11:31
下一篇 2023年5月11日 上午11:31

相关推荐

长推:ParaSpace合约硬核审查

星期四 2023-05-11 11:31:28

注:本文来自@0xjuu_17 推特,其是Hedgue crypto研究主管,原推文内容由MarsBit整理如下:

我花了8个小时,检查了210个合约文件,并对ParaSpace目前所有线上合约做了权限检查,大家看完之后便可以对 @yuboruan 和ParaSpace的用户资金安全情况消除怀疑:

源代码Github: https://github.com/para-space/paraspace-core

1涉及资产权限的合约文件

/apestaking/AutoCompoundApe.sol

管理员权限控制:

onlyPoolAdmin

/apestaking/AutoYieldApe.sol

管理员权限控制:

onlyPoolAdmin

/apestaking/P2PPairStaking.sol

管理员权限控制:

onlyOwner

/misc/ParaSpaceAirDrop.sol

管理员权限控制:

onlyOwner

/protocol/pool/PoolParameters.sol

管理员权限控制:

onlyPoolAdmin

/protocol/tokenization/PToken.sol

管理员权限控制:

onlyPoolAdmin

通过继承受影响:

/protocol/tokenization/DelegationAwarePToken.sol

/protocol/tokenization/PTokenSApe.sol

/protocol/tokenization/PYieldToken.sol

/protocol/tokenization/base/MintableIncentivizedERC721.sol

管理员权限控制:

onlyPoolAdmin

通过继承受影响:

/protocol/tokenization/NToken.sol

2涉及资产权限的接口文件

/interfaces/IPoolParameters.sol

通过继承受影响:

/interfaces/IPool.sol (Section 4展开)

/protocol/pool/PoolParameters.sol (Section 1已列出)

/interfaces/IPToken.sol

通过继承受影响:

/protocol/tokenization/PToken.sol (Section 1已列出)

3涉及资产权限的库文件

/protocol/libraries/logic/PoolLogic.sol

使用受影响合约:

/protocol/pool/PoolParameters.sol

/protocol/tokenization/libraries/MintableERC721Logic.sol

使用受影响合约:

/protocol/tokenization/base/MintableIncentivizedERC721.sol

4存放用户资产的线上合约

P2P Staking:

0xf090Eb4c2B63e7B26E8Bb09e6Fc0cC3A7586263B

权限:

0xca8678d2d273b1913148402aed2E99b085ea3F02 (TimeLockExecutor)

权限穿透:

0xe965198731CDdB2f06e91DD0CDff74b71e4b3714 (Safe多签钱包 4签5)

ParaSpace

ParaSpace

https://app.safe.global/settings/setup?safe=eth:0xe965198731CDdB2f06e91DD0CDff74b71e4b3714

TimeLockProxy:

0x59B72FdB45B3182c8502cC297167FE4f821f332d

无集权账号可直接提取资产

ParaSpace

PToken 的transferUnderlyingTo 和 transferOnLiquidation虽然可以转移资产,但只有 Pool 合约可以调用,其余对IncentivizedERC20的调用均为view只读权限

集权资产提取函数 rescueTokens 权限判断为继承自 IncentivizedERC20 的 onlyPoolAdmin

NToken 的transferUnderlyingTo 和 transferOnLiquidation虽然可以转移资产,但只有 Pool 合约可以调用

集权资产提取函数直接继承自 MintableIncentivizedERC721 的 rescueERC20,权限判断为 onlyPoolAdmin

经检查,列出的PToken/NToken 资产合约的管理权限均来自 ACLManager 远程读取

ACLManager合约地址:

0x42b0C49130162F949e82ba855C4eFF0C3Fd4C5cC

PToken和NToken架构图如下

ParaSpace

PToken和NToken高危财产函数传递关系

ParaSpace

ParaSpace

yubo.eth 对权限有绝对的控制力,并在5个月前将前文提到的Safe多签钱包

0xe965198731CDdB2f06e91DD0CDff74b71e4b3714

设置为了Admin,PoolAdmin和AssetListingAdmin

yubo.eth将ACLManager 的 ADDRESSES_PROVIDER 更改为了多签且 PoolAdmin 设置为了 TimeLockExecutor

ParaSpace

https://etherscan.io/tx/0xa511b88029ed090da4480504107a0f11e20758959b6b28ca983a134fc84e642c

Recap:

只要多签钱包

0xe965198731CDdB2f06e91DD0CDff74b71e4b3714

的4把私钥牢牢受 @yuboruan 和公司的控制,便可以保证用户的资产不会受到损失。

我会继续保持跟进此事进展。