Skip to content
Heist/ feed
Unrated

vhost-vdpa: protect config_ctx from being freed under the config callback

Type: advisorySource: Official CVE List1 source record

In the Linux kernel, the following vulnerability has been resolved: vhost-vdpa: protect config_ctx from being freed under the config callback vhost_vdpa_config_cb() loads v->config_ctx and signals it without taking a reference and without holding any lock: struct eventfd_ctx *config_ctx = v->config_ctx; if (config_ctx) eventfd_signal(config_ctx); VHOST_VDPA_SET_CONFIG_CALL replaces that field and drops what is normally the last reference to the old context: swap(ctx, v->config_ctx); if (ctx) eventfd_ctx_put(ctx); eventfd_ctx_put() drops the last kref and frees the context immediately, with no RCU grace period, so a callback that has already loaded the pointer goes on to dereference freed memory. The two sides share no lock: the ioctl runs under vhost_dev.mutex, while the parent invokes the callback from its own interrupt or workqueue context. This is not the reopen refcount underflow fixed by commit f6bbf0010ba0 ("vhost-vdpa: fix use-after-free of v->config_ctx"), which was about vhost_vdpa_config_put() leaving a stale pointer behind. Here the pointer is maintained correctly and it is the read side that is unprotected. With VDUSE as the parent this is reachable from userspace with access to /dev/vduse (root by default). VDUSE_DEV_INJECT_CONFIG_IRQ queues dev->inject, and vduse_dev_irq_inject() runs the callback under VDUSE's own dev->irq_lock, which vhost does not hold. vduse_dev_reset() does flush_work(&dev->inject), but VHOST_VDPA_SET_CONFIG_CALL never goes through reset, s

Announced Source revision 1
Original source ↗

CVE-2026-97992

Primary source · Revision 1

Imported from structured advisory data. Source references identify upstream records or fields; verify affected versions and your deployed configuration.

Security context

Source reference: cve:CVE-2026-97992

Linux

Source reference: /containers/cna/affected/0/product

Affected versions
Not stated in this record
Fixed versions
Not stated in this record
Prerequisites
Not stated in this record

Linux

Source reference: /containers/cna/affected/1/product

Affected versions
Not stated in this record
Fixed versions
Not stated in this record
Prerequisites
Not stated in this record

Structured affected-version data

Original package identities and version rules from this source.

[
  {
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "vendor": "Linux",
    "product": "Linux",
    "versions": [
      {
        "status": "affected",
        "version": "776f395004d829bbbf18c159ed9beb517a208c71",
        "lessThan": "914c7cc2e3d10dddd3c5529cbe56557c9e01702a",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "776f395004d829bbbf18c159ed9beb517a208c71",
        "lessThan": "bf35c8948ab7a3eaf1f724fa1e870e3f73a1749b",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "776f395004d829bbbf18c159ed9beb517a208c71",
        "lessThan": "5a075ee2398929d5cc1393666f219c35332becb1",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "776f395004d829bbbf18c159ed9beb517a208c71",
        "lessThan": "f4a93f15ed1c8406ba5c8e5b28cafacb2b3bcd11",
        "versionType": "git"
      },
      {
        "status": "affected",
        "version": "776f395004d829bbbf18c159ed9beb517a208c71",
        "lessThan": "62be4e3e5f5f947fbf765b914cebdc478f715d12",
        "versionType": "git"
      }
    ],
    "programFiles": [
      "drivers/vhost/vdpa.c"
    ],
    "defaultStatus": "unaffected"
  },
  {
    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
    "vendor": "Linux",
    "product": "Linux",
    "versions": [
      {
        "status": "affected",
        "version": "5.8"
      },
      {
        "status": "unaffected",
        "version": "0",
        "lessThan": "5.8",
        "versionType": "semver"
      },
      {
        "status": "unaffected",
        "version": "6.6.160",
        "versionType": "semver",
        "lessThanOrEqual": "6.6.*"
      },
      {
        "status": "unaffected",
        "version": "6.12.111",
        "versionType": "semver",
        "lessThanOrEqual": "6.12.*"
      },
      {
        "status": "unaffected",
        "version": "6.18.53",
        "versionType": "semver",
        "lessThanOrEqual": "6.18.*"
      },
      {
        "status": "unaffected",
        "version": "7.2.7",
        "versionType": "semver",
        "lessThanOrEqual": "7.2.*"
      },
      {
        "status": "unaffected",
        "version": "7.3",
        "versionType": "original_commit_for_fix",
        "lessThanOrEqual": "*"
      }
    ],
    "programFiles": [
      "drivers/vhost/vdpa.c"
    ],
    "defaultStatus": "affected"
  }
]
Related CVEs
CVE-2026-97992

Source reference: /cveMetadata/cveId

Publisher severity

No explicit severity was provided.

Event
#48825 · Revision 1
Added to Heist Feed
Publisher date
Read the original announcement