CVE-2024-26795 (GCVE-0-2024-26795)
Vulnerability from cvelistv5
Published
2024-04-04 08:20
Modified
2026-08-05 11:27
Summary
In the Linux kernel, the following vulnerability has been resolved: riscv: Sparse-Memory/vmemmap out-of-bounds fix Offset vmemmap so that the first page of vmemmap will be mapped to the first page of physical memory in order to ensure that vmemmap’s bounds will be respected during pfn_to_page()/page_to_pfn() operations. The conversion macros will produce correct SV39/48/57 addresses for every possible/valid DRAM_BASE inside the physical memory limits. v2:Address Alex's comments
Impacted products
Vendor Product Version
Linux Linux Version: d95f1a542c3df396137afa217ef9bd39cb8931ca
Version: d95f1a542c3df396137afa217ef9bd39cb8931ca
Version: d95f1a542c3df396137afa217ef9bd39cb8931ca
Version: d95f1a542c3df396137afa217ef9bd39cb8931ca
Version: d95f1a542c3df396137afa217ef9bd39cb8931ca
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2024-26795",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-06-17T19:27:22.580328Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-06-17T19:27:29.143Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      },
      {
        "providerMetadata": {
          "dateUpdated": "2024-08-02T00:14:13.470Z",
          "orgId": "af854a3a-2127-422b-91ae-364da2661108",
          "shortName": "CVE"
        },
        "references": [
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/8af1c121b0102041809bc137ec600d1865eaeedd"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/5941a90c55d3bfba732b32208d58d997600b44ef"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/8310080799b40fd9f2a8b808c657269678c149af"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/a278d5c60f21aa15d540abb2f2da6e6d795c3e6e"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/2a1728c15ec4f45ed9248ae22f626541c179bfbe"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://git.kernel.org/stable/c/a11dd49dcb9376776193e15641f84fcc1e5980c9"
          },
          {
            "tags": [
              "x_transferred"
            ],
            "url": "https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html"
          }
        ],
        "title": "CVE Program Container"
      }
    ],
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "arch/riscv/include/asm/pgtable.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "5941a90c55d3bfba732b32208d58d997600b44ef",
              "status": "affected",
              "version": "d95f1a542c3df396137afa217ef9bd39cb8931ca",
              "versionType": "git"
            },
            {
              "lessThan": "8310080799b40fd9f2a8b808c657269678c149af",
              "status": "affected",
              "version": "d95f1a542c3df396137afa217ef9bd39cb8931ca",
              "versionType": "git"
            },
            {
              "lessThan": "a278d5c60f21aa15d540abb2f2da6e6d795c3e6e",
              "status": "affected",
              "version": "d95f1a542c3df396137afa217ef9bd39cb8931ca",
              "versionType": "git"
            },
            {
              "lessThan": "2a1728c15ec4f45ed9248ae22f626541c179bfbe",
              "status": "affected",
              "version": "d95f1a542c3df396137afa217ef9bd39cb8931ca",
              "versionType": "git"
            },
            {
              "lessThan": "a11dd49dcb9376776193e15641f84fcc1e5980c9",
              "status": "affected",
              "version": "d95f1a542c3df396137afa217ef9bd39cb8931ca",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "arch/riscv/include/asm/pgtable.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.4"
            },
            {
              "lessThan": "5.4",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.151",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.81",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.21",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.7.*",
              "status": "unaffected",
              "version": "6.7.9",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.8",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.151",
                  "versionStartIncluding": "5.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.81",
                  "versionStartIncluding": "5.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.21",
                  "versionStartIncluding": "5.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.7.9",
                  "versionStartIncluding": "5.4",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.8",
                  "versionStartIncluding": "5.4",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nriscv: Sparse-Memory/vmemmap out-of-bounds fix\n\nOffset vmemmap so that the first page of vmemmap will be mapped\nto the first page of physical memory in order to ensure that\nvmemmap\u2019s bounds will be respected during\npfn_to_page()/page_to_pfn() operations.\nThe conversion macros will produce correct SV39/48/57 addresses\nfor every possible/valid DRAM_BASE inside the physical memory limits.\n\nv2:Address Alex\u0027s comments"
        }
      ],
      "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 defective `vmemmap` conversion is core arch/MM code exercised through ordinary local syscalls (page faults, mmap, read/write, fork, GUP/DMA setup); it is not reachable as a distinct remote protocol surface. Exploitation therefore requires local execution on the affected RISC-V system.\nAC:L - On an affected RISC-V deployment the out-of-bounds `pfn_to_page()`/`page_to_pfn()` result is deterministic \u2014 no race, no memory-layout guessing, no timing window \u2014 and any unprivileged memory operation reaches it reliably. Per CVSS 3.1 the vulnerable configuration is assumed, and nothing extra beyond the attacker\u0027s control must hold.\nPR:L - No capability, namespace, or admin check guards `pfn_to_page()`/`page_to_pfn()`; a plain unprivileged user process touching pages, mapping memory, or issuing I/O drives the miscomputed conversion. Only a basic local account is needed.\nUI:N - No victim action, mount, or file open is required \u2014 the corrupted address computation is hit by the attacker\u0027s own ordinary memory operations.\nS:U - The out-of-bounds accesses stay within kernel virtual memory (vmemmap spilling into the adjacent vmalloc region); no VM, IOMMU, or sandbox boundary is crossed.\nC:H - `struct page` accesses land outside the vmemmap region in the vmalloc area holding VMAP_STACK kernel stacks and module data, and `page_to_pfn()` returns wrong PFNs so the wrong physical pages are mapped to userspace or DMA\u0027d \u2014 yielding disclosure of arbitrary kernel and other-process memory.\nI:H - The same aliasing gives an out-of-bounds *write*: refcount/flag/mapping updates to `struct page` overwrite vmalloc-region kernel data, and wrong PFNs cause the wrong physical pages to be written, a memory-corruption primitive usable for control-flow hijacking.\nA:H - Overlapping the struct page array with vmalloc allocations and kernel stacks reliably produces oopses, BUG_ONs, and full kernel panics on the affected platform."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T11:27:18.433Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/5941a90c55d3bfba732b32208d58d997600b44ef"
        },
        {
          "url": "https://git.kernel.org/stable/c/8310080799b40fd9f2a8b808c657269678c149af"
        },
        {
          "url": "https://git.kernel.org/stable/c/a278d5c60f21aa15d540abb2f2da6e6d795c3e6e"
        },
        {
          "url": "https://git.kernel.org/stable/c/2a1728c15ec4f45ed9248ae22f626541c179bfbe"
        },
        {
          "url": "https://git.kernel.org/stable/c/a11dd49dcb9376776193e15641f84fcc1e5980c9"
        }
      ],
      "title": "riscv: Sparse-Memory/vmemmap out-of-bounds fix",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2024-26795",
    "datePublished": "2024-04-04T08:20:25.063Z",
    "dateReserved": "2024-02-19T14:20:24.178Z",
    "dateUpdated": "2026-08-05T11:27:18.433Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CVE Program Container\", \"references\": [{\"url\": \"https://git.kernel.org/stable/c/8af1c121b0102041809bc137ec600d1865eaeedd\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/5941a90c55d3bfba732b32208d58d997600b44ef\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/8310080799b40fd9f2a8b808c657269678c149af\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/a278d5c60f21aa15d540abb2f2da6e6d795c3e6e\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/2a1728c15ec4f45ed9248ae22f626541c179bfbe\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://git.kernel.org/stable/c/a11dd49dcb9376776193e15641f84fcc1e5980c9\", \"tags\": [\"x_transferred\"]}, {\"url\": \"https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html\", \"tags\": [\"x_transferred\"]}], \"providerMetadata\": {\"orgId\": \"af854a3a-2127-422b-91ae-364da2661108\", \"shortName\": \"CVE\", \"dateUpdated\": \"2024-08-02T00:14:13.470Z\"}}, {\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2024-26795\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2024-06-17T19:27:22.580328Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2024-06-17T19:27:26.737Z\"}}], \"cna\": {\"title\": \"riscv: Sparse-Memory/vmemmap out-of-bounds fix\", \"metrics\": [{\"cvssV3_1\": {\"version\": \"3.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\"}, \"scenarios\": [{\"lang\": \"en\", \"value\": \"AV:L - The defective `vmemmap` conversion is core arch/MM code exercised through ordinary local syscalls (page faults, mmap, read/write, fork, GUP/DMA setup); it is not reachable as a distinct remote protocol surface. Exploitation therefore requires local execution on the affected RISC-V system.\\nAC:L - On an affected RISC-V deployment the out-of-bounds `pfn_to_page()`/`page_to_pfn()` result is deterministic \\u2014 no race, no memory-layout guessing, no timing window \\u2014 and any unprivileged memory operation reaches it reliably. Per CVSS 3.1 the vulnerable configuration is assumed, and nothing extra beyond the attacker\u0027s control must hold.\\nPR:L - No capability, namespace, or admin check guards `pfn_to_page()`/`page_to_pfn()`; a plain unprivileged user process touching pages, mapping memory, or issuing I/O drives the miscomputed conversion. Only a basic local account is needed.\\nUI:N - No victim action, mount, or file open is required \\u2014 the corrupted address computation is hit by the attacker\u0027s own ordinary memory operations.\\nS:U - The out-of-bounds accesses stay within kernel virtual memory (vmemmap spilling into the adjacent vmalloc region); no VM, IOMMU, or sandbox boundary is crossed.\\nC:H - `struct page` accesses land outside the vmemmap region in the vmalloc area holding VMAP_STACK kernel stacks and module data, and `page_to_pfn()` returns wrong PFNs so the wrong physical pages are mapped to userspace or DMA\u0027d \\u2014 yielding disclosure of arbitrary kernel and other-process memory.\\nI:H - The same aliasing gives an out-of-bounds *write*: refcount/flag/mapping updates to `struct page` overwrite vmalloc-region kernel data, and wrong PFNs cause the wrong physical pages to be written, a memory-corruption primitive usable for control-flow hijacking.\\nA:H - Overlapping the struct page array with vmalloc allocations and kernel stacks reliably produces oopses, BUG_ONs, and full kernel panics on the affected platform.\"}]}], \"affected\": [{\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"d95f1a542c3df396137afa217ef9bd39cb8931ca\", \"lessThan\": \"5941a90c55d3bfba732b32208d58d997600b44ef\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"d95f1a542c3df396137afa217ef9bd39cb8931ca\", \"lessThan\": \"8310080799b40fd9f2a8b808c657269678c149af\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"d95f1a542c3df396137afa217ef9bd39cb8931ca\", \"lessThan\": \"a278d5c60f21aa15d540abb2f2da6e6d795c3e6e\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"d95f1a542c3df396137afa217ef9bd39cb8931ca\", \"lessThan\": \"2a1728c15ec4f45ed9248ae22f626541c179bfbe\", \"versionType\": \"git\"}, {\"status\": \"affected\", \"version\": \"d95f1a542c3df396137afa217ef9bd39cb8931ca\", \"lessThan\": \"a11dd49dcb9376776193e15641f84fcc1e5980c9\", \"versionType\": \"git\"}], \"programFiles\": [\"arch/riscv/include/asm/pgtable.h\"], \"defaultStatus\": \"unaffected\"}, {\"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\", \"vendor\": \"Linux\", \"product\": \"Linux\", \"versions\": [{\"status\": \"affected\", \"version\": \"5.4\"}, {\"status\": \"unaffected\", \"version\": \"0\", \"lessThan\": \"5.4\", \"versionType\": \"semver\"}, {\"status\": \"unaffected\", \"version\": \"5.15.151\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"5.15.*\"}, {\"status\": \"unaffected\", \"version\": \"6.1.81\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.1.*\"}, {\"status\": \"unaffected\", \"version\": \"6.6.21\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.6.*\"}, {\"status\": \"unaffected\", \"version\": \"6.7.9\", \"versionType\": \"semver\", \"lessThanOrEqual\": \"6.7.*\"}, {\"status\": \"unaffected\", \"version\": \"6.8\", \"versionType\": \"original_commit_for_fix\", \"lessThanOrEqual\": \"*\"}], \"programFiles\": [\"arch/riscv/include/asm/pgtable.h\"], \"defaultStatus\": \"affected\"}], \"references\": [{\"url\": \"https://git.kernel.org/stable/c/5941a90c55d3bfba732b32208d58d997600b44ef\"}, {\"url\": \"https://git.kernel.org/stable/c/8310080799b40fd9f2a8b808c657269678c149af\"}, {\"url\": \"https://git.kernel.org/stable/c/a278d5c60f21aa15d540abb2f2da6e6d795c3e6e\"}, {\"url\": \"https://git.kernel.org/stable/c/2a1728c15ec4f45ed9248ae22f626541c179bfbe\"}, {\"url\": \"https://git.kernel.org/stable/c/a11dd49dcb9376776193e15641f84fcc1e5980c9\"}], \"x_generator\": {\"engine\": \"bippy-1.2.0\"}, \"descriptions\": [{\"lang\": \"en\", \"value\": \"In the Linux kernel, the following vulnerability has been resolved:\\n\\nriscv: Sparse-Memory/vmemmap out-of-bounds fix\\n\\nOffset vmemmap so that the first page of vmemmap will be mapped\\nto the first page of physical memory in order to ensure that\\nvmemmap\\u2019s bounds will be respected during\\npfn_to_page()/page_to_pfn() operations.\\nThe conversion macros will produce correct SV39/48/57 addresses\\nfor every possible/valid DRAM_BASE inside the physical memory limits.\\n\\nv2:Address Alex\u0027s comments\"}], \"cpeApplicability\": [{\"nodes\": [{\"negate\": false, \"cpeMatch\": [{\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"5.15.151\", \"versionStartIncluding\": \"5.4\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.1.81\", \"versionStartIncluding\": \"5.4\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.6.21\", \"versionStartIncluding\": \"5.4\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.7.9\", \"versionStartIncluding\": \"5.4\"}, {\"criteria\": \"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\", \"vulnerable\": true, \"versionEndExcluding\": \"6.8\", \"versionStartIncluding\": \"5.4\"}], \"operator\": \"OR\"}]}], \"providerMetadata\": {\"orgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"shortName\": \"Linux\", \"dateUpdated\": \"2026-08-05T11:27:18.433Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2024-26795\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2026-08-05T11:27:18.433Z\", \"dateReserved\": \"2024-02-19T14:20:24.178Z\", \"assignerOrgId\": \"416baaa9-dc9f-4396-8d5f-8c081fb06d67\", \"datePublished\": \"2024-04-04T08:20:25.063Z\", \"assignerShortName\": \"Linux\"}",
      "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…