CREATEF
9/20/2023Ethereum Community Archives is an organization that aggregates and propagates specifications and standards for the Ethereum Ecosystem from other processes and groups.
7/21/2023Objective Reformulate the EOF container to provide efficient access without validation, to support features such as banning code introspection and non-validated execution. Specification container := header, managed_body, unmanaged_body header := magic, version, kind_container, container_end_index, kind_code, num_code_sections, code_index+, kind_data, data_index, terminator managed_body := types_section, code_section+, data_section types_section := (inputs, outputs, max_stack_height)+ The types kind is removed with a container kind, where the
1/5/2023Executive Summary Because of a flaw in handling unsigned data as signed data a properly coded smart contract can create a function call that will return more gas than was passed in. This excess gas can be used to create a loop that is in effect infinite. Networks containing only Besu validators will halt when this code is executed on-chain or considered for block inclusion. This bug was patched in Hyperledger Besu version 22.7.1 and exists in versions 22.4.0 to 22.7.0. CVE-2022-36025 Gas Call Bug The origins of the bug comes from a mis-handling of unsigned data as signed data. As part of supporting EIP-4803 Limit transaction gas to a maximum of 2^63-1 Besu migrated the internal types of Gas from a UInt256 object to a native long field, which is a signed value that can support the full range of transaction gas. In instances where the gas needed to represent a higher value Besu clamped the values to 2^63-1, aka Long.MAX_VALUE. Because all EVM executions will have the intrinsic gas costs deducted this clamped value will always exceed any observed gas value. The original code used a conversion that would take any 64 bit or less value and place it directly to a signed long. Any 65-256 bit sized number would result in an exception that would be trapped out and clamped to the max value. But any value of exactly 64 bits would become a negative signed long value.
9/21/2022