kernel-5.14.0-687.24.1.el9_8

エラータID: AXSA:2026-1649:67

Release date: 
Wednesday, August 26, 2026 - 10:29
Subject: 
kernel-5.14.0-687.24.1.el9_8
Affected Channels: 
MIRACLE LINUX 9 for x86_64
Severity: 
High
Description: 

The kernel packages contain the Linux kernel, the core of any Linux operating system.

Security Fix(es):

* kernel: net/sched: ets: Always remove class from active list before deleting in ets_qdisc_change (CVE-2025-71066)
* kernel: KVM: x86: Fix shadow paging use-after-free due to unexpected GFN (CVE-2026-46113)
* kernel: KVM: x86: Fix shadow paging use-after-free due to unexpected role (CVE-2026-53359)

For more details about the security issue(s), including the impact, a CVSS score, acknowledgments, and other related information, refer to the CVE page(s) listed in the References section.

CVE-2025-71066
In the Linux kernel, the following vulnerability has been resolved: net/sched: ets: Always remove class from active list before deleting in ets_qdisc_change zdi-disclosures@trendmicro.com says: The vulnerability is a race condition between `ets_qdisc_dequeue` and `ets_qdisc_change`. It leads to UAF on `struct Qdisc` object. Attacker requires the capability to create new user and network namespace in order to trigger the bug. See my additional commentary at the end of the analysis. Analysis: static int ets_qdisc_change(struct Qdisc *sch, struct nlattr *opt, struct netlink_ext_ack *extack) { ... // (1) this lock is preventing .change handler (`ets_qdisc_change`) //to race with .dequeue handler (`ets_qdisc_dequeue`) sch_tree_lock(sch); for (i = nbands; i < oldbands; i++) { if (i >= q->nstrict && q->classes[i].qdisc->q.qlen) list_del_init(&q->classes[i].alist); qdisc_purge_queue(q->classes[i].qdisc); } WRITE_ONCE(q->nbands, nbands); for (i = nstrict; i < q->nstrict; i++) { if (q->classes[i].qdisc->q.qlen) { // (2) the class is added to the q->active list_add_tail(&q->classes[i].alist, &q->active); q->classes[i].deficit = quanta[i]; } } WRITE_ONCE(q->nstrict, nstrict); memcpy(q->prio2band, priomap, sizeof(priomap)); for (i = 0; i < q->nbands; i++) WRITE_ONCE(q->classes[i].quantum, quanta[i]); for (i = oldbands; i < q->nbands; i++) { q->classes[i].qdisc = queues[i]; if (q->classes[i].qdisc != &noop_qdisc) qdisc_hash_add(q->classes[i].qdisc, true); } // (3) the qdisc is unlocked, now dequeue can be called in parallel // to the rest of .change handler sch_tree_unlock(sch); ets_offload_change(sch); for (i = q->nbands; i < oldbands; i++) { // (4) we're reducing the refcount for our class's qdisc and // freeing it qdisc_put(q->classes[i].qdisc); // (5) If we call .dequeue between (4) and (5), we will have // a strong UAF and we can control RIP q->classes[i].qdisc = NULL; WRITE_ONCE(q->classes[i].quantum, 0); q->classes[i].deficit = 0; gnet_stats_basic_sync_init(&q->classes[i].bstats); memset(&q->classes[i].qstats, 0, sizeof(q->classes[i].qstats)); } return 0; } Comment: This happens because some of the classes have their qdiscs assigned to NULL, but remain in the active list. This commit fixes this issue by always removing the class from the active list before deleting and freeing its associated qdisc Reproducer Steps (trimmed version of what was sent by zdi-disclosures@trendmicro.com) ``` DEV="${DEV:-lo}" ROOT_HANDLE="${ROOT_HANDLE:-1:}" BAND2_HANDLE="${BAND2_HANDLE:-20:}" # child under 1:2 PING_BYTES="${PING_BYTES:-48}" PING_COUNT="${PING_COUNT:-200000}" PING_DST="${PING_DST:-127.0.0.1}" SLOW_TBF_RATE="${SLOW_TBF_RATE:-8bit}" SLOW_TBF_BURST="${SLOW_TBF_BURST:-100b}" SLOW_TBF_LAT="${SLOW_TBF_LAT:-1s}" cleanup() { tc qdisc del dev "$DEV" root 2>/dev/null } trap cleanup EXIT ip link set "$DEV" up tc qdisc del dev "$DEV" root 2>/dev/null || true tc qdisc add dev "$DEV" root handle "$ROOT_HANDLE" ets bands 2 strict 2 tc qdisc add dev "$DEV" parent 1:2 handle "$BAND2_HANDLE" \ tbf rate "$SLOW_TBF_RATE" burst "$SLOW_TBF_BURST" latency "$SLOW_TBF_LAT" tc filter add dev "$DEV" parent 1: protocol all prio 1 u32 match u32 0 0 flowid 1:2 tc -s qdisc ls dev $DEV ping -I "$DEV" -f -c "$PING_COUNT" -s "$PING_BYTES" -W 0.001 "$PING_DST" \ >/dev/null 2>&1 & tc qdisc change dev "$DEV" root handle "$ROOT_HANDLE" ets bands 2 strict 0 tc qdisc change dev "$DEV" root handle "$ROOT_HANDLE" ets bands 2 strict 2 tc -s qdisc ls dev $DEV tc qdisc del dev "$DEV" parent ---truncated---
CVE-2026-46113
In the Linux kernel, the following vulnerability has been resolved: KVM: x86: Fix shadow paging use-after-free due to unexpected GFN The shadow MMU computes GFNs for direct shadow pages using sp->gfn plus the SPTE index. This assumption breaks for shadow paging if the guest page tables are modified between VM entries (similar to commit aad885e77496, "KVM: x86/mmu: Drop/zap existing present SPTE even when creating an MMIO SPTE", 2026-03-27). The flow is as follows: - a PDE is installed for a 2MB mapping, and a page in that area is accessed. KVM creates a kvm_mmu_page consisting of 512 4KB pages; the kvm_mmu_page is marked by FNAME(fetch) as direct-mapped because the guest's mapping is a huge page (and thus contiguous). - the PDE mapping is changed from outside the guest. - the guest accesses another page in the same 2MB area. KVM installs a new leaf SPTE and rmap entry; the SPTE uses the "correct" GFN (i.e. based on the new mapping, as changed in the previous step) but that GFN is outside of the [sp->gfn, sp->gfn + 511] range; therefore the rmap entry cannot be found and removed when the kvm_mmu_page is zapped. - the memslot that covers the first 2MB mapping is deleted, and the kvm_mmu_page for the now-invalid GPA is zapped. However, rmap_remove() only looks at the [sp->gfn, sp->gfn + 511] range established in step 1, and fails to find the rmap entry that was recorded by step 3. - any operation that causes an rmap walk for the same page accessed by step 3 then walks a stale rmap and dereferences a freed kvm_mmu_page. This includes dirty logging or MMU notifier invalidations (e.g., from MADV_DONTNEED). The underlying issue is that KVM's walking of shadow PTEs assumes that if a SPTE is present when KVM wants to install a non-leaf SPTE, then the existing kvm_mmu_page must be for the correct gfn. Because the only way for the gfn to be wrong is if KVM messed up and failed to zap a SPTE... which shouldn't happen, but *actually* only happens in response to a guest write. That bug dates back literally forever, as even the first version of KVM assumes that the GFN matches and walks into the "wrong" shadow page. However, that was only an imprecision until 2032a93d66fa ("KVM: MMU: Don't allocate gfns page for direct mmu pages") came along. Fix it by checking for a target gfn mismatch and zapping the existing SPTE. That way the old SP and rmap entries are gone, KVM installs the rmap in the right location, and everyone is happy.
CVE-2026-53359
In the Linux kernel, the following vulnerability has been resolved: KVM: x86: Fix shadow paging use-after-free due to unexpected role Commit 0cb2af2ea66ad ("KVM: x86: Fix shadow paging use-after-free due to unexpected GFN") fixed a shadow paging mismatch between stored and computed GFNs; the bug could be triggered by changing a PDE mapping from outside the guest, and then deleting a memslot. The rmap_remove() call would miss entries created after the PDE change because the GFN of the leaf SPTE does not match the GFN of the struct kvm_mmu_page. A similar hole however remains if the modified PDE points to a non-leaf page. In this case the gfn can be made to match, but the role does not match: the original large 2MB page creates a kvm_mmu_page with direct=1, while the new 4KB needs a kvm_mmu_page with direct=0. However, kvm_mmu_get_child_sp() does not compare the role, and therefore reuses the page. The next step is installing a leaf (4KB) SPTE on the new path which records an rmap entry under the gfn resolved by the walk. But when that child is zapped its parent kvm_mmu_page has direct=1 and kvm_mmu_page_get_gfn() computes the gfn for the 4KB page as sp->gfn + index instead of using sp->shadowed_translation[] (or sp->gfns[] in older kernels). It therefore fails to remove the recorded entry. When the memslot is dropped the shadow page is freed but the rmap entry survives, as in the scenario that was already fixed. Code that later walks that gfn (dirty logging, MMU notifier invalidation, and so on) dereferences an sptep that lies in the freed page, causing the use-after-free.

Solution: 

Update packages.

Additional Info: 

N/A

Download: 

SRPMS
  1. kernel-5.14.0-687.24.1.el9_8.src.rpm
    MD5: 1c3aa7ce8ed700a8080cebc128bc9d00
    SHA-256: b321ffa3be8197dbed266d9a5b28e9a32616bdb7237ff7101181109e5ffafe4e
    Size: 145.46 MB

Asianux Server 9 for x86_64
  1. kernel-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: 95ce91122369dc559c4dbea1e21d8ba6
    SHA-256: d7338d171a9cc2ceab5ad0bcedf4a4fcb29f74c3a4641a1407d51606444fdcd9
    Size: 9.25 kB
  2. kernel-abi-stablelists-5.14.0-687.24.1.el9_8.noarch.rpm
    MD5: 4c6ce820134a6c5a0f98ba453bc31c80
    SHA-256: db6d377ab2868b01038b9f33c8acc5d4c0f2ca60b75a160f1548b6573a2127f2
    Size: 44.54 kB
  3. kernel-core-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: 8fce5a5a72cfc5089e1ebd711caebfc4
    SHA-256: d83e7c3cb8c945b8100040fc517cab3814430695d0e01783b3db101132e8f38a
    Size: 16.33 MB
  4. kernel-cross-headers-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: 1b24f8f83b88569b0dc8e874f4761237
    SHA-256: d8ea99873dd738d4b49a6f73e6aff39b54ac77c074e7650edbce1eb6003ae3da
    Size: 7.07 MB
  5. kernel-debug-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: f09cd00c9371690b002f1137e398f148
    SHA-256: 3d2d02fe6d3ef15daf4ceac7575f3c50b510e4113297fa720514c0ebe096adf7
    Size: 9.34 kB
  6. kernel-debug-core-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: 716896d4d94e93f78217b39129311e66
    SHA-256: 9f3f39151f56adcb62a7ad5fbd1177cbe6d7c4ff79d7bb2a27b8c5ccd56da860
    Size: 30.19 MB
  7. kernel-debug-devel-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: ff85d66a8dcc4e8610285b4438e40bed
    SHA-256: 6cf0018c220ba05e37a4ef8512058cd7b9d64601a3a8ac786f9db82a415443db
    Size: 20.43 MB
  8. kernel-debug-devel-matched-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: e70ed2610b67b5d47c3e6c3ffcca6ea0
    SHA-256: 9a7b3d7fa4c47b8e30115d210782f60dd80dfa4d57951dce0c9d5d0d84371c20
    Size: 9.33 kB
  9. kernel-debug-modules-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: 50c43ae366e884d6aec189bf2b7db7cd
    SHA-256: deae55d3baeb40f0cb69c7dd20d86e68865cee3eb456352a069b046bf0e92ca7
    Size: 69.17 MB
  10. kernel-debug-modules-core-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: 766b9b79267c373321b766086b8e5ca4
    SHA-256: a828873886e3092ca72e03b1620b6b0d90f02e183c62be853a7d9b08d7730098
    Size: 48.90 MB
  11. kernel-debug-modules-extra-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: b981c2589c14a2f29d249e7d24f5cb7f
    SHA-256: f333aa67f9ffac9e72724dce657c6d7ec65b584d9a0fc24863fd9a699acceaa4
    Size: 830.10 kB
  12. kernel-debug-uki-virt-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: 13f1c61307993d1894c7a68ae5bdf09f
    SHA-256: 62668b5952e7e451c123d72fff1394a247ff138ec7e6a8a6cf6714d3fb68458d
    Size: 87.13 MB
  13. kernel-devel-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: 5ec796cb0878441d918fc8731523fb9f
    SHA-256: 7cf8a46e7f5b8d2da4f37c5d81cbc51763a9aaf2c312aaf2e93d2654ec4e97d7
    Size: 20.23 MB
  14. kernel-devel-matched-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: 183b6747ca10b9cdba553ec3014b0b9f
    SHA-256: 33e0045f83aa3c0284103791b0be3faee73b80101986b036052ee9910c981982
    Size: 9.30 kB
  15. kernel-doc-5.14.0-687.24.1.el9_8.noarch.rpm
    MD5: cc996b238240d1d3848a8732f799f0df
    SHA-256: 2d98b50cf3e7b645d6826ce6aea2f923b4766b3fefc61a39a14e3152b1a0ae9f
    Size: 38.00 MB
  16. kernel-headers-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: fa724f7292709d5dc3a300462a0320a7
    SHA-256: 54fb41a649eefb43d919c7bea5f71435e5bdc1a9ba90b86f5af57778f86b0f28
    Size: 1.80 MB
  17. kernel-modules-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: 02a14849eb4e5b7ada53519d20820aa1
    SHA-256: 52868aed653e3661d89033a8267ec33e90c3079f4e0eb418fdf3b3c73c37eedc
    Size: 39.01 MB
  18. kernel-modules-core-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: 135c6d3155fcdcbbaa206dd5c20075cd
    SHA-256: bd935b363679c66684b36ff3cbf9767f8e2cba5c27181ec91a68ac290afb056d
    Size: 30.07 MB
  19. kernel-modules-extra-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: d692da037a12a4c4c6ed9f5be7fde388
    SHA-256: 2adb0cc51d24cb13cbf86e371da28ad149aac9ab468ed6e60d593e1d4d468587
    Size: 457.56 kB
  20. kernel-rt-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: 371fda92da06b25261fbb2a9d2790b41
    SHA-256: d4426d9751b8945759bb455063d83eb166962bea077dadfeb2b89401cf3d7322
    Size: 9.33 kB
  21. kernel-rt-core-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: 943312abb1d32da1ea9ce9a955c89674
    SHA-256: 1b03973af4fb64e2147ecff3cabbe8b27dc1e2233e1ef1d97cfca3e5069ea399
    Size: 16.23 MB
  22. kernel-rt-debug-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: f2e810df6ae32b179ee0ba962be6162a
    SHA-256: be060013ce0b1c80dc3b86b1aaa80d04186aad9b0d247c4cb0945b81e67405ec
    Size: 9.40 kB
  23. kernel-rt-debug-core-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: 9a6192e4bedf98c33b5e6e80001a47a0
    SHA-256: 8a515789de8234aba2925409785f94ffb6f949a7f1bc0fa4af894168a069d238
    Size: 17.69 MB
  24. kernel-rt-debug-devel-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: 13e6d04718d81b4b7e753104497b8e7f
    SHA-256: 1b399263cdcd29eb3667bfc757ae9e5fd851c2206457501086811fe6a53ac104
    Size: 20.36 MB
  25. kernel-rt-debug-modules-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: 923f05d87adbc32f8577ba79c2138702
    SHA-256: 4595773016e7e0821b932ed38b0bb12e8cc132998ace8c0418be20d9e2e49dbd
    Size: 40.58 MB
  26. kernel-rt-debug-modules-core-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: fa3854481d30837246b05433ece1fb84
    SHA-256: bd66502516048c18ddb97a19eb73ecce12cb1b2572417feec966dc5dcebec4c8
    Size: 31.24 MB
  27. kernel-rt-debug-modules-extra-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: 0b151a80c5f4b226020c22423c2505fc
    SHA-256: 94d266e58b7bf0a559fed1347f2d7ea8f80af8c221120431f1cf2dfe8290a018
    Size: 486.57 kB
  28. kernel-rt-devel-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: bbf209b0abcb5f1caa87a07b07dfd120
    SHA-256: 7cd57507102015e9e00501e0d0b900a9ba5c15925c4e48c28d655b8163483604
    Size: 20.22 MB
  29. kernel-rt-modules-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: 2efdde985d8e073e6c8d00af14d3caec
    SHA-256: c8780645e814bf5434f9fcab0566b6927ee53f03742b2be242ae7d7d3277c71c
    Size: 39.04 MB
  30. kernel-rt-modules-core-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: 06cc0b71208f989d24ccae8a8de6d1d0
    SHA-256: 67a0577f01743af274fffbe9139e8ce68db4941b6ab69b9f6c8335597e387706
    Size: 30.13 MB
  31. kernel-rt-modules-extra-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: 79e0ce3b6ce6215e0f16b1833e2c91f9
    SHA-256: 0f9111db345071fbae90320a391bce345e18b80c94fa747b116eafde5bc6c500
    Size: 459.61 kB
  32. kernel-tools-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: 7943d4335120626c228122fb28cd3583
    SHA-256: c2d370a1cc3435c19e5d8d08f1cf3fc2627a2d12206253ba4a71be8f1c84fb6d
    Size: 305.31 kB
  33. kernel-tools-libs-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: a307efc8e3b8666556e44d6bdc1de664
    SHA-256: ebf7bc4f0f3f65439af4d16311ae215e3b467353bcab349f70077125c9f5c3b5
    Size: 22.04 kB
  34. kernel-tools-libs-devel-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: c16fcf7c36feb4bbc4f93efe56865735
    SHA-256: c961c287f0edaef2b936ca41fbf0c255427c1832c8d2cf05250841c9031a6176
    Size: 11.81 kB
  35. kernel-uki-virt-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: 66cc8d22623735abe82a1a907cdd59ea
    SHA-256: 6131419b5d84c415df457b10fec5833b1bb6fd7b567e5f248f0f737b721dda46
    Size: 65.04 MB
  36. kernel-uki-virt-addons-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: 97ba0b35f662ff3c6ca6383e18b33a30
    SHA-256: 9568bc1089f1028b24bad8f7040f19a5f113a66fabffc644a18135585f856335
    Size: 31.94 kB
  37. libperf-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: f31a45f239089b5edc0fd5d0d84cddc3
    SHA-256: 9cf6454ff7de0c260555877f142f96c80235f95c06b75dfe63f5a7b4cb650caa
    Size: 30.35 kB
  38. perf-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: 7b607ff3bbef41bfd0986c3b5d6724e2
    SHA-256: 2134270e1fab63f9d0335fd3de7c8c07a5d4260bb0f99aa7c58ee427765e9b62
    Size: 2.42 MB
  39. python3-perf-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: 8a130e1766024c19d70921289ae6b575
    SHA-256: 2259cc0f7d3a6b5c8844a004619b7cbea337b7ac695f4804a62fccc595f80a01
    Size: 1.60 MB
  40. rtla-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: 6536cc35c1fa8b5fc05e6b8bd7b3fc24
    SHA-256: e15e8889312f19514ab78ef4c862f377c1618f276291ccf52ef23203863b7d49
    Size: 81.04 kB
  41. rv-5.14.0-687.24.1.el9_8.x86_64.rpm
    MD5: 2c46f98db1b7edd6344c54418f02afa4
    SHA-256: 9dda86bf4e4d3b44011fad4e44868169a565c179c707e0f68d94c76cd3998c4d
    Size: 25.57 kB