Skip to content
Heist/ feed
Back to feed
Medium

Security advisory

Type: advisorySources: OSVCVE: CVE-2020-15106

In etcd before versions 3.3.23 and 3.4.10, a large slice causes panic in decodeRecord method. The size of a record is stored in the length field of a WAL file and no additional validation is done on this data. Therefore, it is possible to forge an extremely large frame size that can unintentionally panic at the expense of any RAFT participant trying to decode the WAL.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2020-15106, CVE-2020-15112
Confirmed fixed CVEs
Not specified
Updated in this feed
31 Oct 2026, 10:51 UTC · Revision 1

Source evidence

CVE-2020-15106

core-osv · Original source

Published 5 Aug 2020, 19:15 UTC

In etcd before versions 3.3.23 and 3.4.10, a large slice causes panic in decodeRecord method. The size of a record is stored in the length field of a WAL file and no additional validation is done on this data. Therefore, it is possible to forge an extremely large frame size that can unintentionally panic at the expense of any RAFT participant trying to decode the WAL.

osv:CVE-2020-15106
Complete source record
{
  "id": "628073838ecdb35a5274b28ef378e06159ae66e569737f462c97c660fb522695",
  "url": "https://osv.dev/vulnerability/CVE-2020-15106",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "CVE-2020-15106",
    "summary": "In etcd before versions 3.3.23 and 3.4.10, a large slice causes panic in decodeRecord method. The size of a record is stored in the length field of a WAL file and no additional validation is done on this data. Therefore, it is possible to forge an extremely large frame size that can unintentionally panic at the expense of any RAFT participant trying to decode the WAL.",
    "evidence": "osv:CVE-2020-15106",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2020-15106",
      "aliases": [
        "BIT-etcd-2020-15106",
        "BIT-etcd-2020-15112",
        "CVE-2020-15106",
        "CVE-2020-15112",
        "GHSA-m332-53r6-2w93",
        "GHSA-p4g4-wgrh-qrg2",
        "GO-2020-0005"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/etcd-io/etcd",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "4873f5516bd98c82dddb81247038337f25abac4e"
                },
                {
                  "introduced": "898bd1351fcf6e0ebce8d7c8bbbbf3f3e42aa42c"
                },
                {
                  "fixed": "18dfb9cca345bb2b2fbe73d5fc31028c2477bef1"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "cpe": "cpe:2.3:a:etcd:etcd:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "3.3.23"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "cpe": "cpe:2.3:a:etcd:etcd:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "3.4.0"
                      },
                      {
                        "fixed": "3.4.10"
                      }
                    ],
                    "source": "CPE_RANGE"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v3.3.22",
            "v3.4.9",
            "v3.4.8",
            "v3.3.21",
            "v3.3.20",
            "v3.4.7",
            "v3.3.19",
            "v3.4.6",
            "v3.4.5",
            "v3.4.4",
            "v3.3.18",
            "v3.4.3",
            "v3.3.17",
            "v3.3.16",
            "v3.4.2",
            "v3.4.1",
            "v3.4.0",
            "v3.3.15",
            "v3.3.14",
            "v3.3.14-rc.0",
            "v3.3.14-beta.0",
            "v3.3.13",
            "v3.3.12",
            "v3.3.11",
            "v3.3.10",
            "v3.3.9",
            "v3.3.8",
            "v3.3.7",
            "v3.3.6",
            "v3.3.5",
            "v3.3.4",
            "v3.3.3",
            "v3.3.2",
            "v3.3.1",
            "v3.3.0",
            "v3.3.0-rc.4",
            "v3.3.0-rc.3",
            "v3.3.0-rc.2",
            "v3.3.0-rc.1",
            "v3.3.0-rc.0",
            "v3.2.10_plus_git",
            "v3.2.0_plus_git",
            "v3.2.0+git",
            "v3.2.0-rc.1",
            "v3.2.0-rc.0",
            "v3.1.0-rc.1",
            "v3.1.0-rc.0",
            "v3.1.0-alpha.1",
            "v3.1.0-alpha.0",
            "v3.0.0-beta.0",
            "v2.3.0",
            "v2.3.0-alpha.1",
            "v2.3.0-alpha.0",
            "v2.2.0",
            "v2.2.0-rc.0",
            "v2.2.0-alpha.1",
            "v2.2.0-alpha.0",
            "v2.1.1",
            "v2.1.0",
            "v2.1.0-rc.0",
            "v2.1.0-alpha.1",
            "v2.1.0-alpha.0",
            "v2.0.4",
            "v2.0.3",
            "v2.0.2",
            "v2.0.1",
            "v2.0.0",
            "v0.4.6",
            "v2.0.0-rc.1",
            "v0.5.0-alpha.5",
            "v0.5.0-alpha.4",
            "v0.5.0-alpha.3",
            "v0.5.0-alpha.2",
            "v0.5.0-alpha.1",
            "v0.5.0-alpha.0",
            "v0.4.5",
            "v0.4.4",
            "v0.4.3",
            "v0.4.2",
            "v0.4.1",
            "v0.4.0",
            "v0.3.0",
            "v0.2.0-rc4",
            "v0.2.0",
            "v0.2.0-rc3",
            "v0.2.0-rc2",
            "v0.2.0-rc1",
            "v0.1.2",
            "v0.1.1",
            "v0.1.0",
            "0"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2020-15106.json"
          }
        }
      ],
      "modified": "2026-10-20T10:51:51.888437017Z",
      "provider": "osv",
      "references": [
        "https://lists.fedoraproject.org/archives/list/package-announce%40lists.fedoraproject.org/message/L6B6R43Y7M3DCHWK3L3UVGE2K6WWECMP/",
        "https://github.com/etcd-io/etcd/security/advisories/GHSA-p4g4-wgrh-qrg2"
      ],
      "provider_metadata": {
        "unresolved_ranges": [
          {
            "cpes": [
              "cpe:2.3:o:fedoraproject:fedora:32:*:*:*:*:*:*:*"
            ],
            "vendor_product": "fedoraproject:fedora",
            "extracted_events": [
              {
                "range": [
                  {
                    "introduced": "32"
                  },
                  {
                    "last_affected": "32"
                  }
                ],
                "source": "CPE_STRING"
              }
            ]
          }
        ]
      }
    },
    "related_cves": [
      {
        "value": "CVE-2020-15106",
        "evidence": "/id"
      },
      {
        "value": "CVE-2020-15112",
        "evidence": "/aliases"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 383037,
  "published_at": "2020-08-05T19:15:10.903+00:00"
}