cveboard RSS feed

CVE-2026-97993

CVE.org · Published

Historical CVEsJSONAI instructions

Record status
Published
Identifier year (not publication year)
2026
Source publication
Source updated
Imported by cveboard
Source snapshot
cve_2026-10-24_midnight_baseline ·

Plain text

CNA source text (English)

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

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.

Scoped product and version facts

Fix information unknown; no fixed version is derived here. Missing information does not prove that no fix exists.

Exploitation unknown; this catalogue does not assess exploitation.

Linux

Vendor
Linux
Product
Linux
Platforms
Unknown
Default status
unaffected
Linux · Scoped product and version facts
Version (version)Status (status)Version scheme (versionType)Exclusive end (lessThan)Inclusive end (lessThanOrEqual)Status changes (at → status)
776f395004d829bbbf18c159ed9beb517a208c71affectedgite260dc9fbfdae0978e7a8698f977fbb463a657beUnavailableNone listed
776f395004d829bbbf18c159ed9beb517a208c71affectedgit66e73fa18910b39fea0941dea5fe091122240855UnavailableNone listed
776f395004d829bbbf18c159ed9beb517a208c71affectedgit4fde085eb839fbb39c25cbba5d2a091ded394877UnavailableNone listed
776f395004d829bbbf18c159ed9beb517a208c71affectedgit59fc7c1c6b4d325194ca45352180340092d95098UnavailableNone listed
776f395004d829bbbf18c159ed9beb517a208c71affectedgit388c678639a0cebfd936b3e56c64ac6a371efec2UnavailableNone listed
776f395004d829bbbf18c159ed9beb517a208c71affectedgit65faf9eaa00e408e1406fbcf675c8c8d0e27ff2aUnavailableNone listed
776f395004d829bbbf18c159ed9beb517a208c71affectedgit6b20b40f020bde236f6b8a08ff88d8653261ec2bUnavailableNone listed
776f395004d829bbbf18c159ed9beb517a208c71affectedgite74a9fa50749b9940b4fb13199652325e08d3c4aUnavailableNone listed

Linux

Vendor
Linux
Product
Linux
Platforms
Unknown
Default status
affected
Linux · Scoped product and version facts
Version (version)Status (status)Version scheme (versionType)Exclusive end (lessThan)Inclusive end (lessThanOrEqual)Status changes (at → status)
5.8affectedUnavailableUnavailableUnavailableNone listed
0unaffectedsemver5.8UnavailableNone listed
5.10.271unaffectedsemverUnavailable5.10.*None listed
5.15.222unaffectedsemverUnavailable5.15.*None listed
6.1.189unaffectedsemverUnavailable6.1.*None listed
6.6.158unaffectedsemverUnavailable6.6.*None listed
6.12.111unaffectedsemverUnavailable6.12.*None listed
6.18.53unaffectedsemverUnavailable6.18.*None listed
7.2.7unaffectedsemverUnavailable7.2.*None listed
7.3unaffectedoriginal_commit_for_fixUnavailable*None listed