Implementation contract and delegatecall

I wanted to know if there are any attack vector a malicious actor could use to potentially exploit or attack an impl contract with the delegatecall function below:

function multicall(bytes[] calldata data) external returns (bytes[] memory results) {
        results = new bytes[](data.length);
        for (uint256 i = 0; i < data.length; i++) {
            // this is an optimized a bit multicall w/o using of Address library (it safes a lot of bytecode)
            results[i] = _fastDelegateCall(data[i]);
        return results;

    function _fastDelegateCall(bytes memory data) private returns (bytes memory _result) {
        (bool success, bytes memory returnData) = address(this).delegatecall(data);
        if (success) {
            return returnData;
        if (returnData.length > 0) {
            assembly {
                revert(add(32, returnData), mload(returnData))
        } else {

function multicall() is a public function, I was wondering if it could be abused by a malicious actor?

edit: wait.. you're using address(this).. so you're executing a delegate on the contract itself. It would behave the same as calling the function directly.

If it would have been an external contract that contract would have been able to override the owner variable inside your contract so wouldn't be safe. However as you are just calling your contract's functions

(urg mobile, sorry for the edits :frowning: )