Upstream information

CVE-2026-99000 at MITRE

Description

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

drm/xe: Fix shrinker accounting double-subtraction on nested external pins

xe_bo_pin_external() and xe_bo_unpin_external() support nested pins,
since the underlying ttm_bo_pin()/ttm_bo_unpin() maintain a pin_count
refcount rather than a boolean. However, the shrinker accounting calls
xe_ttm_tt_account_subtract() and xe_ttm_tt_account_add() are invoked
unconditionally on every pin_external()/unpin_external() call, instead
of only on the transition into and out of the pinned state.

An external BO (dma-buf) can be pinned more than once while already
pinned, for example when it has multiple attachments/importers, each
independently calling xe_bo_pin_external(). Each such nested pin
subtracts the BO's pages from the shrinker's accounting again, even
though the BO's pages were already removed from consideration by the
first pin. Symmetrically, each nested unpin adds them back again
before the BO is actually unpinned. This desynchronizes the
shrinker's page and object counts from reality, and since they are
declared as signed long but interpreted as unsigned long in
xe_shrinker_count(), the underflow can turn into an enormous
shrinkable/purgeable page count, causing the shrinker to be invoked
excessively under memory pressure.

Guard the accounting calls with the same pin-count transition checks
already used to guard the pinned_link list maintenance, so accounting
is only updated on the outermost pin and the final unpin.

While centralizing this logic into xe_bo_account_pin()/
xe_bo_account_unpin(), also close a second, related accounting gap
affecting imported dma-bufs. For an imported bo's ttm_tt, xe's
ttm_tt_populate hook (xe_ttm_tt_populate()) early-returns without
calling xe_ttm_tt_account_add(), since TTM_TT_FLAG_EXTERNAL is set
without TTM_TT_FLAG_EXTERNAL_MAPPABLE. However, TTM core's
ttm_tt_populate() wrapper unconditionally marks the tt as populated
on driver-hook success, so ttm_tt_is_populated() still reports true
for it. xe_bo_account_pin()/xe_bo_account_unpin() trusted
ttm_tt_is_populated() as a proxy for "these pages are accounted for
by the shrinker", and would subtract/add pages for such a tt that
were never added in the first place, again underflowing the
shrinker's counts. This is reachable today via xe_bo_pin_external(),
and would have become newly reachable via the fb-pin path once this
patch routes __xe_pin_fb_vma() through xe_bo_pin_account() below, so
fix it here rather than in a later patch, to avoid a commit in this
series that introduces the regression before fixing it. Skip the
accounting for imported bos, using the same EXTERNAL &&
!EXTERNAL_MAPPABLE test xe_ttm_tt_populate()/xe_ttm_tt_unpopulate()
use to decide whether to act, via a new xe_ttm_bo_is_imported()
helper (hoisted up from its only prior use site).

v2:
- Fix the critical issue caught by Sashiko AI review: the pin-count
transition check introduced here was still bypassed by the fb-pin
path (__xe_pin_fb_vma()/__xe_unpin_fb_vma()), which could leave a
stale pinned_link entry and a permanent shrinker accounting leak
when the fb-unpin performed the true last unpin. Addressed in a
separate follow-up patch in this series rather than folded in here,
since it is a distinct bug with its own Fixes: tag.
- Drop the unneeded local "last_unpin" variable in
xe_bo_unpin_external(), restoring the original inline
bo->ttm.pin_count == 1 check; it was a no-op rename not used by any
of the new accounting helpers, and was going to be deleted again by
the follow-up patch anyway.

v3:
- Exclude imported dma-bufs from the pin/unpin shrinker accounting,
fixing another underflow caught by Sashiko AI review.
- Add a short comment on the backup-object pin site noting it's
already populated/accounted at pin time, addressing (as a
false-positive clarification, no code fix needed) a separate
Medium-severity accounting-leak concern also caught by Sashiko AI

---truncated---

SUSE information

Overall state of this security issue: Resolved

This issue is currently rated as having low severity.

CVSS v3 Scores
CVSS detail SUSE
Base Score 3.3
Vector CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:L
Attack Vector Local
Attack Complexity Low
Privileges Required Low
User Interaction None
Scope Unchanged
Confidentiality Impact None
Integrity Impact None
Availability Impact Low
CVSSv3 Version 3.1

Note from the SUSE Security Team on the kernel-default package

SUSE will no longer fix all CVEs in the Linux Kernel anymore, but declare some bug classes as won't fix. Please refer to TID 21496 for more details.

SUSE Bugzilla entry: 1288047 [NEW]

No SUSE Security Announcements cross referenced.


Status of this issue by product and package

Please note that this evaluation state might be work in progress, incomplete or outdated. Also information for service packs in the LTSS phase is only included for issues meeting the LTSS criteria. If in doubt, feel free to contact us for clarification. The updates are grouped by state of their lifecycle. SUSE product lifecycles are documented on the lifecycle page.

Product(s) Source package State
Products under general support and receiving all security fixes.
SUSE Linux Enterprise Desktop 15 SP7 kernel-default Not affected
SUSE Linux Enterprise Desktop 15 SP7 kernel-source Not affected
SUSE Linux Enterprise High Availability Extension 15 SP7 kernel-default Not affected
SUSE Linux Enterprise High Availability Extension 15 SP7 kernel-source Not affected
SUSE Linux Enterprise High Availability Extension 16.0 kernel-default Not affected
SUSE Linux Enterprise High Availability Extension 16.0 kernel-source Not affected
SUSE Linux Enterprise Micro 5.3 kernel-default Not affected
SUSE Linux Enterprise Micro 5.3 kernel-rt Not affected
SUSE Linux Enterprise Micro 5.3 kernel-source Not affected
SUSE Linux Enterprise Micro 5.3 kernel-source-rt Not affected
SUSE Linux Enterprise Micro 5.4 kernel-default Not affected
SUSE Linux Enterprise Micro 5.4 kernel-rt Not affected
SUSE Linux Enterprise Micro 5.4 kernel-source Not affected
SUSE Linux Enterprise Micro 5.4 kernel-source-rt Not affected
SUSE Linux Enterprise Micro 5.5 kernel-default Not affected
SUSE Linux Enterprise Micro 5.5 kernel-source Not affected
SUSE Linux Enterprise Micro 5.5 kernel-source-rt Not affected
SUSE Linux Enterprise Module for Basesystem 15 SP7 kernel-default Not affected
SUSE Linux Enterprise Module for Basesystem 15 SP7 kernel-source Not affected
SUSE Linux Enterprise Module for Development Tools 15 SP7 kernel-default Not affected
SUSE Linux Enterprise Module for Development Tools 15 SP7 kernel-source Not affected
SUSE Linux Enterprise Real Time 15 SP7 kernel-source-rt Not affected
SUSE Linux Enterprise Server 15 SP7 kernel-default Not affected
SUSE Linux Enterprise Server 15 SP7 kernel-source Not affected
SUSE Linux Enterprise Server 16.0 kernel-default Not affected
SUSE Linux Enterprise Server 16.0 kernel-source Not affected
SUSE Linux Enterprise Server for SAP Applications 15 SP7 kernel-default Not affected
SUSE Linux Enterprise Server for SAP Applications 15 SP7 kernel-source Not affected
SUSE Linux Enterprise Server for SAP applications 16.0 kernel-default Not affected
SUSE Linux Enterprise Server for SAP applications 16.0 kernel-source Not affected
SUSE Linux Micro 6.0 kernel-default Not affected
SUSE Linux Micro 6.0 kernel-source Not affected
SUSE Linux Micro 6.0 kernel-source-rt Not affected
SUSE Linux Micro 6.1 kernel-default Not affected
SUSE Linux Micro 6.1 kernel-source Not affected
SUSE Linux Micro 6.1 kernel-source-rt Not affected
SUSE Linux Micro 6.2 kernel-default Not affected
SUSE Linux Micro 6.2 kernel-source Not affected
SUSE Linux Micro Extras 6.0 kernel-default Not affected
SUSE Linux Micro Extras 6.0 kernel-source Not affected
SUSE Linux Micro Extras 6.0 kernel-source-rt Not affected
SUSE Linux Micro Extras 6.1 kernel-default Not affected
SUSE Linux Micro Extras 6.1 kernel-source Not affected
SUSE Real Time Module 15 SP7 kernel-source-rt Not affected
openSUSE Leap 16.0 kernel-source Not affected
Products under Long Term Service Pack support and receiving important and critical security fixes.
SUSE Linux Enterprise High Performance Computing 12 SP5 kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS kernel-default Not affected
SUSE Linux Enterprise High Performance Computing 15 SP4-LTSS kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP5 kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP5-LTSS kernel-default Not affected
SUSE Linux Enterprise High Performance Computing 15 SP5-LTSS kernel-source Not affected
SUSE Linux Enterprise Module for Basesystem 15 SP4 kernel-source Not affected
SUSE Linux Enterprise Module for Basesystem 15 SP5 kernel-source Not affected
SUSE Linux Enterprise Module for Basesystem 15 SP6 kernel-source Not affected
SUSE Linux Enterprise Module for Development Tools 15 SP4 kernel-source Not affected
SUSE Linux Enterprise Module for Development Tools 15 SP5 kernel-source Not affected
SUSE Linux Enterprise Module for Development Tools 15 SP6 kernel-source Not affected
SUSE Linux Enterprise Server 11 SP4 LTSS EXTREME CORE kernel-default Not affected
SUSE Linux Enterprise Server 11 SP4 LTSS EXTREME CORE kernel-source Not affected
SUSE Linux Enterprise Server 12 SP5 kernel-source Not affected
SUSE Linux Enterprise Server 12 SP5-LTSS kernel-default Not affected
SUSE Linux Enterprise Server 12 SP5-LTSS kernel-source Not affected
SUSE Linux Enterprise Server 15 SP4 kernel-source Not affected
SUSE Linux Enterprise Server 15 SP4-LTSS kernel-default Not affected
SUSE Linux Enterprise Server 15 SP4-LTSS kernel-source Not affected
SUSE Linux Enterprise Server 15 SP5 kernel-source Not affected
SUSE Linux Enterprise Server 15 SP5-LTSS kernel-default Not affected
SUSE Linux Enterprise Server 15 SP5-LTSS kernel-source Not affected
SUSE Linux Enterprise Server 15 SP6 kernel-source Not affected
SUSE Linux Enterprise Server 15 SP6-LTSS kernel-default Not affected
SUSE Linux Enterprise Server 15 SP6-LTSS kernel-source Not affected
SUSE Linux Enterprise Server LTSS Extended Security 12 SP5 kernel-default Not affected
SUSE Linux Enterprise Server LTSS Extended Security 12 SP5 kernel-source Not affected
SUSE Linux Enterprise Server for SAP Applications 15 SP4 kernel-default Not affected
SUSE Linux Enterprise Server for SAP Applications 15 SP4 kernel-source Not affected
SUSE Linux Enterprise Server for SAP Applications 15 SP5 kernel-default Not affected
SUSE Linux Enterprise Server for SAP Applications 15 SP5 kernel-source Not affected
SUSE Linux Enterprise Server for SAP Applications 15 SP6 kernel-default Not affected
SUSE Linux Enterprise Server for SAP Applications 15 SP6 kernel-source Not affected
Products past their end of life and not receiving proactive updates anymore.
SUSE CaaS Platform 4.0 kernel-source Not affected
SUSE Enterprise Storage 6 kernel-source Not affected
SUSE Enterprise Storage 7 kernel-source Not affected
SUSE Enterprise Storage 7.1 kernel-source Not affected
SUSE Linux Enterprise Desktop 11 SP4 kernel-source Not affected
SUSE Linux Enterprise Desktop 15 SP1 kernel-source Not affected
SUSE Linux Enterprise Desktop 15 SP2 kernel-source Not affected
SUSE Linux Enterprise Desktop 15 SP3 kernel-source Not affected
SUSE Linux Enterprise Desktop 15 SP4 kernel-source Not affected
SUSE Linux Enterprise Desktop 15 SP5 kernel-source Not affected
SUSE Linux Enterprise Desktop 15 SP6 kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP1 kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP1-ESPOS kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP1-LTSS kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP2 kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP2-ESPOS kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP2-LTSS kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP3 kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP3-ESPOS kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP3-LTSS kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP4 kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP4-ESPOS kernel-source Not affected
SUSE Linux Enterprise High Performance Computing 15 SP5-ESPOS kernel-source Not affected
SUSE Linux Enterprise Micro 5.0 kernel-default Not affected
SUSE Linux Enterprise Micro 5.1 kernel-default Not affected
SUSE Linux Enterprise Micro 5.2 kernel-default Not affected
SUSE Linux Enterprise Micro 5.2 kernel-source Not affected
SUSE Linux Enterprise Module for Basesystem 15 SP1 kernel-source Not affected
SUSE Linux Enterprise Module for Basesystem 15 SP2 kernel-source Not affected
SUSE Linux Enterprise Module for Basesystem 15 SP3 kernel-source Not affected
SUSE Linux Enterprise Module for Development Tools 15 SP1 kernel-source Not affected
SUSE Linux Enterprise Module for Development Tools 15 SP2 kernel-source Not affected
SUSE Linux Enterprise Module for Development Tools 15 SP3 kernel-source Not affected
SUSE Linux Enterprise Real Time 15 SP2 kernel-source Not affected
SUSE Linux Enterprise Real Time 15 SP3 kernel-source Not affected
SUSE Linux Enterprise Real Time 15 SP4 kernel-source Not affected
SUSE Linux Enterprise Real Time 15 SP4 kernel-source-rt Not affected
SUSE Linux Enterprise Real Time 15 SP5 kernel-source-rt Not affected
SUSE Linux Enterprise Server 11 SP4 kernel-source Not affected
SUSE Linux Enterprise Server 11 SP4-LTSS kernel-source Not affected
SUSE Linux Enterprise Server 15 SP1 kernel-source Not affected
SUSE Linux Enterprise Server 15 SP1-BCL kernel-source Not affected
SUSE Linux Enterprise Server 15 SP1-LTSS kernel-default Not affected
SUSE Linux Enterprise Server 15 SP1-LTSS kernel-source Not affected
SUSE Linux Enterprise Server 15 SP2 kernel-source Not affected
SUSE Linux Enterprise Server 15 SP2-BCL kernel-source Not affected
SUSE Linux Enterprise Server 15 SP2-LTSS kernel-default Not affected
SUSE Linux Enterprise Server 15 SP2-LTSS kernel-source Not affected
SUSE Linux Enterprise Server 15 SP3 kernel-source Not affected
SUSE Linux Enterprise Server 15 SP3-BCL kernel-source Not affected
SUSE Linux Enterprise Server 15 SP3-LTSS kernel-default Not affected
SUSE Linux Enterprise Server 15 SP3-LTSS kernel-source Not affected
SUSE Linux Enterprise Server for SAP Applications 15 SP1 kernel-source Not affected
SUSE Linux Enterprise Server for SAP Applications 15 SP2 kernel-source Not affected
SUSE Linux Enterprise Server for SAP Applications 15 SP3 kernel-source Not affected
SUSE Manager Proxy 4.0 kernel-source Not affected
SUSE Manager Proxy 4.1 kernel-source Not affected
SUSE Manager Proxy 4.2 kernel-source Not affected
SUSE Manager Proxy 4.3 kernel-source Not affected
SUSE Manager Proxy LTS 4.3 kernel-source Not affected
SUSE Manager Retail Branch Server 4.0 kernel-source Not affected
SUSE Manager Retail Branch Server 4.1 kernel-source Not affected
SUSE Manager Retail Branch Server 4.2 kernel-source Not affected
SUSE Manager Retail Branch Server 4.3 kernel-source Not affected
SUSE Manager Retail Branch Server LTS 4.3 kernel-source Not affected
SUSE Manager Server 4.0 kernel-source Not affected
SUSE Manager Server 4.1 kernel-source Not affected
SUSE Manager Server 4.2 kernel-source Not affected
SUSE Manager Server 4.3 kernel-source Not affected
SUSE Manager Server LTS 4.3 kernel-source Not affected
SUSE Real Time Module 15 SP4 kernel-source-rt Not affected
SUSE Real Time Module 15 SP5 kernel-source-rt Not affected
openSUSE Leap 15.3 kernel-source Not affected
openSUSE Leap 15.4 kernel-source Not affected
openSUSE Leap 15.4 kernel-source-rt Not affected
openSUSE Leap 15.5 kernel-source Not affected
openSUSE Leap 15.5 kernel-source-rt Not affected
openSUSE Leap 15.6 kernel-source Not affected


SUSE Timeline for this CVE

CVE page created: Tue Oct 27 17:48:53 2026
CVE page last modified: Wed Oct 28 14:18:05 2026