In the Linux kernel, the following vulnerability has been resolved: swiotlb: Preserve allocation virtual address for dynamic pools… (CVE-2026-90387)
A high-severity vulnerability in the Linux kernel's swiotlb component has been resolved. The issue involves incorrect handling of virtual addresses for dynamic pools in swiotlb_alloc_tlb(), leading to potential failures in freeing allocated memory. This occurs under specific configurations involving DMA atomic pools and CONFIG_DMA_DIRECT_REMAP. The fix ensures the correct virtual address is preserved and used during allocation and freeing operations.
AI Analysis
Technical Summary
The vulnerability in the Linux kernel's swiotlb subsystem arises because swiotlb_alloc_tlb() may allocate from the DMA atomic pool when a decrypted pool is needed in atomic context. With CONFIG_DMA_DIRECT_REMAP enabled, the atomic pool uses remapped virtual addresses differing from direct-map addresses returned by phys_to_virt(). The function swiotlb_init_io_tlb_pool() reconstructs the pool virtual address from the physical start address, which is incorrect for atomic-pool backed allocations, causing pool->vaddr to store a wrong address. Consequently, swiotlb_free_tlb() passes this incorrect address to dma_free_from_pool(), which fails to recognize the chunk, potentially leading to memory management issues. The fix involves passing the virtual address returned by the allocation path into swiotlb_init_io_tlb_pool() and storing it in pool->vaddr, ensuring consistency between allocation and free paths.
Potential Impact
This vulnerability can cause improper memory management in the Linux kernel's swiotlb subsystem, potentially leading to failures in freeing allocated DMA buffers. The CVSS score of 7.8 with high confidentiality, integrity, and availability impacts indicates that exploitation could result in significant system compromise or denial of service. However, no known exploits are reported in the wild at this time.
Mitigation Recommendations
A fix for this vulnerability has been implemented in the Linux kernel. Users and administrators should apply the official kernel updates that include this patch to resolve the issue. Since this is a kernel-level vulnerability, upgrading to the patched kernel version is the recommended remediation. Patch status is not explicitly confirmed in the provided data; therefore, check the vendor or Linux kernel advisory for the exact fixed versions and update instructions.
In the Linux kernel, the following vulnerability has been resolved: swiotlb: Preserve allocation virtual address for dynamic pools… (CVE-2026-90387)
Description
A high-severity vulnerability in the Linux kernel's swiotlb component has been resolved. The issue involves incorrect handling of virtual addresses for dynamic pools in swiotlb_alloc_tlb(), leading to potential failures in freeing allocated memory. This occurs under specific configurations involving DMA atomic pools and CONFIG_DMA_DIRECT_REMAP. The fix ensures the correct virtual address is preserved and used during allocation and freeing operations.
CVSS v3.1
Score 7.8high
AI-Powered Analysis
Machine-generated threat intelligence
Technical Analysis
The vulnerability in the Linux kernel's swiotlb subsystem arises because swiotlb_alloc_tlb() may allocate from the DMA atomic pool when a decrypted pool is needed in atomic context. With CONFIG_DMA_DIRECT_REMAP enabled, the atomic pool uses remapped virtual addresses differing from direct-map addresses returned by phys_to_virt(). The function swiotlb_init_io_tlb_pool() reconstructs the pool virtual address from the physical start address, which is incorrect for atomic-pool backed allocations, causing pool->vaddr to store a wrong address. Consequently, swiotlb_free_tlb() passes this incorrect address to dma_free_from_pool(), which fails to recognize the chunk, potentially leading to memory management issues. The fix involves passing the virtual address returned by the allocation path into swiotlb_init_io_tlb_pool() and storing it in pool->vaddr, ensuring consistency between allocation and free paths.
Potential Impact
This vulnerability can cause improper memory management in the Linux kernel's swiotlb subsystem, potentially leading to failures in freeing allocated DMA buffers. The CVSS score of 7.8 with high confidentiality, integrity, and availability impacts indicates that exploitation could result in significant system compromise or denial of service. However, no known exploits are reported in the wild at this time.
Mitigation Recommendations
A fix for this vulnerability has been implemented in the Linux kernel. Users and administrators should apply the official kernel updates that include this patch to resolve the issue. Since this is a kernel-level vulnerability, upgrading to the patched kernel version is the recommended remediation. Patch status is not explicitly confirmed in the provided data; therefore, check the vendor or Linux kernel advisory for the exact fixed versions and update instructions.
Technical Details
- Gcve Source
- db.gcve.eu
- Osv Id
- GHSA-rw87-3jgx-gg57
- Osv Schema Version
- 1.4.0
- Aliases
- ["CVE-2026-90387"]
- Database Specific Severity
- HIGH
- Cvss Version
- 3.1
Threat ID: 6aade51c55bf5e2cf5edc0a4
Added to database: 09/19/2026, 01:27:56 UTC
Last enriched: 09/19/2026, 01:46:14 UTC
Last updated: 09/19/2026, 01:46:14 UTC
Views: 2
Community Reviews
0 reviewsCrowdsource mitigation strategies, share intel context, and vote on the most helpful responses. Sign in to add your voice and help keep defenders ahead.
Want to contribute mitigation steps or threat intel context? Sign in or create an account to join the community discussion.
Actions
Updates to AI analysis require Pro Console access. Upgrade inside Console → Billing.
Need more coverage?
Upgrade to Pro Console for AI refresh and higher limits.
For incident response and remediation, OffSeq services can help resolve threats faster.
Latest Threats
Check if your credentials are on the dark web
Instant breach scanning across billions of leaked records. Free tier available.