CVE-2026-97993
Received Received - Intake

vhost-vdpa Eventfd Context Use-After-Free

Vulnerability report for CVE-2026-97993, including description, CVSS score, EPSS score, affected products, exploitability, helpful resources, and attack-flow context.

Publication date: 2026-09-25

Last updated on: 2026-09-25

Assigner: kernel.org

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.

CVSS Scores

EPSS Scores

Probability:
Percentile:

Meta Information

Published
2026-09-25
Last Modified
2026-09-25
Generated
2026-09-25
AI Q&A
2026-09-25
EPSS Evaluated
N/A
NVD
EUVD

Affected Vendors & Products

Currently, no data is known.

Helpful Resources

Exploitability

CWE
CWE Icon
KEV
KEV Icon
CWE ID Description
CWE-UNKNOWN

Attack-Flow Graph

AI Quick Actions

Instant insights powered by AI
Executive Summary

This vulnerability in the Linux kernel involves improper handling of an error pointer in the vhost-vdpa subsystem. The issue occurs when vhost_vdpa_set_config_call() swaps a potentially invalid eventfd context into a field before checking for errors, creating a brief window where an error pointer (ERR_PTR) is stored. This can lead to a config interrupt being delivered with an invalid pointer, causing a crash when eventfd_signal() is called.

Detection Guidance

This vulnerability is specific to the Linux kernel's vhost-vdpa subsystem and does not have direct network detection methods. Detection involves checking kernel logs for errors related to vhost-vdpa or config_ctx handling. Commands like dmesg | grep vhost or journalctl -k | grep vhost may help identify issues.

Impact Analysis

If exploited, this vulnerability could cause a denial-of-service condition by crashing the system when a config interrupt is processed with an invalid eventfd context. It may also lead to unexpected behavior where a rejected file descriptor silently disables config interrupts until a new one is installed.

Mitigation Strategies

Apply the kernel patch that resolves this issue. Update your Linux kernel to a version containing the fix (commit 0bde59c1723a or later). If immediate patching is not possible, monitor for vhost-vdpa related errors and avoid using vhost-vdpa with untrusted file descriptors.

Chat Assistant

Ask questions about this CVE
Hi! I’m here to help you understand CVE-2026-97993. Ask me anything about the vulnerability, its impact, or mitigation strategies.
0/70

EPSS Chart