-

CVE-2026-97993

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.
Daten sind bereitgestellt durch das CVE Programm von einer CVE Numbering Authority (CNA) (Unstrukturiert).
HerstellerLinux
≫
Produkt Linux
Default Statusunaffected
Version 776f395004d829bbbf18c159ed9beb517a208c71
Version < e260dc9fbfdae0978e7a8698f977fbb463a657be
Status affected
Version 776f395004d829bbbf18c159ed9beb517a208c71
Version < 66e73fa18910b39fea0941dea5fe091122240855
Status affected
Version 776f395004d829bbbf18c159ed9beb517a208c71
Version < 4fde085eb839fbb39c25cbba5d2a091ded394877
Status affected
Version 776f395004d829bbbf18c159ed9beb517a208c71
Version < 59fc7c1c6b4d325194ca45352180340092d95098
Status affected
Version 776f395004d829bbbf18c159ed9beb517a208c71
Version < 388c678639a0cebfd936b3e56c64ac6a371efec2
Status affected
Version 776f395004d829bbbf18c159ed9beb517a208c71
Version < 65faf9eaa00e408e1406fbcf675c8c8d0e27ff2a
Status affected
Version 776f395004d829bbbf18c159ed9beb517a208c71
Version < 6b20b40f020bde236f6b8a08ff88d8653261ec2b
Status affected
Version 776f395004d829bbbf18c159ed9beb517a208c71
Version < e74a9fa50749b9940b4fb13199652325e08d3c4a
Status affected
HerstellerLinux
≫
Produkt Linux
Default Statusaffected
Version 5.8
Status affected
Version 0
Version < 5.8
Status unaffected
Version <= 5.10.*
Version 5.10.271
Status unaffected
Version <= 5.15.*
Version 5.15.222
Status unaffected
Version <= 6.1.*
Version 6.1.189
Status unaffected
Version <= 6.6.*
Version 6.6.158
Status unaffected
Version <= 6.12.*
Version 6.12.111
Status unaffected
Version <= 6.18.*
Version 6.18.53
Status unaffected
Version <= 7.2.*
Version 7.2.7
Status unaffected
Version <= *
Version 7.3-rc3
Status unaffected
VulnDex Vulnerability Enrichment
Diese Information steht angemeldeten Benutzern zur Verfügung. Login Login
Zu dieser CVE wurde keine Warnung gefunden.
EPSS Metriken
Typ Quelle Score Percentile
EPSS FIRST.org 0.2% 0.088
CVSS Metriken
Quelle Base Score Exploit Score Impact Score Vector String
Es wurden noch keine Informationen zu CWE veröffentlicht.
https://git.kernel.org/stable/c/388c678639a0cebfd936b3e56c64ac6a371efec2
https://git.kernel.org/stable/c/65faf9eaa00e408e1406fbcf675c8c8d0e27ff2a
https://git.kernel.org/stable/c/6b20b40f020bde236f6b8a08ff88d8653261ec2b
https://git.kernel.org/stable/c/e74a9fa50749b9940b4fb13199652325e08d3c4a
https://git.kernel.org/stable/c/4fde085eb839fbb39c25cbba5d2a091ded394877
https://git.kernel.org/stable/c/59fc7c1c6b4d325194ca45352180340092d95098
https://git.kernel.org/stable/c/66e73fa18910b39fea0941dea5fe091122240855
https://git.kernel.org/stable/c/e260dc9fbfdae0978e7a8698f977fbb463a657be