GHSA-cvj7-5f3c-9vg9

    Dashboard / Vulnerabilities / GHSA-cvj7-5f3c-9vg9

    GHSA-cvj7-5f3c-9vg9

    Published: 24 May 2022Last Modified: 8 Nov 2023

    Summary: AttesterSlashing number overflow

    Details: ### Impact Possible consensus split given maliciously-crafted `AttesterSlashing` or `ProposerSlashing` being included on-chain. Since we represent `uint64` values as native javascript `number`s, there is an issue when those variables with large (greater than 2^53) `uint64` values are included on chain. In those cases, Lodestar may view _valid_ `AttesterSlashing` or `ProposerSlashing` as _invalid_, due to rounding errors in large `number` values. This causes a consensus split, where Lodestar nodes are forked away from the main network. Similarly Lodestar may consider _invalid_ `ProposerSlashing` as _valid_, thus including in proposed blocks that will be considered invalid by the network. ### Patches https://github.com/ChainSafe/lodestar/pull/3977 ### Workarounds Use `BigInt` to represent `Slot` and `Epoch` values in `AttesterSlashing` and `ProposerSlashing` objects. `BigInt` is too slow to be used in all `Slot` and `Epoch` cases, so we will carefully use `BigInt` just where necessary for consensus.

    Affected packages

    Package

    Name: @chainsafe/lodestar

    Purl: pkg:npm/%40chainsafe/lodestar

    Affected ranges

    Type: SEMVER

    Events:

    Introduced- 0
    Fixed -0.36.0

    Affected versions

    Common Vulnerability Scoring System

    Attack Vector
    Network
    Adjacent
    Local
    Physical
    Privileges Required
    None
    Low
    High
    User Interaction
    None
    Required
    Scope
    Unchanged
    Changed
    Confidentiality
    None
    Low
    High
    Integrity
    None
    Low
    High
    Availability
    None
    Low
    High
    GHSA-cvj7-5f3c-9vg9 | CVE-DB