In the Linux kernel, the following vulnerability has been resolved:
drm/xe/hmm: Don't dereference struct page pointers without notifier lock
The pnfs that we obtain from hmm_range_fault() point to pages that we don't have a reference on, and the guarantee that they are still in the cpu page-tables is that the notifier lock must be held and the notifier seqno is still valid.
So while building the sg table and marking the pages accesses / dirty we need to hold this lock with a validated seqno.
However, the lock is reclaim tainted which makes sg_alloc_table_from_pages_segment() unusable, since it internally allocates memory.
Instead build the sg-table manually. For the non-iommu case this might lead to fewer coalesces, but if that's a problem it can be fixed up later in the resource cursor code. For the iommu case, the whole sg-table may still be coalesced to a single contigous device va region.
This avoids marking pages that we don't own dirty and accessed, and it also avoid dereferencing struct pages that we don't own.
v2: - Use assert to check whether hmm pfns are valid (Matthew Auld) - Take into account that large pages may cross range boundaries (Matthew Auld)
v3: - Don't unnecessarily check for a non-freed sg-table. (Matthew Auld) - Add a missing up_read() in an error path. (Matthew Auld)
(cherry picked from commit ea3e66d280ce2576664a862693d1da8fd324c317)
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Debian | — | Upgrade linux | Jul 23, 2026 | Jul 23, 2026 |
| Redhat_linux | — | No solution exists | Jul 9, 2025 | Apr 1, 2025 |
| Suse | — | Upgrade kernel-macrosUpgrade kernel-kvmsmallUpgrade kernel-64kbUpgrade reiserfs-kmp-defaultUpgrade kernel-default-baseUpgrade kernel-source-azureUpgrade kernel-develUpgrade kernel-zfcpdumpUpgrade kernel-azure-extraUpgrade kernel-kvmsmall-develUpgrade kernel-default-develUpgrade kernel-default-livepatchUpgrade kernel-symsUpgrade kernel-default-extraUpgrade kernel-devel-azureUpgrade kernel-64kb-develUpgrade kernel-sourceUpgrade kernel-obs-qaUpgrade kernel-docsUpgrade kernel-azureUpgrade kernel-64kb-extraUpgrade kernel-source-vanillaUpgrade kernel-azure-vdsoUpgrade kernel-syms-azureUpgrade kernel-azure-develUpgrade kernel-kvmsmall-vdsoUpgrade kernel-docs-htmlUpgrade kernel-default-vdsoUpgrade kernel-defaultUpgrade kernel-obs-build | Dec 5, 2025 | Jul 8, 2025 |
| Ubuntu | — | Upgrade linux-image-oracle-64kUpgrade linux-image-6.11.0-1018-azureUpgrade linux-image-genericUpgrade linux-image-6.11.0-1016-gcp-64kUpgrade linux-image-lowlatency-hwe-24.04Upgrade linux-image-lowlatency-64k-hwe-24.04Upgrade linux-image-6.11.0-1018-azure-fdeUpgrade linux-image-generic-64kUpgrade linux-image-generic-hwe-24.04Upgrade linux-image-oem-24.04bUpgrade linux-image-6.11.0-1015-lowlatencyUpgrade linux-image-6.11.0-1015-awsUpgrade linux-image-6.11.0-1016-gcpUpgrade linux-image-6.11.0-28-genericUpgrade linux-image-azure-6.11Upgrade linux-image-virtualUpgrade linux-image-realtimeUpgrade linux-image-virtual-hwe-24.04Upgrade linux-image-gcpUpgrade linux-image-lowlatency-64kUpgrade linux-image-oracleUpgrade linux-image-6.11.0-1011-realtimeUpgrade linux-image-6.11.0-1024-oemUpgrade linux-image-awsUpgrade linux-image-azure-fde-6.11Upgrade linux-image-lowlatency-6.11Upgrade linux-image-6.11.0-1017-oracle-64kUpgrade linux-image-azureUpgrade linux-image-raspiUpgrade linux-image-lowlatencyUpgrade linux-image-generic-64k-hwe-24.04Upgrade linux-image-azure-fdeUpgrade linux-image-6.11.0-1017-oracleUpgrade linux-image-6.11.0-28-generic-64kUpgrade linux-image-lowlatency-64k-6.11Upgrade linux-image-gcp-64kUpgrade linux-image-azure-fde-edgeUpgrade linux-image-6.11.0-1015-lowlatency-64kUpgrade linux-image-6.11.0-1014-raspi | Jun 26, 2025 | Apr 1, 2025 |
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub