CLIENT SECURITY

Geth vulnerabilities by version

By Michael Lip (Mike), independent smart contract security researcher. Data fetched 2026-11-08.

Geth (go-ethereum) is an Ethereum execution client. The tables below map its published security issues to versions, from three sources: the 17 advisories published on the ethereum/go-ethereum GitHub repository, the 26 ids for go-ethereum in the GitHub advisory database, and the 12 entries in the Geth team's own vulnerabilities.json file. The three sources disagree on severity and coverage; the merged table shows both severity labels side by side.

On this page Version lookup Method Key findings Merged table All releases Fix ladder If you run a node Limitations

Look up a Geth version

Enter a Geth version such as 1.16.8, v1.13.15 or a client string like Geth/v1.16.8-stable/linux-amd64/go1.22.1.

The lookup reads the version number only. A suffix such as -stable or -unstable is ignored, and so is the rest of a client string after the version. For a client string with a node name, such as Geth/mynode/v1.16.8-stable/linux-amd64/go1.22.1, the name is skipped.

How we know these numbers

We pulled the 17 advisories from the GitHub Security Advisory API for the ethereum/go-ethereum repository, the 26 ids from the GitHub advisory database for ecosystem go and package github.com/ethereum/go-ethereum, and the 12 entries from the Geth site's vulnerabilities.json file. All three were fetched 2026-11-08. A second fetch on 2026-11-08 at 03:34 UTC gave the same records, and the release dates come from the Geth releases list on GitHub. Ranges, severities and patched versions are shown verbatim from each record. The per-release table applies the affected version range of each of the 17 repository advisories (for example ">= 1.10.0, < 1.10.8") to each release. The lookup uses the ranges of the 26 GitHub advisory database ids instead.

Key findings

The merged advisory table (all three sources)

One row per GitHub advisory database id, plus the one vulnerabilities.json entry that appears in neither GitHub source (GETH-2021-01). "Repository range" and "maintainer severity" come from the ethereum/go-ethereum repository advisory record; "database range" and "database severity" come from the GitHub advisory database record. Seven ids show a different severity in the database than in the repository record. Six ids list no patched version in the GitHub database.

GHSA idCVERepository rangeMaintainer severityDatabase rangeDatabase severityFirst patchedGETH uidGETH severityGETH introducedGETH fixedWhat it was
GHSA-m6j8-rg6r-7mv8CVE-2026-26315<= 1.16.8medium<= 1.16.8medium1.16.9————Improper ECIES Public Key Validation in RLPx Handshake
GHSA-2gjw-fg97-vg3rCVE-2026-26314<= 1.16.8high<= 1.16.8high1.16.9————DoS via malicious p2p message
GHSA-689v-6xwf-5jf3CVE-2026-26313< 1.17.0medium< 1.17.0medium1.17.0————DoS via malicious p2p message
GHSA-mq3p-rrmp-79jgCVE-2026-22868<= 1.16.7medium<= 1.16.7high1.16.8————DoS via malicious p2p message
GHSA-mr7q-c9w9-wh4hCVE-2026-22862<= 1.16.7high<= 1.16.7high1.16.8————DoS via malicious p2p message
GHSA-q26p-9cq4-7fc2CVE-2025-24883>= 1.14.0, < 1.14.13high>= 1.14.0, < 1.14.13medium1.14.13————DoS via malicious p2p message
GHSA-4xc9-8hmq-j652CVE-2024-32972< 1.13.15high< 1.13.15high1.13.15GETH-2024-01Highv1.10.0v1.13.15DoS via malicious p2p message
GHSA-v9jh-j8px-98vqCVE-2023-42319not in repository advisories—<= 1.13.4highno patched version listed————go-ethereum vulnerable to denial of service via crafted GraphQL query
GHSA-ppjg-v974-84cmCVE-2023-40591>= 1.10.0, < 1.12.1high< 1.12.1-stablehigh1.12.1-stableGETH-2023-01Highv1.10.0v1.12.1DoS via malicious p2p message
GHSA-rqmg-hrg4-fm69CVE-2022-37450not in repository advisories—<= 1.10.21mediumno patched version listed————Go Ethereum allows attackers to use manipulation of time-difference values to achieve replacement of main-chain blocks
GHSA-wjxw-gh3m-7pm5CVE-2022-29177< 1.10.17low< 1.10.17medium1.10.17GETH-2022-01Lowv1.10.0v1.10.17DoS via malicious p2p message
GHSA-p5gc-957x-gfw9CVE-2018-12018not in repository advisories—< 1.8.11high1.8.11————Go Ethereum LES protocol implementation vulnerable to Denial of Service
GHSA-vrcc-g6vj-mh5wCVE-2021-42219not in repository advisories—<= 1.10.9highno patched version listed————Denial of service in go-ethereum
GHSA-pvx3-gm3c-gmprCVE-2022-23327not in repository advisories—<= 1.10.12highno patched version listed————Denial of Service in Go-Ethereum
GHSA-vmf7-hmh6-vv57CVE-2022-23328not in repository advisories—<= 1.10.16highno patched version listed————Denial of Service in Go-Ethereum
GHSA-5m8f-chrv-7rw5CVE-2021-43668not in repository advisories—<= 1.10.9mediumno patched version listed————Denial of Service in Go-Ethereum
GHSA-59hh-656j-3p7vCVE-2021-41173< 1.10.9medium< 1.10.9medium1.10.9GETH-2021-03Mediumv1.10.0v1.10.9DoS via malicious snap/1 request
GHSA-9856-9gg9-qcmqCVE-2021-39137>= 1.10.0, < 1.10.8high>= 1.10.0, < 1.10.8medium1.10.8GETH-2021-02Highv1.10.0v1.10.8RETURNDATA corruption via datacopy
GHSA-9h4h-8w5p-f28wCVE-2018-19184not in repository advisories—< 1.8.14high1.8.14————Go Ethereum Denial of Service
GHSA-xw37-57qp-9mm4CVE-2020-26265>= v1.9.4, < 1.9.20high>= 1.9.4, < 1.9.20medium1.9.20GETH-2020-06Highv1.9.4v1.9.20Consensus flaw during block processing
GHSA-r33q-22hv-j29qCVE-2020-26264< 1.9.25medium< 1.9.25medium1.9.25GETH-2020-05Mediumv1.8.0v1.9.25LES Server DoS via GetProofsV2
GHSA-m6gx-rhvj-fh52—< 1.9.24critical< 1.9.24critical1.9.24GETH-2020-02Criticalv0.0.0v1.9.24Denial of service due to Go CVE-2020-28362
GHSA-jm5c-rv3w-w83mCVE-2020-26242>= 1.9.16, < 1.9.18high>= 1.9.16, < 1.9.18medium1.9.18GETH-2020-04Criticalv1.9.16v1.9.18Denial of service via `MulMod`
GHSA-69v6-xc2j-r2jfCVE-2020-26241>= 1.9.7, < 1.9.17high>= 1.9.7, < 1.9.17medium1.9.17GETH-2020-03Criticalv1.9.7v1.9.17Shallow copy in the 0x4 precompile could lead to EVM memory corruption
GHSA-v592-xf75-856pCVE-2020-26240< 1.9.24medium< 1.9.24medium1.9.24GETH-2020-01Mediumv1.6.0v1.9.24Ethash DAG generation bug can cause miners to create invalid PoW
GHSA-qr2j-wrhx-4829CVE-2018-16733not in repository advisories—< 1.8.14high1.8.14————Go Ethereum Improper Input Validation
——not in either GitHub source—not in either GitHub source——GETH-2021-01Highv1.10.1v1.10.6The client is not ready for the 'London' technical upgrade, and will deviate from the canonical chain when the London upgrade occurs (at block '12965000' around August 4, 2021.

Notes on individual ids. GHSA-v9jh-j8px-98vq (CVE-2023-42319, GraphQL DoS): the record adds this note (the inner quotation mark is not closed in the record): NOTE: the vendor's position is that the "graphql endpoint [is not] designed to withstand attacks by hostile clients, nor handle huge amounts of clients/traffic. The record lists no patched version. Six ids (GHSA-v9jh, GHSA-rqmg, GHSA-vrcc, GHSA-pvx3, GHSA-vmf7 and GHSA-5m8f) have no patched version in the GitHub database. Their ranges end at an upper bound such as <= 1.10.21. This means that the database lists no fix. It does not mean that current versions are affected. This page does not call these issues confirmed. GHSA-m6gx-rhvj-fh52 (denial of service due to Go CVE-2020-28362): whether a build is exposed depends on the Go version that built Geth, because the bug is in Go. Both GitHub records rate it critical. The GitHub database record has no CVE id. The repository record and vulnerabilities.json (GETH-2020-02) give CVE-2020-28362. GETH-2021-01 (not ready for London upgrade) appears only in vulnerabilities.json. GitHub has no advisory record for it.

The Geth disclosures page says: "As of version 1.9.25 , Geth has a built-in command to check whether it is affected by any publicly disclosed vulnerability, using the command geth version-check ." That command fetches the vulnerabilities.json file. The file stops at GETH-2024-01 (published 2024-05-06). It does not list the six repository advisories published after it, one in 2025 (GHSA-q26p) and five in 2026. So geth version-check alone does not report them.

Stable Geth releases v1.9.0 to v1.17.10 and their repository advisories

125 stable releases from v1.9.0 to v1.17.10, checked against the 17 repository advisory ranges. "First in line" marks the first release (x.y.0) of each minor line. The fix ladder below names the newest release of each line. The table starts at v1.9.0. Older releases are not listed here; the lookup above accepts them. The nine global-only ids are not counted in this table.

ReleasePublishedRepository advisories in range (of 17)
v1.9.0 first in line2019-07-101 critical 3 high 6 medium 1 low
v1.9.12019-07-241 critical 3 high 6 medium 1 low
v1.9.22019-08-131 critical 3 high 6 medium 1 low
v1.9.32019-09-031 critical 3 high 6 medium 1 low
v1.9.42019-09-191 critical 4 high 6 medium 1 low
v1.9.52019-09-201 critical 4 high 6 medium 1 low
v1.9.62019-10-031 critical 4 high 6 medium 1 low
v1.9.72019-11-071 critical 5 high 6 medium 1 low
v1.9.82019-11-261 critical 5 high 6 medium 1 low
v1.9.92019-12-061 critical 5 high 6 medium 1 low
v1.9.102020-01-201 critical 5 high 6 medium 1 low
v1.9.112020-02-181 critical 5 high 6 medium 1 low
v1.9.122020-03-161 critical 5 high 6 medium 1 low
v1.9.132020-04-161 critical 5 high 6 medium 1 low
v1.9.142020-05-131 critical 5 high 6 medium 1 low
v1.9.152020-06-081 critical 5 high 6 medium 1 low
v1.9.162020-07-101 critical 6 high 6 medium 1 low
v1.9.172020-07-201 critical 5 high 6 medium 1 low
v1.9.182020-07-271 critical 4 high 6 medium 1 low
v1.9.192020-08-111 critical 4 high 6 medium 1 low
v1.9.202020-08-251 critical 3 high 6 medium 1 low
v1.9.212020-09-091 critical 3 high 6 medium 1 low
v1.9.222020-09-281 critical 3 high 6 medium 1 low
v1.9.232020-10-151 critical 3 high 6 medium 1 low
v1.9.242020-11-123 high 5 medium 1 low
v1.9.252020-12-113 high 4 medium 1 low
v1.10.0 first in line2021-03-035 high 4 medium 1 low
v1.10.12021-03-085 high 4 medium 1 low
v1.10.22021-04-085 high 4 medium 1 low
v1.10.32021-05-055 high 4 medium 1 low
v1.10.42021-06-175 high 4 medium 1 low
v1.10.52021-07-145 high 4 medium 1 low
v1.10.62021-07-225 high 4 medium 1 low
v1.10.72021-08-125 high 4 medium 1 low
v1.10.82021-08-244 high 4 medium 1 low
v1.10.92021-09-294 high 3 medium 1 low
v1.10.102021-10-154 high 3 medium 1 low
v1.10.112021-10-204 high 3 medium 1 low
v1.10.122021-11-084 high 3 medium 1 low
v1.10.132021-11-244 high 3 medium 1 low
v1.10.142021-12-234 high 3 medium 1 low
v1.10.152022-01-054 high 3 medium 1 low
v1.10.162022-02-164 high 3 medium 1 low
v1.10.172022-03-294 high 3 medium
v1.10.182022-05-254 high 3 medium
v1.10.192022-06-154 high 3 medium
v1.10.202022-06-294 high 3 medium
v1.10.212022-07-274 high 3 medium
v1.10.222022-08-224 high 3 medium
v1.10.232022-08-244 high 3 medium
v1.10.242022-09-144 high 3 medium
v1.10.252022-09-154 high 3 medium
v1.10.262022-11-034 high 3 medium
v1.11.0 first in line2023-02-154 high 3 medium
v1.11.12023-02-164 high 3 medium
v1.11.22023-02-224 high 3 medium
v1.11.32023-03-074 high 3 medium
v1.11.42023-03-104 high 3 medium
v1.11.52023-03-214 high 3 medium
v1.11.62023-04-204 high 3 medium
v1.12.0 first in line2023-05-254 high 3 medium
v1.12.12023-08-103 high 3 medium
v1.12.22023-08-123 high 3 medium
v1.13.0 first in line2023-09-123 high 3 medium
v1.13.12023-09-173 high 3 medium
v1.13.22023-09-283 high 3 medium
v1.13.32023-10-123 high 3 medium
v1.13.42023-10-173 high 3 medium
v1.13.52023-11-143 high 3 medium
v1.13.62023-12-183 high 3 medium
v1.13.72023-12-193 high 3 medium
v1.13.82023-12-223 high 3 medium
v1.13.92024-01-103 high 3 medium
v1.13.102024-01-113 high 3 medium
v1.13.112024-01-243 high 3 medium
v1.13.122024-02-093 high 3 medium
v1.13.132024-02-213 high 3 medium
v1.13.142024-02-273 high 3 medium
v1.13.152024-04-172 high 3 medium
v1.14.0 first in line2024-04-243 high 3 medium
v1.14.22024-05-083 high 3 medium
v1.14.32024-05-093 high 3 medium
v1.14.42024-06-053 high 3 medium
v1.14.52024-06-063 high 3 medium
v1.14.62024-07-023 high 3 medium
v1.14.72024-07-113 high 3 medium
v1.14.82024-08-123 high 3 medium
v1.14.92024-09-183 high 3 medium
v1.14.102024-09-273 high 3 medium
v1.14.112024-10-013 high 3 medium
v1.14.122024-11-193 high 3 medium
v1.14.132025-01-302 high 3 medium
v1.15.0 first in line2025-02-062 high 3 medium
v1.15.12025-02-132 high 3 medium
v1.15.22025-02-172 high 3 medium
v1.15.32025-02-252 high 3 medium
v1.15.42025-03-012 high 3 medium
v1.15.52025-03-052 high 3 medium
v1.15.62025-03-252 high 3 medium
v1.15.72025-03-312 high 3 medium
v1.15.82025-04-112 high 3 medium
v1.15.92025-04-212 high 3 medium
v1.15.102025-04-252 high 3 medium
v1.15.112025-05-052 high 3 medium
v1.16.0 first in line2025-06-262 high 3 medium
v1.16.12025-07-022 high 3 medium
v1.16.22025-08-042 high 3 medium
v1.16.32025-09-022 high 3 medium
v1.16.42025-09-262 high 3 medium
v1.16.52025-10-162 high 3 medium
v1.16.62025-11-032 high 3 medium
v1.16.72025-11-042 high 3 medium
v1.16.82026-01-131 high 2 medium
v1.16.92026-02-171 medium
v1.17.0 first in line2026-02-170 in range
v1.17.12026-03-030 in range
v1.17.22026-03-300 in range
v1.17.32026-05-110 in range
v1.17.42026-06-220 in range
v1.17.52026-07-270 in range
v1.17.62026-09-230 in range
v1.17.72026-09-300 in range
v1.17.82026-10-080 in range
v1.17.92026-10-210 in range
v1.17.102026-10-230 in range

The fix ladder by minor line

No release of the lines v1.9.x to v1.16.x is clear of the 17 repository advisories. The newest release of each of these lines is still in the range of at least one advisory. The first clear release is v1.17.0.

Minor lineLast vulnerable releaseFirst release clear of all 17Repository advisories affecting this line
v1.9.xv1.9.25none in this line14
v1.10.xv1.10.26none in this line10
v1.11.xv1.11.6none in this line7
v1.12.xv1.12.2none in this line7
v1.13.xv1.13.15none in this line6
v1.14.xv1.14.13none in this line6
v1.15.xv1.15.11none in this line5
v1.16.xv1.16.9none in this line5
v1.17.xnonev1.17.00

What this means if you run a node

The Geth SECURITY.md file says: "We recommend using the most recently released version." On 2026-11-08 that was v1.17.10 (published 2026-10-23). If a specific fork, tooling pin or chain requirement forces an older line, there is no release in that line that clears all 17 repository advisories; check the merged table for what still applies. Four of the five repository advisories published in 2026 have the title "DoS via malicious p2p message". The fifth concerns ECIES public key validation in the RLPx handshake.

Limitations

This page reflects the three sources as fetched on 2026-11-08. The Geth disclosure policy says: "If we silently fix a vulnerability and include the fix in release X , then, After 4-8 weeks, we will disclose that X contained a security-fix. After an additional 4-8 weeks, we will publish the details about the vulnerability." So a current release can contain a fix that no advisory lists yet. The per-release table counts, for each release, the repository advisories whose range includes that exact release. The three sources can give different ranges for the same issue. For GHSA-4xc9-8hmq-j652, vulnerabilities.json (GETH-2024-01) says introduced v1.10.0 and fixed v1.13.15, while the GitHub records say < 1.13.15 with no lower bound. The lookup and the tables use the GitHub ranges and show the vulnerabilities.json range in its own columns.

Related: Solidity compiler bugs by version, Vyper compiler bugs by version, OpenZeppelin Contracts vulnerabilities by version.