Description
In the Linux kernel, the following vulnerability has been resolved:

vhost-vdpa: don't install the eventfd_ctx_fdget() error in config_ctx

vhost_vdpa_set_config_call() swaps the eventfd_ctx_fdget() return value
into v->config_ctx before checking it, so on failure the field briefly
holds an ERR_PTR:

ctx = fd == VHOST_FILE_UNBIND ? NULL : eventfd_ctx_fdget(fd);
swap(ctx, v->config_ctx);

if (!IS_ERR_OR_NULL(ctx))
eventfd_ctx_put(ctx);

if (IS_ERR(v->config_ctx)) {
long ret = PTR_ERR(v->config_ctx);

v->config_ctx = NULL;
return ret;
}

Commit 0bde59c1723a ("vhost-vdpa: set v->config_ctx to NULL if
eventfd_ctx_fdget() fails") added that clearing, and spelled out the
invariant the rest of the file relies on: "we consider 'v->config_ctx'
valid if it is not NULL". The window between the swap and the clearing
still breaks it. vhost_vdpa_config_cb() only tests for NULL, so a config
interrupt delivered inside the window hands the ERR_PTR to
eventfd_signal().

Check the fd before installing it instead. That closes the window and
matches how vhost_vring_ioctl() handles the same failure for the vq call
fd.

It also stops a rejected fd from tearing down a config interrupt that was
working: until now the swap replaced the live context and put it, so
after an EBADF the device silently stopped delivering config interrupts
until userspace installed a new fd.
Published: 2026-09-25
Score: n/a
EPSS: n/a
KEV: No
Impact: Denial of Service
Action: Immediate Patch
AI Analysis

Impact

The vulnerability is an error handling flaw in the Linux kernel’s vhost‑vdpa driver. The driver swaps an error pointer returned by eventfd_ctx_fdget() into a configuration context without first validating it. If the function fails, the context briefly holds an ERR_PTR value, and subsequent callbacks may pass this invalid pointer to eventfd_signal(). This improper validation can cause the kernel to operate on an invalid context, potentially leading to crashes or the silent loss of device configuration interrupts. The weakness is a misuse of returned error pointers and falls under CWE‑795.

Affected Systems

All Linux kernel installations that load the vhost‑vdpa driver are potentially affected, regardless of distribution, until the fix for this bug is applied. The exact kernel revisions that contain the patch (commit 0bde59c1723a) are not specified in the data, so any kernel prior to that commit should be considered vulnerable.

Risk and Exploitability

The CVSS score is not available, and the EPSS score is not published; the vulnerability is not listed in the CISA KEV catalog. The flaw requires interaction with the vhost‑vdpa subsystem, which is typically accessed by privileged or kernel‑mode code. An attacker who can induce the error condition or exploit the resulting misbehavior may cause a denial of service of the virtual device that relies on configuration interrupts. Although not exploitable remotely in a standard user context, it poses a risk in virtualization environments where the privileged user or attacker has control over the virtual machine hosting the driver.

Generated by OpenCVE AI on September 25, 2026 at 15:29 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the Linux kernel to a release that includes commit 0bde59c1723a, which clears the configuration context when eventfd_ctx_fdget() fails.
  • If a kernel upgrade cannot be performed immediately, mitigate by disabling or removing the vhost‑vdpa module from configurations that are not critical, thereby preventing the vulnerable code from executing.
  • Restart any services or containers that use vhost‑vdpa after updating or disabling the module to ensure no stale configuration contexts remain.

Generated by OpenCVE AI on September 25, 2026 at 15:29 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 25 Sep 2026 15:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-795

Fri, 25 Sep 2026 10:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: vhost-vdpa: don't install the eventfd_ctx_fdget() error in config_ctx vhost_vdpa_set_config_call() swaps the eventfd_ctx_fdget() return value into v->config_ctx before checking it, so on failure the field briefly holds an ERR_PTR: ctx = fd == VHOST_FILE_UNBIND ? NULL : eventfd_ctx_fdget(fd); swap(ctx, v->config_ctx); if (!IS_ERR_OR_NULL(ctx)) eventfd_ctx_put(ctx); if (IS_ERR(v->config_ctx)) { long ret = PTR_ERR(v->config_ctx); v->config_ctx = NULL; return ret; } Commit 0bde59c1723a ("vhost-vdpa: set v->config_ctx to NULL if eventfd_ctx_fdget() fails") added that clearing, and spelled out the invariant the rest of the file relies on: "we consider 'v->config_ctx' valid if it is not NULL". The window between the swap and the clearing still breaks it. vhost_vdpa_config_cb() only tests for NULL, so a config interrupt delivered inside the window hands the ERR_PTR to eventfd_signal(). Check the fd before installing it instead. That closes the window and matches how vhost_vring_ioctl() handles the same failure for the vq call fd. It also stops a rejected fd from tearing down a config interrupt that was working: until now the swap replaced the live context and put it, so after an EBADF the device silently stopped delivering config interrupts until userspace installed a new fd.
Title vhost-vdpa: don't install the eventfd_ctx_fdget() error in config_ctx
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-09-25T10:23:25.110Z

Reserved: 2026-09-25T10:18:58.209Z

Link: CVE-2026-97993

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-25T11:17:27.500

Modified: 2026-09-25T11:17:27.500

Link: CVE-2026-97993

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-25T15:30:06Z

Weaknesses
  • CWE-795

    Only Filtering Special Elements at a Specified Location