CVE-2020-26242: Denial of Service in github.com/holiman/uint256

github.com/holiman/uint256 Updated 02 Oct 2025

Summary

28/07/2021
Yes i
Unrated
Not published

CVE-2020-26242: Denial of service in github.com/holiman/uint256. Affects github.com/holiman/uint256 versions >= 0.1.0, < 1.1.1. Fixed in 1.1.1. How to fix ↓

Also tracked for

The same CVE-2020-26242 is tracked separately for each ecosystem and vendor. Its fix information is the same; the package and affected versions differ.

Free scan

Check if this vulnerability affects your application

Upload a manifest or SBOM and we'll show whether you're affected, plus every other risky package in the same scan.

Check my app free

No signup required · Results in about 60 seconds

Sponsored Devnack Your last release was probably never penetration tested Manual testing by engineers who build software, not an auditor's checklist. Trusted by teams at Swift and Google Talk to Devnack

Background

The package github.com/holiman/uint256 is written in Go and provides functionality for working with 256-bit unsigned integers. It offers various mathematical operations such as addition, division, modulus, and multiplication. This package is vulnerable to a denial of service attack due to improper bounds checking in certain mathematical operations. If untrusted user inputs are processed using this package, an attacker can exploit this vulnerability to cause a panic and disrupt the application's normal functioning.

Vulnerability Detail

The vulnerability in github.com/holiman/uint256 arises from the lack of proper bounds checking in certain mathematical operations. This can lead to an out of bounds read, resulting in a panic. An attacker can leverage this vulnerability to launch a denial of service attack by providing malicious inputs that trigger the panic. The impact of this vulnerability can be severe, as it can cause the affected application to become unresponsive or crash, leading to service disruption. The vulnerability has been assigned the identifier CVE-2020-26242 and is also tracked as GHSA-jm5c-rv3w-w83m.

How To Fix

Minimum fixed version

1.1.1

This is the first release that contains the fix.

go get github.com/holiman/uint256@v1.1.1

Tip — Not sure which version your app runs? Vulert can match this fix to it. Scan free →

Workaround

If updating the package is not immediately feasible, a possible workaround is to implement additional input validation and bounds checking in the application code that utilizes the github.com/holiman/uint256 package. By validating and sanitizing user inputs before passing them to the vulnerable operations, the risk of triggering the vulnerability can be mitigated. Here is an example of how input validation can be performed for the 'AddMod' operation:

def func AddModWrapper(a, b, modulus *uint256.Int) *uint256.Int {
    if a == nil || b == nil || modulus == nil {
        // Handle invalid inputs
        return nil
    }
    // Perform input validation and bounds checking
    if a.Cmp(modulus) >= 0 || b.Cmp(modulus) >= 0 {
        // Handle out of bounds inputs
        return nil
    }
    // Call the vulnerable operation
    return a.AddMod(b, modulus)
}

Conclusion

The vulnerability in github.com/holiman/uint256 can lead to a denial of service attack if untrusted user inputs are processed using this package. It is crucial to update the package to version 1.1.1 or later to mitigate the vulnerability. Alternatively, implementing additional input validation and bounds checking in the application code can provide a temporary workaround. For further assistance and support in addressing this vulnerability, please contact DevNack.com.

See every vulnerability recorded for github.com/holiman/uint256 →

Share this vulnerability

FAQ

The vulnerability in github.com/holiman/uint256 can be exploited by an attacker to launch a denial of service attack. By providing malicious inputs, the attacker can trigger a panic and cause the affected application to become unresponsive or crash, resulting in service disruption.

To fix this vulnerability, update the github.com/holiman/uint256 package to version 1.1.1 or later. This update includes proper bounds checking in the affected mathematical operations, preventing the vulnerability from being exploited.

If updating the package is not immediately feasible, you can implement additional input validation and bounds checking in your application code that uses the github.com/holiman/uint256 package. By validating and sanitizing user inputs, you can mitigate the risk of triggering the vulnerability.

While the details of any known exploits for this vulnerability are not provided, it is important to address the vulnerability promptly by updating the package to the fixed version or implementing the recommended workarounds.

You can find more information about this vulnerability, including its impact and the fixed version of the package, in the vulnerability report available at the following URL: https://pkg.go.dev/vuln/GO-2021-0103

How To Fix

Minimum fixed version

1.1.1

This is the first release that contains the fix.

go get github.com/holiman/uint256@v1.1.1

Tip — Not sure which version your app runs? Vulert can match this fix to it. Scan free →

Subscribe to Vulert on Telegram
Daily digest of new CVEs, critical and high severity, affected packages and fixes — plus a weekly roundup.
Join the channel →
Help improve this record
Report an issue or send feedback