Package: src:linux
Version: 6.12.113-1
Severity: important
Tags: upstream
Control: found -1 6.12.111-1

Dear Maintainer,

Since the upgrade to 6.12.113-1, one of our KVM guests froze twice under
page-cache reclaim. A second guest running 6.12.111-1 froze with similar
symptoms during the same kind of workload, but that oops could not be
captured; 6.12.111-1 is marked found because it contains the same upstream
change (see below), not because of a captured trace.

kswapd oopses with a NULL pointer dereference in list_lru_add() and dies
while holding the mapping's xa_lock, so every subsequent reader of that
file spins forever in __pv_queued_spin_lock_slowpath/kvm_wait and the
guest becomes unresponsive.

Oops (captured from guest memory, kernel otherwise untainted):

  BUG: kernel NULL pointer dereference, address: 0000000000000008
  #PF: supervisor read access in kernel mode
  #PF: error_code(0x0000) - not-present page
  Oops: Oops: 0000 [#1] PREEMPT SMP NOPTI
  CPU: 1 UID: 0 PID: 67 Comm: kswapd0 Not tainted 6.12.113+deb13-amd64 #1  
Debian 6.12.113-1
  Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 
rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org 04/01/2014
  RIP: 0010:list_lru_add+0x83/0x110
  Call Trace:
   list_lru_add_obj+0x7c/0xa0
   workingset_update_node+0x8a/0xb0
   xas_store+0x24e/0x670
   __filemap_remove_folio+0x116/0x1e0
   __remove_mapping+0xdf/0x220
   shrink_folio_list+0xb62/0xd00
   evict_folios+0x24f/0x650
   try_to_shrink_lruvec+0x21b/0x2b0
   shrink_one+0x102/0x1f0
   shrink_node+0xa08/0xc40
   balance_pgdat+0x520/0x9a0
   kswapd+0x1f1/0x380
   kthread+0xcf/0x100
   ret_from_fork+0x31/0x50
   ret_from_fork_asm+0x1a/0x30
  note: kswapd0[67] exited with irqs disabled
  note: kswapd0[67] exited with preempt_count 3

Workload: XFS root/data filesystem, many short-lived SSH sessions (each in
its own systemd session scope / memcg) doing file deployments. No global
memory pressure (about 60% of RAM available, swap unused). The freeze
happened twice within 30 hours on 6.12.113-1. We never saw it on this guest with
6.12.107-1.

Probable cause: stable 6.12.109 picked up
  ad812805fea7 "xarray: honor XA_FLAGS_ACCOUNT in xas_split_alloc()"
  (upstream 789763523fb4)
which makes xa_nodes allocated during folio split memcg-charged. The upstream
dependency that installs the shadow_nodes list_lru on the xa_state during
split,
  aca1f2d5de17 "mm/huge_memory: initialise workingset state before folio split"
does not appear to be in 6.12.y (checked ChangeLog-6.12.109 to 6.12.113).
Without it, a memcg-charged xa_node can reach workingset_update_node() for a
memcg whose shadow_nodes list_lru was never allocated, hence the NULL+0x8
dereference (list_add_tail on l->list.prev).

The same crash and analysis were reported on Amazon Linux 6.12.110:
  https://github.com/awslabs/amazon-eks-ami/issues/2845
Amazon shipped a fixed kernel (6.12.111-136.204) on 2026-10-12.

Note: the security tracker marks CVE-2026-80729 (the aca1f2d5de17 fix) as
"vulnerable code not present" for trixie. That is true for xas_try_split(),
but the 6.12.109 backport reintroduces the same defect via xas_split_alloc(),
so trixie is effectively affected.

Since an unprivileged process filling page cache in its own memcg seems
able to trigger it, this is also a local DoS on shared hosts.

Workaround confirmed in place: booting with cgroup.memory=nokmem.

Suggested fix: backport aca1f2d5de17 to 6.12.y (and 6.18.y, where the
stable backport also failed to apply), or revert ad812805fea7 in the
Debian package until stable catches up.

We are reporting the regression to [email protected] /
[email protected] as well and will link the thread here.

-- Package-specific info:
** Version:
Linux version 6.12.113+deb13-amd64 ([email protected]) 
(x86_64-linux-gnu-gcc-14 (Debian 14.2.0-19) 14.2.0, GNU ld (GNU Binutils for 
Debian) 2.44) #1 SMP PREEMPT_DYNAMIC Debian 6.12.113-1 (2026-10-15)

** Command line:
BOOT_IMAGE=/boot/vmlinuz-6.12.113+deb13-amd64 root=/dev/mapper/vg_root-rootfs 
ro cgroup.memory=nokmem console=tty0 console=ttyS0,115200 quiet

** Not tainted

** Model information
sys_vendor: QEMU
product_name: Standard PC (i440FX + PIIX, 1996)
product_version: pc-i440fx-9.2
chassis_vendor: QEMU
chassis_version: pc-i440fx-9.2
bios_vendor: SeaBIOS
bios_version: rel-1.16.3-0-ga6ed6b701f0a-prebuilt.qemu.org

** Configuration for modprobe:
blacklist arkfb
blacklist aty128fb
blacklist atyfb
blacklist radeonfb
blacklist cirrusfb
blacklist cyber2000fb
blacklist kyrofb
blacklist matroxfb_base
blacklist mb862xxfb
blacklist neofb
blacklist pm2fb
blacklist pm3fb
blacklist s3fb
blacklist savagefb
blacklist sisfb
blacklist tdfxfb
blacklist tridentfb
blacklist vt8623fb
options snd_pcsp index=-2
options cx88_alsa index=-2
options snd_atiixp_modem index=-2
options snd_intel8x0m index=-2
options snd_via82xx_modem index=-2
options bonding max_bonds=0
options dummy numdummies=0
options ifb numifbs=0
options cgroup memory=nokmem

** Loaded modules:
binfmt_misc
intel_rapl_msr
intel_rapl_common
kvm_amd
ccp
kvm
irqbypass
crct10dif_pclmul
ghash_clmulni_intel
sha512_ssse3
sha256_ssse3
sha1_ssse3
aesni_intel
gf128mul
crypto_simd
bochs
cryptd
drm_vram_helper
vga16fb
drm_ttm_helper
pcspkr
vgastate
ttm
drm_kms_helper
virtio_balloon
button
joydev
evdev
sg
drm
efi_pstore
configfs
nfnetlink
vsock_loopback
vmw_vsock_virtio_transport_common
vmw_vsock_vmci_transport
vsock
vmw_vmci
qemu_fw_cfg
ip_tables
x_tables
autofs4
xfs
libcrc32c
crc32c_generic
hid_generic
usbhid
hid
dm_mod
sr_mod
cdrom
uhci_hcd
ata_generic
ehci_pci
sd_mod
virtio_net
ehci_hcd
ata_piix
libata
usbcore
net_failover
virtio_scsi
psmouse
failover
scsi_mod
serio_raw
crc32_pclmul
i2c_piix4
crc32c_intel
i2c_smbus
scsi_common
usb_common
floppy

** PCI devices:
00:00.0 Host bridge [0600]: Intel Corporation 440FX - 82441FX PMC [Natoma] 
[8086:1237] (rev 02)
        Subsystem: Red Hat, Inc. Qemu virtual machine [1af4:1100]
        Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR+ FastB2B- DisINTx-
        Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- 
<MAbort- >SERR- <PERR- INTx-

00:01.0 ISA bridge [0601]: Intel Corporation 82371SB PIIX3 ISA [Natoma/Triton 
II] [8086:7000]
        Subsystem: Red Hat, Inc. Qemu virtual machine [1af4:1100]
        Physical Slot: 1
        Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR+ FastB2B- DisINTx-
        Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- 
<TAbort- <MAbort- >SERR- <PERR- INTx-

00:01.1 IDE interface [0101]: Intel Corporation 82371SB PIIX3 IDE 
[Natoma/Triton II] [8086:7010] (prog-if 80 [ISA Compatibility mode-only 
controller, supports bus mastering])
        Subsystem: Red Hat, Inc. Qemu virtual machine [1af4:1100]
        Physical Slot: 1
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR+ FastB2B- DisINTx-
        Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- 
<TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0
        Region 0: I/O ports at 01f0 [size=8]
        Region 1: I/O ports at 03f4
        Region 2: I/O ports at 0170 [size=8]
        Region 3: I/O ports at 0374
        Region 4: I/O ports at f0c0 [size=16]
        Kernel driver in use: ata_piix
        Kernel modules: ata_piix, ata_generic

00:01.2 USB controller [0c03]: Intel Corporation 82371SB PIIX3 USB 
[Natoma/Triton II] [8086:7020] (rev 01) (prog-if 00 [UHCI])
        Subsystem: Red Hat, Inc. QEMU Virtual Machine [1af4:1100]
        Physical Slot: 1
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR+ FastB2B- DisINTx-
        Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- 
<MAbort- >SERR- <PERR- INTx-
        Latency: 0
        Interrupt: pin D routed to IRQ 11
        Region 4: I/O ports at f080 [size=32]
        Kernel driver in use: uhci_hcd
        Kernel modules: uhci_hcd

00:01.3 Bridge [0680]: Intel Corporation 82371AB/EB/MB PIIX4 ACPI [8086:7113] 
(rev 03)
        Subsystem: Red Hat, Inc. Qemu virtual machine [1af4:1100]
        Physical Slot: 1
        Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR+ FastB2B- DisINTx-
        Status: Cap- 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- 
<TAbort- <MAbort- >SERR- <PERR- INTx-
        Interrupt: pin A routed to IRQ 9
        Kernel driver in use: piix4_smbus
        Kernel modules: i2c_piix4

00:02.0 VGA compatible controller [0300]: Device [1234:1111] (rev 02) (prog-if 
00 [VGA controller])
        Subsystem: Red Hat, Inc. Device [1af4:1100]
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR- FastB2B- DisINTx-
        Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- 
<MAbort- >SERR- <PERR- INTx-
        Latency: 0
        Region 0: Memory at fd000000 (32-bit, prefetchable) [size=16M]
        Region 2: Memory at fea50000 (32-bit, non-prefetchable) [size=4K]
        Expansion ROM at 000c0000 [disabled] [size=128K]
        Kernel driver in use: bochs-drm
        Kernel modules: bochs

00:03.0 Unclassified device [00ff]: Red Hat, Inc. Virtio memory balloon 
[1af4:1002]
        Subsystem: Red Hat, Inc. Device [1af4:0005]
        Physical Slot: 3
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR+ FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- 
<MAbort- >SERR- <PERR- INTx-
        Latency: 0
        Interrupt: pin A routed to IRQ 10
        Region 0: I/O ports at f000 [size=64]
        Region 4: Memory at 382000000000 (64-bit, prefetchable) [size=16K]
        Capabilities: <access denied>
        Kernel driver in use: virtio-pci

00:05.0 PCI bridge [0604]: Red Hat, Inc. QEMU PCI-PCI bridge [1b36:0001] 
(prog-if 00 [Normal decode])
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR+ FastB2B- DisINTx-
        Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- 
<MAbort- >SERR- <PERR- INTx-
        Latency: 0
        Interrupt: pin A routed to IRQ 11
        Region 0: Memory at 380000000000 (64-bit, non-prefetchable) [size=256]
        Bus: primary=00, secondary=01, subordinate=01, sec-latency=0
        I/O behind bridge: e000-efff [size=4K] [16-bit]
        Memory behind bridge: fe800000-fe9fffff [size=2M] [32-bit]
        Prefetchable memory behind bridge: 381800000000-381fffffffff [size=32G] 
[32-bit]
        Secondary status: 66MHz+ FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- 
<MAbort- <SERR- <PERR-
        BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
                PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
        Capabilities: <access denied>

00:08.0 Communication controller [0780]: Red Hat, Inc. Virtio console 
[1af4:1003]
        Subsystem: Red Hat, Inc. Device [1af4:0003]
        Physical Slot: 8
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR+ FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- 
<MAbort- >SERR- <PERR- INTx-
        Latency: 0
        Interrupt: pin A routed to IRQ 11
        Region 0: I/O ports at f040 [size=64]
        Region 1: Memory at fea51000 (32-bit, non-prefetchable) [size=4K]
        Region 4: Memory at 382000004000 (64-bit, prefetchable) [size=16K]
        Capabilities: <access denied>
        Kernel driver in use: virtio-pci

00:12.0 Ethernet controller [0200]: Red Hat, Inc. Virtio network device 
[1af4:1000]
        Subsystem: Red Hat, Inc. Device [1af4:0001]
        Physical Slot: 18
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR+ FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- 
<MAbort- >SERR- <PERR- INTx-
        Latency: 0
        Interrupt: pin A routed to IRQ 10
        Region 0: I/O ports at f0a0 [size=32]
        Region 1: Memory at fea52000 (32-bit, non-prefetchable) [size=4K]
        Region 4: Memory at 382000008000 (64-bit, prefetchable) [size=16K]
        Expansion ROM at fea00000 [disabled] [size=256K]
        Capabilities: <access denied>
        Kernel driver in use: virtio-pci

00:1e.0 PCI bridge [0604]: Red Hat, Inc. QEMU PCI-PCI bridge [1b36:0001] 
(prog-if 00 [Normal decode])
        Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR+ FastB2B- DisINTx-
        Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- 
<MAbort- >SERR- <PERR- INTx-
        Interrupt: pin A routed to IRQ 10
        Region 0: Memory at 380000001000 (64-bit, non-prefetchable) [size=256]
        Bus: primary=00, secondary=02, subordinate=02, sec-latency=0
        I/O behind bridge: d000-dfff [size=4K] [16-bit]
        Memory behind bridge: fe600000-fe7fffff [size=2M] [32-bit]
        Prefetchable memory behind bridge: 381000000000-3817ffffffff [size=32G] 
[32-bit]
        Secondary status: 66MHz+ FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- 
<MAbort- <SERR- <PERR-
        BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
                PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
        Capabilities: <access denied>

00:1f.0 PCI bridge [0604]: Red Hat, Inc. QEMU PCI-PCI bridge [1b36:0001] 
(prog-if 00 [Normal decode])
        Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR+ FastB2B- DisINTx-
        Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- 
<MAbort- >SERR- <PERR- INTx-
        Interrupt: pin A routed to IRQ 11
        Region 0: Memory at 380000002000 (64-bit, non-prefetchable) [size=256]
        Bus: primary=00, secondary=03, subordinate=03, sec-latency=0
        I/O behind bridge: c000-cfff [size=4K] [16-bit]
        Memory behind bridge: fe400000-fe5fffff [size=2M] [32-bit]
        Prefetchable memory behind bridge: 380800000000-380fffffffff [size=32G] 
[32-bit]
        Secondary status: 66MHz+ FastB2B+ ParErr- DEVSEL=fast >TAbort- <TAbort- 
<MAbort- <SERR- <PERR-
        BridgeCtl: Parity- SERR+ NoISA- VGA- VGA16- MAbort- >Reset- FastB2B-
                PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
        Capabilities: <access denied>

01:01.0 SCSI storage controller [0100]: Red Hat, Inc. Virtio SCSI [1af4:1004] 
(prog-if 00 [Vendor specific])
        Subsystem: Red Hat, Inc. Device [1af4:0008]
        Physical Slot: 1-2
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- 
Stepping- SERR+ FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- 
<MAbort- >SERR- <PERR- INTx-
        Latency: 0
        Interrupt: pin A routed to IRQ 10
        Region 0: I/O ports at e000 [size=64]
        Region 1: Memory at fe800000 (32-bit, non-prefetchable) [size=4K]
        Region 4: Memory at 381800000000 (64-bit, prefetchable) [size=16K]
        Capabilities: <access denied>
        Kernel driver in use: virtio-pci


** USB devices:
not available


-- System Information:
Debian Release: 13.7
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 6.12.113+deb13-amd64 (SMP w/4 CPU threads; PREEMPT)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages linux-image-6.12.113+deb13-amd64 depends on:
ii  initramfs-tools [linux-initramfs-tool]  0.148.4
ii  kmod                                    34.2-2
ii  linux-base                              4.12.1

Versions of packages linux-image-6.12.113+deb13-amd64 recommends:
ii  apparmor  4.1.0-1

Versions of packages linux-image-6.12.113+deb13-amd64 suggests:
pn  debian-kernel-handbook  <none>
ii  firmware-linux-free     20241210-2
ii  grub-pc                 2.12-9+deb13u2
pn  linux-doc-6.12          <none>

Versions of packages linux-image-6.12.113+deb13-amd64 is related to:
pn  firmware-amd-graphics      <none>
pn  firmware-atheros           <none>
pn  firmware-bnx2              <none>
pn  firmware-bnx2x             <none>
pn  firmware-brcm80211         <none>
pn  firmware-cavium            <none>
pn  firmware-cirrus            <none>
pn  firmware-intel-graphics    <none>
pn  firmware-intel-misc        <none>
pn  firmware-intel-sound       <none>
pn  firmware-ipw2x00           <none>
pn  firmware-ivtv              <none>
pn  firmware-iwlwifi           <none>
pn  firmware-libertas          <none>
pn  firmware-marvell-prestera  <none>
pn  firmware-mediatek          <none>
pn  firmware-misc-nonfree      <none>
pn  firmware-myricom           <none>
pn  firmware-netronome         <none>
pn  firmware-netxen            <none>
pn  firmware-nvidia-graphics   <none>
pn  firmware-qcom-soc          <none>
pn  firmware-qlogic            <none>
pn  firmware-realtek           <none>
pn  firmware-samsung           <none>
pn  firmware-siano             <none>
pn  firmware-ti-connectivity   <none>
pn  xen-hypervisor             <none>

-- no debconf information

Reply via email to