GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

CVE-2026-74404 (GCVE-0-2026-74404)

Vulnerability from cvelistv5 – Published: 2026-08-15 05:59 – Updated: 2026-08-17 05:46
VLAI
Title
crypto: ccp - Fix snp_filter_reserved_mem_regions() off-by-one
Summary
In the Linux kernel, the following vulnerability has been resolved: crypto: ccp - Fix snp_filter_reserved_mem_regions() off-by-one Sashiko notes: > regarding the bounds check in snp_filter_reserved_mem_regions() > called via walk_iomem_res_desc(): does the check > if ((range_list->num_elements * 16 + 8) > PAGE_SIZE) > allow an off-by-one heap buffer overflow? > > If range_list->num_elements is 255, 255 * 16 + 8 = 4088, which is <= 4096. > Writing range->base (8 bytes) fills 4088-4095, but writing range->page_count > (4 bytes) would write to 4096-4099, overflowing the kzalloc-allocated > PAGE_SIZE buffer. Fix this by accounting for the entry about to be written to, in addition to the entries that are already allocated.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: 1ca5614b84eed5904f65f143e0e7aaab0ac4c6b2 , < 830c1f3e71989448652973375ef5e39b6ede47a3 (git)
Affected: 1ca5614b84eed5904f65f143e0e7aaab0ac4c6b2 , < c5c79d92da0f9a09f48be5e2aabed2d6d1a96294 (git)
Affected: 1ca5614b84eed5904f65f143e0e7aaab0ac4c6b2 , < af7341616b742ad2c374a90998bd650a035f694d (git)
Affected: 1ca5614b84eed5904f65f143e0e7aaab0ac4c6b2 , < 1b864b6cb213bbd7b406e9b2e98c962077f300df (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.9
Unaffected: 0 , < 6.9 (semver)
Unaffected: 6.12.97 , ≤ 6.12.* (semver)
Unaffected: 6.18.40 , ≤ 6.18.* (semver)
Unaffected: 7.1.5 , ≤ 7.1.* (semver)
Unaffected: 7.2 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/crypto/ccp/sev-dev.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "830c1f3e71989448652973375ef5e39b6ede47a3",
              "status": "affected",
              "version": "1ca5614b84eed5904f65f143e0e7aaab0ac4c6b2",
              "versionType": "git"
            },
            {
              "lessThan": "c5c79d92da0f9a09f48be5e2aabed2d6d1a96294",
              "status": "affected",
              "version": "1ca5614b84eed5904f65f143e0e7aaab0ac4c6b2",
              "versionType": "git"
            },
            {
              "lessThan": "af7341616b742ad2c374a90998bd650a035f694d",
              "status": "affected",
              "version": "1ca5614b84eed5904f65f143e0e7aaab0ac4c6b2",
              "versionType": "git"
            },
            {
              "lessThan": "1b864b6cb213bbd7b406e9b2e98c962077f300df",
              "status": "affected",
              "version": "1ca5614b84eed5904f65f143e0e7aaab0ac4c6b2",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/crypto/ccp/sev-dev.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.9"
            },
            {
              "lessThan": "6.9",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.97",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.40",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.1.*",
              "status": "unaffected",
              "version": "7.1.5",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.2",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.97",
                  "versionStartIncluding": "6.9",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.40",
                  "versionStartIncluding": "6.9",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.1.5",
                  "versionStartIncluding": "6.9",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2",
                  "versionStartIncluding": "6.9",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ncrypto: ccp - Fix snp_filter_reserved_mem_regions() off-by-one\n\nSashiko notes:\n\n\u003e regarding the bounds check in snp_filter_reserved_mem_regions()\n\u003e called via walk_iomem_res_desc(): does the check\n\u003e if ((range_list-\u003enum_elements * 16 + 8) \u003e PAGE_SIZE)\n\u003e allow an off-by-one heap buffer overflow?\n\u003e\n\u003e If range_list-\u003enum_elements is 255, 255 * 16 + 8 = 4088, which is \u003c= 4096.\n\u003e Writing range-\u003ebase (8 bytes) fills 4088-4095, but writing range-\u003epage_count\n\u003e (4 bytes) would write to 4096-4099, overflowing the kzalloc-allocated\n\u003e PAGE_SIZE buffer.\n\nFix this by accounting for the entry about to be written to, in addition to\nthe entries that are already allocated."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 7.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The overflow is reached only via local host paths\u2014KVM VM ioctl KVM_SEV_INIT2 (sev_guest_init2\u2192sev_platform_init\u2192__sev_snp_init_locked) or kernel boot-time SEV-SNP platform init\u2014not through any network, Bluetooth, or physical bus handler.\nAC:L - Once on an AMD SEV-SNP host with SNP firmware \u22651.52, a caller can deterministically trigger SNP_INIT_EX initialization via KVM_SEV_INIT2; no race or attacker-uncontrollable timing is required, only a firmware memory map with \u2265256 matching reserved/ACPI/PMEM iomem regions.\nPR:L - Exploitation requires local hypervisor access to create an SNP-capable KVM VM and issue KVM_SEV_INIT2 (typical /dev/kvm or kvm-group hypervisor operator), not unauthenticated remote access; comparable KVM ioctl CVEs in this repo score this as low privilege rather than init-namespace root only.\nUI:N - No victim interaction is needed beyond the attacker (or boot sequence) invoking SNP platform initialization; the bug fires automatically while enumerating the system iomem map during SNP_INIT_EX setup.\nS:U - The corruption occurs in host kernel heap memory during hypervisor SEV-SNP platform initialization by a host-side caller; it is not a guest-to-host VM escape, IOMMU/DMA bypass, or cross-authority sandbox breakout.\nC:H - The off-by-one permits a 4-byte out-of-bounds write of page_count past a PAGE_SIZE kzalloc buffer, corrupting adjacent kmalloc slab memory in ways that can be leveraged for kernel information disclosure.\nI:H - A controlled heap buffer overflow (even 4 bytes) can corrupt adjacent kernel objects and be developed into arbitrary kernel memory writes or control-flow hijacking, satisfying high integrity impact per kernel OOB-write guidance.\nA:H - Heap metadata/object corruption during SNP_INIT_EX can cause kernel oops/panic or leave the host in a failed state, especially on confidential-computing servers where SNP initialization is on the critical boot/VM-launch path."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-17T05:46:46.485Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/830c1f3e71989448652973375ef5e39b6ede47a3"
        },
        {
          "url": "https://git.kernel.org/stable/c/c5c79d92da0f9a09f48be5e2aabed2d6d1a96294"
        },
        {
          "url": "https://git.kernel.org/stable/c/af7341616b742ad2c374a90998bd650a035f694d"
        },
        {
          "url": "https://git.kernel.org/stable/c/1b864b6cb213bbd7b406e9b2e98c962077f300df"
        }
      ],
      "title": "crypto: ccp - Fix snp_filter_reserved_mem_regions() off-by-one",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-74404",
    "datePublished": "2026-08-15T05:59:14.073Z",
    "dateReserved": "2026-08-15T05:44:03.892Z",
    "dateUpdated": "2026-08-17T05:46:46.485Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-74404",
      "date": "2026-09-05",
      "epss": "0.00142",
      "percentile": "0.03842"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2026-74404\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-08-15T06:22:42.433\",\"lastModified\":\"2026-08-17T06:19:35.607\",\"vulnStatus\":\"Received\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\ncrypto: ccp - Fix snp_filter_reserved_mem_regions() off-by-one\\n\\nSashiko notes:\\n\\n\u003e regarding the bounds check in snp_filter_reserved_mem_regions()\\n\u003e called via walk_iomem_res_desc(): does the check\\n\u003e if ((range_list-\u003enum_elements * 16 + 8) \u003e PAGE_SIZE)\\n\u003e allow an off-by-one heap buffer overflow?\\n\u003e\\n\u003e If range_list-\u003enum_elements is 255, 255 * 16 + 8 = 4088, which is \u003c= 4096.\\n\u003e Writing range-\u003ebase (8 bytes) fills 4088-4095, but writing range-\u003epage_count\\n\u003e (4 bytes) would write to 4096-4099, overflowing the kzalloc-allocated\\n\u003e PAGE_SIZE buffer.\\n\\nFix this by accounting for the entry about to be written to, in addition to\\nthe entries that are already allocated.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"drivers/crypto/ccp/sev-dev.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"1ca5614b84eed5904f65f143e0e7aaab0ac4c6b2\",\"lessThan\":\"830c1f3e71989448652973375ef5e39b6ede47a3\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"1ca5614b84eed5904f65f143e0e7aaab0ac4c6b2\",\"lessThan\":\"c5c79d92da0f9a09f48be5e2aabed2d6d1a96294\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"1ca5614b84eed5904f65f143e0e7aaab0ac4c6b2\",\"lessThan\":\"af7341616b742ad2c374a90998bd650a035f694d\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"1ca5614b84eed5904f65f143e0e7aaab0ac4c6b2\",\"lessThan\":\"1b864b6cb213bbd7b406e9b2e98c962077f300df\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"drivers/crypto/ccp/sev-dev.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"6.9\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"6.9\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.12.97\",\"lessThanOrEqual\":\"6.12.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.18.40\",\"lessThanOrEqual\":\"6.18.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.1.5\",\"lessThanOrEqual\":\"7.1.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.2\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"metrics\":{\"cvssMetricV31\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"3.1\",\"vectorString\":\"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H\",\"baseScore\":7.8,\"baseSeverity\":\"HIGH\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"scope\":\"UNCHANGED\",\"confidentialityImpact\":\"HIGH\",\"integrityImpact\":\"HIGH\",\"availabilityImpact\":\"HIGH\"},\"exploitabilityScore\":1.8,\"impactScore\":5.9}]},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/1b864b6cb213bbd7b406e9b2e98c962077f300df\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/830c1f3e71989448652973375ef5e39b6ede47a3\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/af7341616b742ad2c374a90998bd650a035f694d\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/c5c79d92da0f9a09f48be5e2aabed2d6d1a96294\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}",
    "redhat_vex": {
      "aggregate_severity": "Moderate",
      "current_release_date": "2026-08-20T22:17:44+00:00",
      "cve": "CVE-2026-74404",
      "id": "CVE-2026-74404",
      "initial_release_date": "2026-08-15T00:00:00+00:00",
      "product_status:known_affected": "184",
      "product_status:known_not_affected": "90",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: crypto: ccp - Fix snp_filter_reserved_mem_regions() off-by-one",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-74404.json",
      "version": "3"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Loading…