CVE-2026-74312
vhost/vdpa: validate virtqueue index in mmap and fault paths
Description
In the Linux kernel, the following vulnerability has been resolved: vhost/vdpa: validate virtqueue index in mmap and fault paths vhost_vdpa_mmap() and vhost_vdpa_fault() use vma->vm_pgoff as a virtqueue index for get_vq_notification(), but they do not validate that the index is smaller than v->nvqs. The ioctl path already performs both a bounds check and array_index_nospec(), but the mmap/fault path only checks that the index fits in u16. This allows an out-of-range queue index to reach driver-specific get_vq_notification() callbacks. Fix this by extracting a unified vhost_vdpa_get_vq_notification() helper that validates the queue index against v->nvqs and applies array_index_nospec() before calling the driver callback. Both the mmap and fault paths use this helper, and the bounds checking is consolidated into a single location. From source inspection, the most defensible impact is out-of-bounds access in the callback path, potentially leading to invalid PFN remaps and crash/DoS.
INFO
Published Date :
Aug. 15, 2026, 6:22 a.m.
Last Modified :
Aug. 17, 2026, 6:19 a.m.
Remotely Exploit :
No
Source :
416baaa9-dc9f-4396-8d5f-8c081fb06d67
CVSS Scores
| Score | Version | Severity | Vector | Exploitability Score | Impact Score | Source |
|---|---|---|---|---|---|---|
| CVSS 3.1 | HIGH | 416baaa9-dc9f-4396-8d5f-8c081fb06d67 |
Solution
- Apply the unified vhost_vdpa_get_vq_notification() helper.
- Validate queue index against v->nvqs.
- Apply array_index_nospec() before calling driver callback.
- Update the Linux kernel.
References to Advisories, Solutions, and Tools
Here, you will find a curated list of external links that provide in-depth
information, practical solutions, and valuable tools related to
CVE-2026-74312.
CWE - Common Weakness Enumeration
While CVE identifies
specific instances of vulnerabilities, CWE categorizes the common flaws or
weaknesses that can lead to vulnerabilities. CVE-2026-74312 is
associated with the following CWEs:
Common Attack Pattern Enumeration and Classification (CAPEC)
Common Attack Pattern Enumeration and Classification
(CAPEC)
stores attack patterns, which are descriptions of the common attributes and
approaches employed by adversaries to exploit the CVE-2026-74312
weaknesses.
We scan GitHub repositories to detect new proof-of-concept exploits. Following list is a collection of public exploits and proof-of-concepts, which have been published on GitHub (sorted by the most recently updated).
Results are limited to the first 15 repositories due to potential performance issues.
The following list is the news that have been mention
CVE-2026-74312 vulnerability anywhere in the article.
The following table lists the changes that have been made to the
CVE-2026-74312 vulnerability over time.
Vulnerability history details can be useful for understanding the evolution of a vulnerability, and for identifying the most recent changes that may impact the vulnerability's severity, exploitability, or other characteristics.
-
CVE Modified by 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Aug. 17, 2026
Action Type Old Value New Value Added CVSS V3.1 AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H Changed Affected [{'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': 'ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9', 'lessThan': '0f310bac6db9bd3bb1655707d692d9d2a86eeb17', 'versionType': 'git'}, {'status': 'affected', 'version': 'ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9', 'lessThan': '4bf5a51963ff816f7443702dc536b9327cf5e550', 'versionType': 'git'}, {'status': 'affected', 'version': 'ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9', 'lessThan': '55a644031e610ea93fbde2702c7b8f267476552f', 'versionType': 'git'}, {'status': 'affected', 'version': 'ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9', 'lessThan': '2b3f79b90b231a682315fe2191bb71925650e183', 'versionType': 'git'}, {'status': 'affected', 'version': 'ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9', 'lessThan': 'bbba4f92515238d76018e9b75e41b16d83df52c8', 'versionType': 'git'}, {'status': 'affected', 'version': 'ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9', 'lessThan': '1f5f94c6c6b2e4eaa5b45815509e21d0c6cfa81e', 'versionType': 'git'}, {'status': 'affected', 'version': 'ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9', 'lessThan': '32ac9097aa2463fcfc12f61cc4a9ebc3579cba7d', 'versionType': 'git'}, {'status': 'affected', 'version': 'ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9', 'lessThan': '929e4f044621c8cc30b612fb74e1410bef09e41b', 'versionType': 'git'}], 'programFiles': ['drivers/vhost/vdpa.c'], 'defaultStatus': 'unaffected'}, {'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '5.8'}, {'status': 'unaffected', 'version': '0', 'lessThan': '5.8', 'versionType': 'semver'}, {'status': 'unaffected', 'version': '5.10.261', 'versionType': 'semver', 'lessThanOrEqual': '5.10.*'}, {'status': 'unaffected', 'version': '5.15.212', 'versionType': 'semver', 'lessThanOrEqual': '5.15.*'}, {'status': 'unaffected', 'version': '6.1.178', 'versionType': 'semver', 'lessThanOrEqual': '6.1.*'}, {'status': 'unaffected', 'version': '6.6.145', 'versionType': 'semver', 'lessThanOrEqual': '6.6.*'}, {'status': 'unaffected', 'version': '6.12.97', 'versionType': 'semver', 'lessThanOrEqual': '6.12.*'}, {'status': 'unaffected', 'version': '6.18.40', 'versionType': 'semver', 'lessThanOrEqual': '6.18.*'}, {'status': 'unaffected', 'version': '7.1.5', 'versionType': 'semver', 'lessThanOrEqual': '7.1.*'}, {'status': 'unaffected', 'version': '7.2-rc1', 'versionType': 'original_commit_for_fix', 'lessThanOrEqual': '*'}], 'programFiles': ['drivers/vhost/vdpa.c'], 'defaultStatus': 'affected'}] [{'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': 'ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9', 'lessThan': '0f310bac6db9bd3bb1655707d692d9d2a86eeb17', 'versionType': 'git'}, {'status': 'affected', 'version': 'ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9', 'lessThan': '4bf5a51963ff816f7443702dc536b9327cf5e550', 'versionType': 'git'}, {'status': 'affected', 'version': 'ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9', 'lessThan': '55a644031e610ea93fbde2702c7b8f267476552f', 'versionType': 'git'}, {'status': 'affected', 'version': 'ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9', 'lessThan': '2b3f79b90b231a682315fe2191bb71925650e183', 'versionType': 'git'}, {'status': 'affected', 'version': 'ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9', 'lessThan': 'bbba4f92515238d76018e9b75e41b16d83df52c8', 'versionType': 'git'}, {'status': 'affected', 'version': 'ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9', 'lessThan': '1f5f94c6c6b2e4eaa5b45815509e21d0c6cfa81e', 'versionType': 'git'}, {'status': 'affected', 'version': 'ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9', 'lessThan': '32ac9097aa2463fcfc12f61cc4a9ebc3579cba7d', 'versionType': 'git'}, {'status': 'affected', 'version': 'ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9', 'lessThan': '929e4f044621c8cc30b612fb74e1410bef09e41b', 'versionType': 'git'}], 'programFiles': ['drivers/vhost/vdpa.c'], 'defaultStatus': 'unaffected'}, {'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '5.8'}, {'status': 'unaffected', 'version': '0', 'lessThan': '5.8', 'versionType': 'semver'}, {'status': 'unaffected', 'version': '5.10.261', 'versionType': 'semver', 'lessThanOrEqual': '5.10.*'}, {'status': 'unaffected', 'version': '5.15.212', 'versionType': 'semver', 'lessThanOrEqual': '5.15.*'}, {'status': 'unaffected', 'version': '6.1.178', 'versionType': 'semver', 'lessThanOrEqual': '6.1.*'}, {'status': 'unaffected', 'version': '6.6.145', 'versionType': 'semver', 'lessThanOrEqual': '6.6.*'}, {'status': 'unaffected', 'version': '6.12.97', 'versionType': 'semver', 'lessThanOrEqual': '6.12.*'}, {'status': 'unaffected', 'version': '6.18.40', 'versionType': 'semver', 'lessThanOrEqual': '6.18.*'}, {'status': 'unaffected', 'version': '7.1.5', 'versionType': 'semver', 'lessThanOrEqual': '7.1.*'}, {'status': 'unaffected', 'version': '7.2', 'versionType': 'original_commit_for_fix', 'lessThanOrEqual': '*'}], 'programFiles': ['drivers/vhost/vdpa.c'], 'defaultStatus': 'affected'}] -
New CVE Received by 416baaa9-dc9f-4396-8d5f-8c081fb06d67
Aug. 15, 2026
Action Type Old Value New Value Added Affected [{'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': 'ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9', 'lessThan': '0f310bac6db9bd3bb1655707d692d9d2a86eeb17', 'versionType': 'git'}, {'status': 'affected', 'version': 'ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9', 'lessThan': '4bf5a51963ff816f7443702dc536b9327cf5e550', 'versionType': 'git'}, {'status': 'affected', 'version': 'ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9', 'lessThan': '55a644031e610ea93fbde2702c7b8f267476552f', 'versionType': 'git'}, {'status': 'affected', 'version': 'ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9', 'lessThan': '2b3f79b90b231a682315fe2191bb71925650e183', 'versionType': 'git'}, {'status': 'affected', 'version': 'ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9', 'lessThan': 'bbba4f92515238d76018e9b75e41b16d83df52c8', 'versionType': 'git'}, {'status': 'affected', 'version': 'ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9', 'lessThan': '1f5f94c6c6b2e4eaa5b45815509e21d0c6cfa81e', 'versionType': 'git'}, {'status': 'affected', 'version': 'ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9', 'lessThan': '32ac9097aa2463fcfc12f61cc4a9ebc3579cba7d', 'versionType': 'git'}, {'status': 'affected', 'version': 'ddd89d0a059d8e9740c75a97e0efe9bf07ee51f9', 'lessThan': '929e4f044621c8cc30b612fb74e1410bef09e41b', 'versionType': 'git'}], 'programFiles': ['drivers/vhost/vdpa.c'], 'defaultStatus': 'unaffected'}, {'repo': 'https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git', 'vendor': 'Linux', 'product': 'Linux', 'versions': [{'status': 'affected', 'version': '5.8'}, {'status': 'unaffected', 'version': '0', 'lessThan': '5.8', 'versionType': 'semver'}, {'status': 'unaffected', 'version': '5.10.261', 'versionType': 'semver', 'lessThanOrEqual': '5.10.*'}, {'status': 'unaffected', 'version': '5.15.212', 'versionType': 'semver', 'lessThanOrEqual': '5.15.*'}, {'status': 'unaffected', 'version': '6.1.178', 'versionType': 'semver', 'lessThanOrEqual': '6.1.*'}, {'status': 'unaffected', 'version': '6.6.145', 'versionType': 'semver', 'lessThanOrEqual': '6.6.*'}, {'status': 'unaffected', 'version': '6.12.97', 'versionType': 'semver', 'lessThanOrEqual': '6.12.*'}, {'status': 'unaffected', 'version': '6.18.40', 'versionType': 'semver', 'lessThanOrEqual': '6.18.*'}, {'status': 'unaffected', 'version': '7.1.5', 'versionType': 'semver', 'lessThanOrEqual': '7.1.*'}, {'status': 'unaffected', 'version': '7.2-rc1', 'versionType': 'original_commit_for_fix', 'lessThanOrEqual': '*'}], 'programFiles': ['drivers/vhost/vdpa.c'], 'defaultStatus': 'affected'}] Added Description In the Linux kernel, the following vulnerability has been resolved: vhost/vdpa: validate virtqueue index in mmap and fault paths vhost_vdpa_mmap() and vhost_vdpa_fault() use vma->vm_pgoff as a virtqueue index for get_vq_notification(), but they do not validate that the index is smaller than v->nvqs. The ioctl path already performs both a bounds check and array_index_nospec(), but the mmap/fault path only checks that the index fits in u16. This allows an out-of-range queue index to reach driver-specific get_vq_notification() callbacks. Fix this by extracting a unified vhost_vdpa_get_vq_notification() helper that validates the queue index against v->nvqs and applies array_index_nospec() before calling the driver callback. Both the mmap and fault paths use this helper, and the bounds checking is consolidated into a single location. From source inspection, the most defensible impact is out-of-bounds access in the callback path, potentially leading to invalid PFN remaps and crash/DoS. Added Reference https://git.kernel.org/stable/c/0f310bac6db9bd3bb1655707d692d9d2a86eeb17 Added Reference https://git.kernel.org/stable/c/1f5f94c6c6b2e4eaa5b45815509e21d0c6cfa81e Added Reference https://git.kernel.org/stable/c/2b3f79b90b231a682315fe2191bb71925650e183 Added Reference https://git.kernel.org/stable/c/32ac9097aa2463fcfc12f61cc4a9ebc3579cba7d Added Reference https://git.kernel.org/stable/c/4bf5a51963ff816f7443702dc536b9327cf5e550 Added Reference https://git.kernel.org/stable/c/55a644031e610ea93fbde2702c7b8f267476552f Added Reference https://git.kernel.org/stable/c/929e4f044621c8cc30b612fb74e1410bef09e41b Added Reference https://git.kernel.org/stable/c/bbba4f92515238d76018e9b75e41b16d83df52c8