Unclear usage of payable functions involved in the "bridge in" flow #112
Labels
bug
Something isn't working
duplicate
This issue or pull request already exists
QA (Quality Assurance)
Assets are not at risk. State handling, function incorrect as to spec, issues with clarity, syntax
Lines of code
https://github.com/code-423n4/2022-10-holograph/blob/main/contracts/module/LayerZeroModule.sol#L185
https://github.com/code-423n4/2022-10-holograph/blob/main/contracts/module/LayerZeroModule.sol#L221
https://github.com/code-423n4/2022-10-holograph/blob/main/contracts/HolographOperator.sol#L420
https://github.com/code-423n4/2022-10-holograph/blob/main/contracts/HolographOperator.sol#L465
Vulnerability details
The function
lzReceive
inLayerZeroModule
is marked as payable but doesn't forward the value to the operator when callingcrossChainMessage
. The operator forwards the value to the bridge in theexecuteJob
function (it first forwards the value to thenonRevertingBridgeCall
function then this function forwards it again in the low level code in line 465), but this value corresponds to the value sent by the originator of the job execution (the operator in charge of this job) and isn't related to the event received in theLayerZeroModule
contract.The text was updated successfully, but these errors were encountered: