Bug 2320245 (CVE-2024-47748) - CVE-2024-47748 kernel: vhost_vdpa: assign irq bypass producer token correctly
Summary: CVE-2024-47748 kernel: vhost_vdpa: assign irq bypass producer token correctly
Keywords:
Status: NEW
Alias: CVE-2024-47748
Product: Security Response
Classification: Other
Component: vulnerability
Version: unspecified
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Product Security DevOps Team
QA Contact:
URL:
Whiteboard:
Depends On: 2320376
Blocks:
TreeView+ depends on / blocked
 
Reported: 2024-10-21 13:05 UTC by OSIDB Bzimport
Modified: 2024-11-15 09:55 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
A possible use-after-free was found in the Linux kernel in drivers/vhost/vdpa.c.
Clone Of:
Environment:
Last Closed:
Embargoed:


Attachments (Terms of Use)

Description OSIDB Bzimport 2024-10-21 13:05:06 UTC
In the Linux kernel, the following vulnerability has been resolved:

vhost_vdpa: assign irq bypass producer token correctly

We used to call irq_bypass_unregister_producer() in
vhost_vdpa_setup_vq_irq() which is problematic as we don't know if the
token pointer is still valid or not.

Actually, we use the eventfd_ctx as the token so the life cycle of the
token should be bound to the VHOST_SET_VRING_CALL instead of
vhost_vdpa_setup_vq_irq() which could be called by set_status().

Fixing this by setting up irq bypass producer's token when handling
VHOST_SET_VRING_CALL and un-registering the producer before calling
vhost_vring_ioctl() to prevent a possible use after free as eventfd
could have been released in vhost_vring_ioctl(). And such registering
and unregistering will only be done if DRIVER_OK is set.


Note You need to log in before you can comment on or make changes to this bug.