CVE-2026-98003: iommu/amd: Do not reallocate GA log buffers on resume

Published Sep 25, 2026
·
Updated

In the Linux kernel, the following vulnerability has been resolved:

iommu/amd: Do not reallocate GA log buffers on resume

Commit c5e1a1eb9279 ("iommu/amd: Simplify and Consolidate Virtual APIC (AVIC) Enablement") moved the GA log allocation from iommuinitpci() to enableiommusvapic(), which is called on every resume.

iommuinitgalog() assigns iommu->galog and iommu->galogtail unconditionally. Each resume therefore replaces the boot-time pointers and leaks both old allocations. The function also uses GFPKERNEL from a syscore resume callback, where interrupts are disabled and the non-boot CPUs are offline.

Return early if both buffers are already allocated. Clear the pointers in freegalog() so a partial allocation failure cannot leave galog dangling.

Affected Software

1 affected component
Linux Linux kernel

Event History

Sep 25, 2026
CVE Published
via MITRE·10:23 AM
Data Sourced
via MITRE·10:23 AM
Description
Data Sourced
via NVD·11:17 AM
Description

Frequently Asked Questions

1

Which systems are exposed to this issue?

The issue affects Linux kernel systems using the AMD IOMMU GA log path where Virtual APIC (AVIC) enablement runs. The problematic allocation path is invoked during system resume.

2

What event triggers the leak and unsafe allocation context?

Each system resume calls enable_iommus_vapic(), which can reallocate GA log buffers and replace the existing pointers. This occurs from a syscore resume callback while interrupts are disabled and non-boot CPUs are offline.

3

How can I tell whether a system is affected?

A vulnerable kernel reallocates GA log buffers on every resume instead of retaining already allocated buffers. Repeated suspend/resume cycles can therefore leak the prior GA log allocations; partial allocation failure may also leave ga_log dangling.

4

What does the fix change?

The fix returns early when both GA log buffers are already allocated, preventing replacement of the boot-time pointers on resume. It also clears the pointers in free_ga_log() to prevent a dangling ga_log pointer after a partial allocation failure.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203