# [2023-06-Llama] Presorting **Contest repo:** https://github.com/code-423n4/2023-06-llama **Findings repo:** https://github.com/code-423n4/2023-06-llama-findings **Judging by:** [Picodes](https://twitter.com/thePicodes) (Discord: `thepicodes`) **Pre-sorting by:** [sorryNotsorry](https://twitter.com/0xSorryNotSorry) (Discord: `0xsorrynotsorry`) # High Severity Primary Submissions (15) ## [[H-256] User ETH will be stacked on Executor contract if the target script doesn't handle ETH.](https://github.com/code-423n4/2023-06-llama-findings/issues/256) ## [[H-247] It is not possible to execute actions that require ETH (or other protocol token)](https://github.com/code-423n4/2023-06-llama-findings/issues/247) ## [[H-244] Functions modified by `LlamaAccount.onlyLlama` can be called by contracts other than `LlamaCore`.](https://github.com/code-423n4/2023-06-llama-findings/issues/244) ## [[H-229] llamaExecutor address can be set by anyone, giving further privilege to onlyLlama accessed functions(Sponsor confirmed in DM)](https://github.com/code-423n4/2023-06-llama-findings/issues/229) ## [[H-203] In `LlamaRelativeQuorum`, the governance result might be incorrect as it counts the wrong approval/disapproval.](https://github.com/code-423n4/2023-06-llama-findings/issues/203) ## [[H-126] Delegatecalls to contracts which have different storage layouts will cause unexpected behavor. Whitelisting of delegate-callable targets is required like LlamaCore.authorizeScript().](https://github.com/code-423n4/2023-06-llama-findings/issues/126) ## [[H-109] Llama Core and Policy implementation not only minimal proxy should not be allowed to be authorized as scripts](https://github.com/code-423n4/2023-06-llama-findings/issues/109) ## [[H-104] Role might be granted and revoked at the same block to manipulate the role supply and result in incorrect behavior of relative strategy](https://github.com/code-423n4/2023-06-llama-findings/issues/104) ## [[H-83] The initial total supply of the role can be miscalculated in some cases](https://github.com/code-423n4/2023-06-llama-findings/issues/83) ## [[H-76] Expired role holder still can vote](https://github.com/code-423n4/2023-06-llama-findings/issues/76) ## [[H-62] Anyone can change approval/disapproval threshold for any action using LlamaRelativeQuorum strategy.](https://github.com/code-423n4/2023-06-llama-findings/issues/62) ## [[H-52] Execution of actions will always revert when minDisapprovals set to Zero.](https://github.com/code-423n4/2023-06-llama-findings/issues/52) ## [[H-34] cloneDeterministic can be frontrun to grief](https://github.com/code-423n4/2023-06-llama-findings/issues/34) ## [[H-31] Llama could be accounting for policy holders whose role already expired](https://github.com/code-423n4/2023-06-llama-findings/issues/31) ## [[H-27] [H-01] Guards can be bypassed by manipulating data input](https://github.com/code-423n4/2023-06-llama-findings/issues/27) # Medium Severity Primary Submissions (35) ## [[M-296] NATIVE TOKENS COULD GET STUCK INSIDE THE `LlamaCore` CONTRACT SINCE THERE IS NO WITHDRAWAL MECHANISM](https://github.com/code-423n4/2023-06-llama-findings/issues/296) ## [[M-287] expirationPeriod in the strategy contracts is not checked when calling LlamaCore.execute](https://github.com/code-423n4/2023-06-llama-findings/issues/287) ## [[M-282] Blacklisted Address Can Exploit the Exchange](https://github.com/code-423n4/2023-06-llama-findings/issues/282) ## [[M-262] Gas griefing/thief in LlamaAccount execute()](https://github.com/code-423n4/2023-06-llama-findings/issues/262) ## [[M-259] LlamaPolicyMetadata.tokenURI() name is missing escapeJSON](https://github.com/code-423n4/2023-06-llama-findings/issues/259) ## [[M-254] `LlamaPolicyMetadata.contractURI()` can return corrupted JSON data](https://github.com/code-423n4/2023-06-llama-findings/issues/254) ## [[M-241] Unsafe delegatecall functionality can break core protocol functionality](https://github.com/code-423n4/2023-06-llama-findings/issues/241) ## [[M-223] User with disapproval role can gas grief the action executor](https://github.com/code-423n4/2023-06-llama-findings/issues/223) ## [[M-213] Check for role expiration is not implemented during action creation/approval/disapproval.](https://github.com/code-423n4/2023-06-llama-findings/issues/213) ## [[M-209] A policyholder could prevent revoking his expired role by frontrunning.](https://github.com/code-423n4/2023-06-llama-findings/issues/209) ## [[M-208] In `LlamaCore`, the approval/disapproval logic by sig wouldn't work properly when the policyholder adds two or more off-chain signatures using one nonce.](https://github.com/code-423n4/2023-06-llama-findings/issues/208) ## [[M-207] The action creators can't approve their actions in the same block.](https://github.com/code-423n4/2023-06-llama-findings/issues/207) ## [[M-206] The `forceApproval/forceDisapproval` role holders might be unable to approve/disapprove if they were approved/disapproved with the normal `approval/disapproval` role already.](https://github.com/code-423n4/2023-06-llama-findings/issues/206) ## [[M-205] In `LlamaCore.sol`, there is no option to remove the strategies.](https://github.com/code-423n4/2023-06-llama-findings/issues/205) ## [[M-198] Potential selector collision in LlamaCore when calling the `receive` function](https://github.com/code-423n4/2023-06-llama-findings/issues/198) ## [[M-183] In LlamaCore.executeAction() function, failed transfer with low level call could be overlooked](https://github.com/code-423n4/2023-06-llama-findings/issues/183) ## [[M-182] Policy holders should have the option to revoke their roles if they want to](https://github.com/code-423n4/2023-06-llama-findings/issues/182) ## [[M-168] Reverting on disapprovalPolicySupply == 0 if disapproving is disabled is unnecessary and can lead to DoS](https://github.com/code-423n4/2023-06-llama-findings/issues/168) ## [[M-151] Cross-chain replay attacks are possible](https://github.com/code-423n4/2023-06-llama-findings/issues/151) ## [[M-147] Sanity check for forced approval/disapproval roles.](https://github.com/code-423n4/2023-06-llama-findings/issues/147) ## [[M-140] Executor is forced to create and assign disapproval role even though they choose to disable disapproval.](https://github.com/code-423n4/2023-06-llama-findings/issues/140) ## [[M-138] Frontrunning of createAction by choosing different strategy according to his interests.](https://github.com/code-423n4/2023-06-llama-findings/issues/138) ## [[M-125] LlamaAccount.execute with delegatecall=true allows to update the storage on the ERC1967 implementation slot](https://github.com/code-423n4/2023-06-llama-findings/issues/125) ## [[M-82] LlamaAccount doesn't implement supportsInterface function which is needed according to EIP721, and EIP1155](https://github.com/code-423n4/2023-06-llama-findings/issues/82) ## [[M-80] Users still can disapprove action after minExecutionTime has passed](https://github.com/code-423n4/2023-06-llama-findings/issues/80) ## [[M-77] `executeAction` function doesn't check if script is authorized](https://github.com/code-423n4/2023-06-llama-findings/issues/77) ## [[M-64] LlamaPolicy could be DOS by creating large amount of actions.](https://github.com/code-423n4/2023-06-llama-findings/issues/64) ## [[M-61] No function to adjust `minApprovals/minDisapprovals` thresholds](https://github.com/code-423n4/2023-06-llama-findings/issues/61) ## [[M-59] [M-03] Rounding up of minimum disapproval needed could affect disapproval process](https://github.com/code-423n4/2023-06-llama-findings/issues/59) ## [[M-55] Signature cancelation can be front-run.](https://github.com/code-423n4/2023-06-llama-findings/issues/55) ## [[M-51] Action states mismatch between LlamaCore and LlamaStrategy](https://github.com/code-423n4/2023-06-llama-findings/issues/51) ## [[M-41] Inadequate Access Control](https://github.com/code-423n4/2023-06-llama-findings/issues/41) ## [[M-36] Use safeTransferFrom Instead of transferFrom for ERC721](https://github.com/code-423n4/2023-06-llama-findings/issues/36) ## [[M-11] [M-02] Any policy holders with same permissions can queue actions for other policy holders](https://github.com/code-423n4/2023-06-llama-findings/issues/11) ## [[M-10] [M-01] Owner can be uncessarily DoSed from setting roles for policy holders](https://github.com/code-423n4/2023-06-llama-findings/issues/10)