CVE-2026-98433 (GCVE-0-2026-98433)

Vulnerability from cvelistv5 – Published: 2026-10-18 14:38 – Updated: 2026-10-19 09:19
VLAI
Title
KVM: PPC: Book3S HV: fix secure device page leak on uv_page_in() failure
Summary
In the Linux kernel, the following vulnerability has been resolved: KVM: PPC: Book3S HV: fix secure device page leak on uv_page_in() failure In kvmppc_svm_page_in(), if uv_page_in() fails after kvmppc_uvmem_get_page() has succeeded, the secure device page is never released. kvmppc_uvmem_get_page() sets a bit in kvmppc_uvmem_bitmap, allocates a kvmppc_uvmem_page_pvt struct, marks the GFN as KVMPPC_GFN_UVMEM_PFN, and calls zone_device_page_init() which sets refcount=1 and locks the page. The subsequent goto out_finalize skips the *mig.dst assignment, so migrate_vma_finalize() is a no-op for the page, and none of those resources are ever reclaimed. Each occurrence permanently consumes one entry from the firmware-bounded secure memory pool (kvmppc_uvmem_bitmap), leaks pvt, and leaves the GFN marked as secure — making it unusable for the lifetime of the VM. The twin __kvmppc_svm_page_out() already handles the analogous uv_page_out() failure correctly with unlock_page(dpage); __free_page(dpage). Apply the same pattern here: unlock_page() followed by put_page(), which chains through free_zone_device_folio() into kvmppc_uvmem_folio_free() to clear the bitmap bit, free pvt, and reset the GFN state. Reachable whenever uv_page_in() returns an error (e.g. UV pool exhaustion) on any POWER9/10 + Ultravisor/PEF system.
Severity
No CVSS data available.
Assigner
Linux CNA under the mitre root
CNA scorecard D 53/100 over 7018 records in the last 180 days details
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: ca9f4942670c37407bb109090eaf776ce2ccc54c , < ed2f2ff63cb7e71204096e765c6d02c3b6974b95 (git)
Affected: ca9f4942670c37407bb109090eaf776ce2ccc54c , < 8f3b7746874b39fc20e0363c9076c7787d4765ba (git)
Affected: ca9f4942670c37407bb109090eaf776ce2ccc54c , < a933d7024359e2e566b07903d1294b84f90482ae (git)
Affected: ca9f4942670c37407bb109090eaf776ce2ccc54c , < c41088b2765af1e97e7bb05f906ae1823eca0388 (git)
Affected: ca9f4942670c37407bb109090eaf776ce2ccc54c , < f3d4b2fc30c97cf8e6f8b880d2de9c17ecac7f5b (git)
Affected: ca9f4942670c37407bb109090eaf776ce2ccc54c , < dfb84274932737e338ff5eb27f34b4c8ecb01b50 (git)
Affected: ca9f4942670c37407bb109090eaf776ce2ccc54c , < fcbff8008b0e08cd53b611bd0ff7e01f5b962f80 (git)
Affected: ca9f4942670c37407bb109090eaf776ce2ccc54c , < 0a416ee20bcccddf91ca5b63696a23b9d11d73aa (git)
guessed Create a notification for this product.
Linux Linux Affected: 5.5
Unaffected: 0 , < 5.5 (semver)
Unaffected: 5.10.271 , ≤ 5.10.* (semver)
Unaffected: 5.15.222 , ≤ 5.15.* (semver)
Unaffected: 6.1.189 , ≤ 6.1.* (semver)
Unaffected: 6.6.158 , ≤ 6.6.* (semver)
Unaffected: 6.12.112 , ≤ 6.12.* (semver)
Unaffected: 6.18.54 , ≤ 6.18.* (semver)
Unaffected: 7.2.8 , ≤ 7.2.* (semver)
Unaffected: 7.3 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "arch/powerpc/kvm/book3s_hv_uvmem.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "ed2f2ff63cb7e71204096e765c6d02c3b6974b95",
              "status": "affected",
              "version": "ca9f4942670c37407bb109090eaf776ce2ccc54c",
              "versionType": "git"
            },
            {
              "lessThan": "8f3b7746874b39fc20e0363c9076c7787d4765ba",
              "status": "affected",
              "version": "ca9f4942670c37407bb109090eaf776ce2ccc54c",
              "versionType": "git"
            },
            {
              "lessThan": "a933d7024359e2e566b07903d1294b84f90482ae",
              "status": "affected",
              "version": "ca9f4942670c37407bb109090eaf776ce2ccc54c",
              "versionType": "git"
            },
            {
              "lessThan": "c41088b2765af1e97e7bb05f906ae1823eca0388",
              "status": "affected",
              "version": "ca9f4942670c37407bb109090eaf776ce2ccc54c",
              "versionType": "git"
            },
            {
              "lessThan": "f3d4b2fc30c97cf8e6f8b880d2de9c17ecac7f5b",
              "status": "affected",
              "version": "ca9f4942670c37407bb109090eaf776ce2ccc54c",
              "versionType": "git"
            },
            {
              "lessThan": "dfb84274932737e338ff5eb27f34b4c8ecb01b50",
              "status": "affected",
              "version": "ca9f4942670c37407bb109090eaf776ce2ccc54c",
              "versionType": "git"
            },
            {
              "lessThan": "fcbff8008b0e08cd53b611bd0ff7e01f5b962f80",
              "status": "affected",
              "version": "ca9f4942670c37407bb109090eaf776ce2ccc54c",
              "versionType": "git"
            },
            {
              "lessThan": "0a416ee20bcccddf91ca5b63696a23b9d11d73aa",
              "status": "affected",
              "version": "ca9f4942670c37407bb109090eaf776ce2ccc54c",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "arch/powerpc/kvm/book3s_hv_uvmem.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.5"
            },
            {
              "lessThan": "5.5",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.271",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.222",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.189",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.158",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.112",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.54",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.8",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.3",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.271",
                  "versionStartIncluding": "5.5",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.222",
                  "versionStartIncluding": "5.5",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.189",
                  "versionStartIncluding": "5.5",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.158",
                  "versionStartIncluding": "5.5",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.112",
                  "versionStartIncluding": "5.5",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.54",
                  "versionStartIncluding": "5.5",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2.8",
                  "versionStartIncluding": "5.5",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3",
                  "versionStartIncluding": "5.5",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: PPC: Book3S HV: fix secure device page leak on uv_page_in() failure\n\nIn kvmppc_svm_page_in(), if uv_page_in() fails after\nkvmppc_uvmem_get_page() has succeeded, the secure device page is never\nreleased.  kvmppc_uvmem_get_page() sets a bit in kvmppc_uvmem_bitmap,\nallocates a kvmppc_uvmem_page_pvt struct, marks the GFN as\nKVMPPC_GFN_UVMEM_PFN, and calls zone_device_page_init() which sets\nrefcount=1 and locks the page.  The subsequent goto out_finalize skips\nthe *mig.dst assignment, so migrate_vma_finalize() is a no-op for the\npage, and none of those resources are ever reclaimed.\n\nEach occurrence permanently consumes one entry from the firmware-bounded\nsecure memory pool (kvmppc_uvmem_bitmap), leaks pvt, and leaves the GFN\nmarked as secure \u2014 making it unusable for the lifetime of the VM.\n\nThe twin __kvmppc_svm_page_out() already handles the analogous uv_page_out()\nfailure correctly with unlock_page(dpage); __free_page(dpage).  Apply\nthe same pattern here: unlock_page() followed by put_page(), which\nchains through free_zone_device_folio() into kvmppc_uvmem_folio_free()\nto clear the bitmap bit, free pvt, and reset the GFN state.\n\nReachable whenever uv_page_in() returns an error (e.g. UV pool\nexhaustion) on any POWER9/10 + Ultravisor/PEF system."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-10-19T09:19:29.371Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/ed2f2ff63cb7e71204096e765c6d02c3b6974b95"
        },
        {
          "url": "https://git.kernel.org/stable/c/8f3b7746874b39fc20e0363c9076c7787d4765ba"
        },
        {
          "url": "https://git.kernel.org/stable/c/a933d7024359e2e566b07903d1294b84f90482ae"
        },
        {
          "url": "https://git.kernel.org/stable/c/c41088b2765af1e97e7bb05f906ae1823eca0388"
        },
        {
          "url": "https://git.kernel.org/stable/c/f3d4b2fc30c97cf8e6f8b880d2de9c17ecac7f5b"
        },
        {
          "url": "https://git.kernel.org/stable/c/dfb84274932737e338ff5eb27f34b4c8ecb01b50"
        },
        {
          "url": "https://git.kernel.org/stable/c/fcbff8008b0e08cd53b611bd0ff7e01f5b962f80"
        },
        {
          "url": "https://git.kernel.org/stable/c/0a416ee20bcccddf91ca5b63696a23b9d11d73aa"
        }
      ],
      "title": "KVM: PPC: Book3S HV: fix secure device page leak on uv_page_in() failure",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-98433",
    "datePublished": "2026-10-18T14:38:18.296Z",
    "dateReserved": "2026-09-25T10:25:14.348Z",
    "dateUpdated": "2026-10-19T09:19:29.371Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-98433",
      "date": "2026-11-01",
      "epss": "0.00165",
      "percentile": "0.05665"
    },
    "microsoft_vex": {
      "current_release_date": "2026-10-28T01:47:35.000Z",
      "cve": "CVE-2026-98433",
      "id": "msrc_CVE-2026-98433",
      "initial_release_date": "2026-10-20T01:07:08.000Z",
      "product_status:known_not_affected": "1",
      "product_status:under_investigation": "1",
      "source": "Microsoft CSAF VEX",
      "status": "final",
      "title": "KVM: PPC: Book3S HV: fix secure device page leak on uv_page_in() failure",
      "url": "https://msrc.microsoft.com/csaf/vex/2026/msrc_cve-2026-98433.json",
      "version": "5"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "arch/powerpc/kvm/book3s_hv_uvmem.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "ed2f2ff63cb7e71204096e765c6d02c3b6974b95",
                    "status": "affected",
                    "version": "ca9f4942670c37407bb109090eaf776ce2ccc54c",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "8f3b7746874b39fc20e0363c9076c7787d4765ba",
                    "status": "affected",
                    "version": "ca9f4942670c37407bb109090eaf776ce2ccc54c",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "a933d7024359e2e566b07903d1294b84f90482ae",
                    "status": "affected",
                    "version": "ca9f4942670c37407bb109090eaf776ce2ccc54c",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "c41088b2765af1e97e7bb05f906ae1823eca0388",
                    "status": "affected",
                    "version": "ca9f4942670c37407bb109090eaf776ce2ccc54c",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "f3d4b2fc30c97cf8e6f8b880d2de9c17ecac7f5b",
                    "status": "affected",
                    "version": "ca9f4942670c37407bb109090eaf776ce2ccc54c",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "dfb84274932737e338ff5eb27f34b4c8ecb01b50",
                    "status": "affected",
                    "version": "ca9f4942670c37407bb109090eaf776ce2ccc54c",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "fcbff8008b0e08cd53b611bd0ff7e01f5b962f80",
                    "status": "affected",
                    "version": "ca9f4942670c37407bb109090eaf776ce2ccc54c",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "0a416ee20bcccddf91ca5b63696a23b9d11d73aa",
                    "status": "affected",
                    "version": "ca9f4942670c37407bb109090eaf776ce2ccc54c",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "arch/powerpc/kvm/book3s_hv_uvmem.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "5.5"
                  },
                  {
                    "lessThan": "5.5",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "5.10.*",
                    "status": "unaffected",
                    "version": "5.10.271",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "5.15.*",
                    "status": "unaffected",
                    "version": "5.15.222",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.1.*",
                    "status": "unaffected",
                    "version": "6.1.189",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.6.*",
                    "status": "unaffected",
                    "version": "6.6.158",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.12.*",
                    "status": "unaffected",
                    "version": "6.12.112",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.18.*",
                    "status": "unaffected",
                    "version": "6.18.54",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.2.*",
                    "status": "unaffected",
                    "version": "7.2.8",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "7.3",
                    "versionType": "original_commit_for_fix"
                  }
                ]
              }
            ],
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
          }
        ],
        "cveTags": [],
        "descriptions": [
          {
            "lang": "en",
            "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nKVM: PPC: Book3S HV: fix secure device page leak on uv_page_in() failure\n\nIn kvmppc_svm_page_in(), if uv_page_in() fails after\nkvmppc_uvmem_get_page() has succeeded, the secure device page is never\nreleased.  kvmppc_uvmem_get_page() sets a bit in kvmppc_uvmem_bitmap,\nallocates a kvmppc_uvmem_page_pvt struct, marks the GFN as\nKVMPPC_GFN_UVMEM_PFN, and calls zone_device_page_init() which sets\nrefcount=1 and locks the page.  The subsequent goto out_finalize skips\nthe *mig.dst assignment, so migrate_vma_finalize() is a no-op for the\npage, and none of those resources are ever reclaimed.\n\nEach occurrence permanently consumes one entry from the firmware-bounded\nsecure memory pool (kvmppc_uvmem_bitmap), leaks pvt, and leaves the GFN\nmarked as secure \u2014 making it unusable for the lifetime of the VM.\n\nThe twin __kvmppc_svm_page_out() already handles the analogous uv_page_out()\nfailure correctly with unlock_page(dpage); __free_page(dpage).  Apply\nthe same pattern here: unlock_page() followed by put_page(), which\nchains through free_zone_device_folio() into kvmppc_uvmem_folio_free()\nto clear the bitmap bit, free pvt, and reset the GFN state.\n\nReachable whenever uv_page_in() returns an error (e.g. UV pool\nexhaustion) on any POWER9/10 + Ultravisor/PEF system."
          }
        ],
        "id": "CVE-2026-98433",
        "lastModified": "2026-10-19T10:18:51.290",
        "metrics": {},
        "published": "2026-10-18T15:16:53.047",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/0a416ee20bcccddf91ca5b63696a23b9d11d73aa"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/8f3b7746874b39fc20e0363c9076c7787d4765ba"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/a933d7024359e2e566b07903d1294b84f90482ae"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/c41088b2765af1e97e7bb05f906ae1823eca0388"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/dfb84274932737e338ff5eb27f34b4c8ecb01b50"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/ed2f2ff63cb7e71204096e765c6d02c3b6974b95"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/f3d4b2fc30c97cf8e6f8b880d2de9c17ecac7f5b"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/fcbff8008b0e08cd53b611bd0ff7e01f5b962f80"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    },
    "redhat_vex": {
      "aggregate_severity": "Low",
      "current_release_date": "2026-10-30T08:19:47+00:00",
      "cve": "CVE-2026-98433",
      "id": "CVE-2026-98433",
      "initial_release_date": "2026-10-18T00:00:00+00:00",
      "product_status:known_affected": "126",
      "product_status:known_not_affected": "153",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: KVM: PPC: Book3S HV: fix secure device page leak on uv_page_in() failure",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-98433.json",
      "version": "3"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Drag nodes to arrange them. Double-click a related vulnerability to open it, or a source to visit its link. The Physics button on the left tunes the layout and the simulation; the legend at the bottom left hides or shows nodes by kind and by sighting type.

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.
Vulnerability timeline

Sightings and recorded dates, grouped by day · UTC

JSON
Events included in the timeline

Loading timeline…


    Loading…

    Loading…

    Loading…

    Related by attack behaviour

    Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.