CVE-2026-74404 (GCVE-0-2026-74404)
Vulnerability from cvelistv5
Published
2026-08-15 05:59
Modified
2026-08-17 05:46
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
Linux Linux Version: 1ca5614b84eed5904f65f143e0e7aaab0ac4c6b2
Version: 1ca5614b84eed5904f65f143e0e7aaab0ac4c6b2
Version: 1ca5614b84eed5904f65f143e0e7aaab0ac4c6b2
Version: 1ca5614b84eed5904f65f143e0e7aaab0ac4c6b2
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"
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…