CVE-2026-89959 (GCVE-0-2026-89959)

Vulnerability from cvelistv5 – Published: 2026-09-16 10:32 – Updated: 2026-09-16 14:40
VLAI
Title
s390/vfio-ap: Fix control domain removal in vfio_ap_mdev_cfg_remove
Summary
In the Linux kernel, the following vulnerability has been resolved: s390/vfio-ap: Fix control domain removal in vfio_ap_mdev_cfg_remove The vfio_ap_config_remove function uses the bitmap_andnot function to clear bits from the matrix_mdev->matrix.adm bitmap (specifies the control domains assigned to the mdev). This prevents the explicitly unplugged control domains from being removed the KVM guest. The bitmap_and function is used instead.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: eeb386aeb5b7c8d2dae6a3ba49255d8a97803182 , < 12871a4269f139221c9fde9ea3eb69c9228f59d4 (git)
Affected: eeb386aeb5b7c8d2dae6a3ba49255d8a97803182 , < 02e72909453dee2f8a09f78819f9a9cb902dfbdc (git)
Affected: eeb386aeb5b7c8d2dae6a3ba49255d8a97803182 , < 4bffadde7fc49b00493fb78c6376f958998d4b8c (git)
Affected: eeb386aeb5b7c8d2dae6a3ba49255d8a97803182 , < f7d66afc34bc6e833c8ebe56973afec35f473bc1 (git)
Affected: eeb386aeb5b7c8d2dae6a3ba49255d8a97803182 , < 2ff68bf414de167bc138e6e211ee1ad3ab3c5052 (git)
Affected: eeb386aeb5b7c8d2dae6a3ba49255d8a97803182 , < 6b8a02e216f6b520cc029e43ddc83956605135d5 (git)
guessed Create a notification for this product.
Linux Linux Affected: 6.0
Unaffected: 0 , < 6.0 (semver)
Unaffected: 6.1.188 , ≤ 6.1.* (semver)
Unaffected: 6.6.157 , ≤ 6.6.* (semver)
Unaffected: 6.12.110 , ≤ 6.12.* (semver)
Unaffected: 6.18.51 , ≤ 6.18.* (semver)
Unaffected: 7.2.5 , ≤ 7.2.* (semver)
Unaffected: 7.3-rc1 , ≤ * (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/s390/crypto/vfio_ap_ops.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "12871a4269f139221c9fde9ea3eb69c9228f59d4",
              "status": "affected",
              "version": "eeb386aeb5b7c8d2dae6a3ba49255d8a97803182",
              "versionType": "git"
            },
            {
              "lessThan": "02e72909453dee2f8a09f78819f9a9cb902dfbdc",
              "status": "affected",
              "version": "eeb386aeb5b7c8d2dae6a3ba49255d8a97803182",
              "versionType": "git"
            },
            {
              "lessThan": "4bffadde7fc49b00493fb78c6376f958998d4b8c",
              "status": "affected",
              "version": "eeb386aeb5b7c8d2dae6a3ba49255d8a97803182",
              "versionType": "git"
            },
            {
              "lessThan": "f7d66afc34bc6e833c8ebe56973afec35f473bc1",
              "status": "affected",
              "version": "eeb386aeb5b7c8d2dae6a3ba49255d8a97803182",
              "versionType": "git"
            },
            {
              "lessThan": "2ff68bf414de167bc138e6e211ee1ad3ab3c5052",
              "status": "affected",
              "version": "eeb386aeb5b7c8d2dae6a3ba49255d8a97803182",
              "versionType": "git"
            },
            {
              "lessThan": "6b8a02e216f6b520cc029e43ddc83956605135d5",
              "status": "affected",
              "version": "eeb386aeb5b7c8d2dae6a3ba49255d8a97803182",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/s390/crypto/vfio_ap_ops.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.0"
            },
            {
              "lessThan": "6.0",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.188",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.157",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.110",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.51",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.5",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.3-rc1",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.188",
                  "versionStartIncluding": "6.0",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.157",
                  "versionStartIncluding": "6.0",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.110",
                  "versionStartIncluding": "6.0",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.51",
                  "versionStartIncluding": "6.0",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2.5",
                  "versionStartIncluding": "6.0",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3-rc1",
                  "versionStartIncluding": "6.0",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\ns390/vfio-ap: Fix control domain removal in vfio_ap_mdev_cfg_remove\n\nThe vfio_ap_config_remove function uses the bitmap_andnot function to clear\nbits from the matrix_mdev-\u003ematrix.adm bitmap (specifies the control domains\nassigned to the mdev). This prevents the explicitly unplugged control\ndomains from being removed the KVM guest. The bitmap_and function is used\ninstead."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 8.8,
            "baseSeverity": "HIGH",
            "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:L - The bug is reached when the host AP bus scan (ap_scan_bus \u2192 vfio_ap_on_cfg_changed \u2192 vfio_ap_mdev_cfg_remove) fails to clear control-domain bits from a KVM guest CRYCB; that is a local s390 vfio-ap/KVM path with no network, Bluetooth, or USB exposure.\nAC:L - bitmap_andnot(cdrem, cd_remove, matrix.adm) always yields removed domains that are not assigned to the mdev, so assigned control domains are never unplugged. After QCI drops a domain assigned to the mdev, leftover guest ADM bits persist deterministically with no race or uncontrolled memory layout.\nPR:L - Leftover ADM bits are consumed by the tenant KVM guest (or an unprivileged kvm-group QEMU process holding a delegated vfio-ap mdev) via millicode-enforced AP instructions with no host capability check. Creating the mdev is admin setup; exploiting the failed unplug does not require init-namespace root.\nUI:N - After the host AP configuration change, vfio_ap_mdev_cfg_remove runs from the AP bus workqueue with no further victim action, and the guest itself issues NQAP/PQAP against the stale control domains. No mount, click, or other user interaction is required.\nS:C - Leftover ADM bits in the guest CRYCB grant millicode-enforced rights to modify AP control domains the host intended to revoke, crossing the vfio-ap/KVM passthrough isolation boundary into the host or another consumer\u0027s crypto-domain authority, including nested guests whose shadow APCB is ANDed with the stale L1 mask.\nC:H - Control domains authorize AP commands that operate on other domains\u0027 key material (for example setting a secure private key). Stale ADM bits let the guest keep targeting those domains through remaining usage-domain queues, disclosing or wrapping keys that should belong to host zcrypt or another guest.\nI:H - With leftover control-domain access the guest can still submit AP command-request messages that change master keys and other domain state for domains removed from the host AP configuration, corrupting crypto state the host believes was unplugged and is no longer delegated to that VM.\nA:H - The guest can keep changing or destroying keys on the unplugged control domains and issue AP commands that render those domains unusable for the host or a sibling guest that should have received them after the QCI removal, denying IBM Z crypto services that depend on those domains."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-09-16T14:40:38.868Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/12871a4269f139221c9fde9ea3eb69c9228f59d4"
        },
        {
          "url": "https://git.kernel.org/stable/c/02e72909453dee2f8a09f78819f9a9cb902dfbdc"
        },
        {
          "url": "https://git.kernel.org/stable/c/4bffadde7fc49b00493fb78c6376f958998d4b8c"
        },
        {
          "url": "https://git.kernel.org/stable/c/f7d66afc34bc6e833c8ebe56973afec35f473bc1"
        },
        {
          "url": "https://git.kernel.org/stable/c/2ff68bf414de167bc138e6e211ee1ad3ab3c5052"
        },
        {
          "url": "https://git.kernel.org/stable/c/6b8a02e216f6b520cc029e43ddc83956605135d5"
        }
      ],
      "title": "s390/vfio-ap: Fix control domain removal in vfio_ap_mdev_cfg_remove",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-89959",
    "datePublished": "2026-09-16T10:32:41.908Z",
    "dateReserved": "2026-09-11T19:38:34.778Z",
    "dateUpdated": "2026-09-16T14:40:38.868Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-89959",
      "date": "2026-09-26",
      "epss": "0.00176",
      "percentile": "0.06393"
    },
    "microsoft_vex": {
      "current_release_date": "2026-09-23T01:44:06.000Z",
      "cve": "CVE-2026-89959",
      "id": "msrc_CVE-2026-89959",
      "initial_release_date": "2026-09-17T01:04:51.000Z",
      "product_status:known_affected": "2",
      "source": "Microsoft CSAF VEX",
      "status": "final",
      "title": "s390/vfio-ap: Fix control domain removal in vfio_ap_mdev_cfg_remove",
      "url": "https://msrc.microsoft.com/csaf/vex/2026/msrc_cve-2026-89959.json",
      "version": "2"
    },
    "nvd": {
      "cve": {
        "affected": [
          {
            "affectedData": [
              {
                "defaultStatus": "unaffected",
                "product": "Linux",
                "programFiles": [
                  "drivers/s390/crypto/vfio_ap_ops.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "lessThan": "12871a4269f139221c9fde9ea3eb69c9228f59d4",
                    "status": "affected",
                    "version": "eeb386aeb5b7c8d2dae6a3ba49255d8a97803182",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "02e72909453dee2f8a09f78819f9a9cb902dfbdc",
                    "status": "affected",
                    "version": "eeb386aeb5b7c8d2dae6a3ba49255d8a97803182",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "4bffadde7fc49b00493fb78c6376f958998d4b8c",
                    "status": "affected",
                    "version": "eeb386aeb5b7c8d2dae6a3ba49255d8a97803182",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "f7d66afc34bc6e833c8ebe56973afec35f473bc1",
                    "status": "affected",
                    "version": "eeb386aeb5b7c8d2dae6a3ba49255d8a97803182",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "2ff68bf414de167bc138e6e211ee1ad3ab3c5052",
                    "status": "affected",
                    "version": "eeb386aeb5b7c8d2dae6a3ba49255d8a97803182",
                    "versionType": "git"
                  },
                  {
                    "lessThan": "6b8a02e216f6b520cc029e43ddc83956605135d5",
                    "status": "affected",
                    "version": "eeb386aeb5b7c8d2dae6a3ba49255d8a97803182",
                    "versionType": "git"
                  }
                ]
              },
              {
                "defaultStatus": "affected",
                "product": "Linux",
                "programFiles": [
                  "drivers/s390/crypto/vfio_ap_ops.c"
                ],
                "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                "vendor": "Linux",
                "versions": [
                  {
                    "status": "affected",
                    "version": "6.0"
                  },
                  {
                    "lessThan": "6.0",
                    "status": "unaffected",
                    "version": "0",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.1.*",
                    "status": "unaffected",
                    "version": "6.1.188",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.6.*",
                    "status": "unaffected",
                    "version": "6.6.157",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.12.*",
                    "status": "unaffected",
                    "version": "6.12.110",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "6.18.*",
                    "status": "unaffected",
                    "version": "6.18.51",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "7.2.*",
                    "status": "unaffected",
                    "version": "7.2.5",
                    "versionType": "semver"
                  },
                  {
                    "lessThanOrEqual": "*",
                    "status": "unaffected",
                    "version": "7.3-rc1",
                    "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\ns390/vfio-ap: Fix control domain removal in vfio_ap_mdev_cfg_remove\n\nThe vfio_ap_config_remove function uses the bitmap_andnot function to clear\nbits from the matrix_mdev-\u003ematrix.adm bitmap (specifies the control domains\nassigned to the mdev). This prevents the explicitly unplugged control\ndomains from being removed the KVM guest. The bitmap_and function is used\ninstead."
          }
        ],
        "id": "CVE-2026-89959",
        "lastModified": "2026-09-16T15:18:20.433",
        "metrics": {
          "cvssMetricV31": [
            {
              "cvssData": {
                "attackComplexity": "LOW",
                "attackVector": "LOCAL",
                "availabilityImpact": "HIGH",
                "baseScore": 8.8,
                "baseSeverity": "HIGH",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "LOW",
                "scope": "CHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H",
                "version": "3.1"
              },
              "exploitabilityScore": 2.0,
              "impactScore": 6.0,
              "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
              "type": "Secondary"
            }
          ]
        },
        "published": "2026-09-16T11:17:06.320",
        "references": [
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/02e72909453dee2f8a09f78819f9a9cb902dfbdc"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/12871a4269f139221c9fde9ea3eb69c9228f59d4"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/2ff68bf414de167bc138e6e211ee1ad3ab3c5052"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/4bffadde7fc49b00493fb78c6376f958998d4b8c"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/6b8a02e216f6b520cc029e43ddc83956605135d5"
          },
          {
            "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
            "url": "https://git.kernel.org/stable/c/f7d66afc34bc6e833c8ebe56973afec35f473bc1"
          }
        ],
        "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "vulnStatus": "Received"
      }
    },
    "suse_vex": {
      "aggregate_severity": "moderate",
      "current_release_date": "2026-09-19T01:42:08Z",
      "cve": "CVE-2026-89959",
      "id": "CVE-2026-89959",
      "initial_release_date": "2026-09-17T16:33:31Z",
      "product_status:known_affected": "204",
      "product_status:known_not_affected": "143",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-89959",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-89959.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…

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.


Loading…