kernel-5.14.0-687.31.1.el9_8
エラータID: AXSA:2026-1793:76
The kernel packages contain the Linux kernel, the core of any Linux operating system.
Security Fix(es):
* kernel: xfrm: Duplicate SPI Handling (CVE-2025-39797)
* kernel: lib/buildid: use __kernel_read() for sleepable context (CVE-2026-23002)
* kernel: futex: Drop CLONE_THREAD requirement for private default hash alloc (CVE-2026-52973)
* kernel: iommu/vt-d: Avoid NULL pointer dereference or refcount corruption (CVE-2026-53281)
* kernel: blk-mq: pop cached request if it is usable (CVE-2026-64017)
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-39797
In the Linux kernel, the following vulnerability has been resolved: xfrm: Duplicate SPI Handling The issue originates when Strongswan initiates an XFRM_MSG_ALLOCSPI Netlink message, which triggers the kernel function xfrm_alloc_spi(). This function is expected to ensure uniqueness of the Security Parameter Index (SPI) for inbound Security Associations (SAs). However, it can return success even when the requested SPI is already in use, leading to duplicate SPIs assigned to multiple inbound SAs, differentiated only by their destination addresses. This behavior causes inconsistencies during SPI lookups for inbound packets. Since the lookup may return an arbitrary SA among those with the same SPI, packet processing can fail, resulting in packet drops. According to RFC 4301 section 4.4.2 , for inbound processing a unicast SA is uniquely identified by the SPI and optionally protocol. Reproducing the Issue Reliably: To consistently reproduce the problem, restrict the available SPI range in charon.conf : spi_min = 0x10000000 spi_max = 0x10000002 This limits the system to only 2 usable SPI values. Next, create more than 2 Child SA. each using unique pair of src/dst address. As soon as the 3rd Child SA is initiated, it will be assigned a duplicate SPI, since the SPI pool is already exhausted. With a narrow SPI range, the issue is consistently reproducible. With a broader/default range, it becomes rare and unpredictable. Current implementation: xfrm_spi_hash() lookup function computes hash using daddr, proto, and family. So if two SAs have the same SPI but different destination addresses, then they will: a. Hash into different buckets b. Be stored in different linked lists (byspi + h) c. Not be seen in the same hlist_for_each_entry_rcu() iteration. As a result, the lookup will result in NULL and kernel allows that Duplicate SPI Proposed Change: xfrm_state_lookup_spi_proto() does a truly global search - across all states, regardless of hash bucket and matches SPI and proto.
CVE-2026-23002
In the Linux kernel, the following vulnerability has been resolved: lib/buildid: use __kernel_read() for sleepable context Prevent a "BUG: unable to handle kernel NULL pointer dereference in filemap_read_folio". For the sleepable context, convert freader to use __kernel_read() instead of direct page cache access via read_cache_folio(). This simplifies the faultable code path by using the standard kernel file reading interface which handles all the complexity of reading file data. At the moment we are not changing the code for non-sleepable context which uses filemap_get_folio() and only succeeds if the target folios are already in memory and up-to-date. The reason is to keep the patch simple and easier to backport to stable kernels. Syzbot repro does not crash the kernel anymore and the selftests run successfully. In the follow up we will make __kernel_read() with IOCB_NOWAIT work for non-sleepable contexts. In addition, I would like to replace the secretmem check with a more generic approach and will add fstest for the buildid code.
CVE-2026-52973
In the Linux kernel, the following vulnerability has been resolved: futex: Drop CLONE_THREAD requirement for private default hash alloc Currently need_futex_hash_allocate_default() depends on strict pthread semantics, abusing CLONE_THREAD. This breaks the non-concurrency assumptions when doing the mm->futex_ref pcpu allocations, leading to bugs[0] when sharing the mm in other ways; ie: BUG: KASAN: slab-use-after-free in futex_hash_put ... where the +1 bias can end up on a percpu counter that mm->futex_ref no longer points at. Loosen the check to cover any CLONE_VM clone, except vfork(). Excluding vfork keeps the existing paths untouched (no overhead), and we can't race in the first place: either the parent is suspended and the child runs alone, or mm->futex_ref is already allocated from an earlier CLONE_VM.
CVE-2026-53281
In the Linux kernel, the following vulnerability has been resolved: iommu/vt-d: Avoid NULL pointer dereference or refcount corruption Commit 60f030f7418d ("iommu/vt-d: Avoid use of NULL after WARN_ON_ONCE") fixed a NULL pointer dereference in an unlikely situation partly. If dev_pasid is not found in the dev_pasids list, it remains NULL. However, the teardown operations are executed unconditionally, this lead to a NULL pointer dereference or refcount corruption. If the domain was never attached to this IOMMU, info will be NULL, which would cause an immediate dereference when checking --info->refcnt. Even if info is not NULL, decrementing the refcount without having removed a valid PASID might unbalance the count. This could lead to premature dropping of the refcount to 0, potentially causing a use-after-free for the remaining active devices sharing the domain. Fix it by returning early if dev_pasid is NULL, before executing the teardown operations. Issue found by AI review and suggested by Kevin Tian. https://sashiko.dev/#/patchset/20260421031347.1408890-1-zhenzhong.duan%4...
CVE-2026-64017
In the Linux kernel, the following vulnerability has been resolved: blk-mq: pop cached request if it is usable When submitting a bio to blk-mq, if the task should sleep after peeking a cached request, but before it pops it, the plug flushes and calls blk_mq_free_plug_rqs, freeing the cached_rqs. This creates a use-after-free bug. Fix this by popping the cached request before any possible blocking calls if it is suitable for use. Popping this request first holds a queue reference, so avoid any serialization races with queue freezes and can safely proceed with dispatching that request to the driver. This potentially increases a timing window from when a driver wants to freeze its queue to when requests stop being dispatched. That scenario is off the fast path though, and drivers need to appropriately handle requests during a freeze request anyway. The downside is the popped element needs to be individually freed when we performed a bio plug merge. The cached request would have had to be freed later anyway, but this patch does it inline with building the plug list instead of after flushing it.
Update packages.
In the Linux kernel, the following vulnerability has been resolved: xfrm: Duplicate SPI Handling The issue originates when Strongswan initiates an XFRM_MSG_ALLOCSPI Netlink message, which triggers the kernel function xfrm_alloc_spi(). This function is expected to ensure uniqueness of the Security Parameter Index (SPI) for inbound Security Associations (SAs). However, it can return success even when the requested SPI is already in use, leading to duplicate SPIs assigned to multiple inbound SAs, differentiated only by their destination addresses. This behavior causes inconsistencies during SPI lookups for inbound packets. Since the lookup may return an arbitrary SA among those with the same SPI, packet processing can fail, resulting in packet drops. According to RFC 4301 section 4.4.2 , for inbound processing a unicast SA is uniquely identified by the SPI and optionally protocol. Reproducing the Issue Reliably: To consistently reproduce the problem, restrict the available SPI range in charon.conf : spi_min = 0x10000000 spi_max = 0x10000002 This limits the system to only 2 usable SPI values. Next, create more than 2 Child SA. each using unique pair of src/dst address. As soon as the 3rd Child SA is initiated, it will be assigned a duplicate SPI, since the SPI pool is already exhausted. With a narrow SPI range, the issue is consistently reproducible. With a broader/default range, it becomes rare and unpredictable. Current implementation: xfrm_spi_hash() lookup function computes hash using daddr, proto, and family. So if two SAs have the same SPI but different destination addresses, then they will: a. Hash into different buckets b. Be stored in different linked lists (byspi + h) c. Not be seen in the same hlist_for_each_entry_rcu() iteration. As a result, the lookup will result in NULL and kernel allows that Duplicate SPI Proposed Change: xfrm_state_lookup_spi_proto() does a truly global search - across all states, regardless of hash bucket and matches SPI and proto.
In the Linux kernel, the following vulnerability has been resolved: lib/buildid: use __kernel_read() for sleepable context Prevent a "BUG: unable to handle kernel NULL pointer dereference in filemap_read_folio". For the sleepable context, convert freader to use __kernel_read() instead of direct page cache access via read_cache_folio(). This simplifies the faultable code path by using the standard kernel file reading interface which handles all the complexity of reading file data. At the moment we are not changing the code for non-sleepable context which uses filemap_get_folio() and only succeeds if the target folios are already in memory and up-to-date. The reason is to keep the patch simple and easier to backport to stable kernels. Syzbot repro does not crash the kernel anymore and the selftests run successfully. In the follow up we will make __kernel_read() with IOCB_NOWAIT work for non-sleepable contexts. In addition, I would like to replace the secretmem check with a more generic approach and will add fstest for the buildid code.
In the Linux kernel, the following vulnerability has been resolved: futex: Drop CLONE_THREAD requirement for private default hash alloc Currently need_futex_hash_allocate_default() depends on strict pthread semantics, abusing CLONE_THREAD. This breaks the non-concurrency assumptions when doing the mm->futex_ref pcpu allocations, leading to bugs[0] when sharing the mm in other ways; ie: BUG: KASAN: slab-use-after-free in futex_hash_put ... where the +1 bias can end up on a percpu counter that mm->futex_ref no longer points at. Loosen the check to cover any CLONE_VM clone, except vfork(). Excluding vfork keeps the existing paths untouched (no overhead), and we can't race in the first place: either the parent is suspended and the child runs alone, or mm->futex_ref is already allocated from an earlier CLONE_VM.
In the Linux kernel, the following vulnerability has been resolved: iommu/vt-d: Avoid NULL pointer dereference or refcount corruption Commit 60f030f7418d ("iommu/vt-d: Avoid use of NULL after WARN_ON_ONCE") fixed a NULL pointer dereference in an unlikely situation partly. If dev_pasid is not found in the dev_pasids list, it remains NULL. However, the teardown operations are executed unconditionally, this lead to a NULL pointer dereference or refcount corruption. If the domain was never attached to this IOMMU, info will be NULL, which would cause an immediate dereference when checking --info->refcnt. Even if info is not NULL, decrementing the refcount without having removed a valid PASID might unbalance the count. This could lead to premature dropping of the refcount to 0, potentially causing a use-after-free for the remaining active devices sharing the domain. Fix it by returning early if dev_pasid is NULL, before executing the teardown operations. Issue found by AI review and suggested by Kevin Tian. https://sashiko.dev/#/patchset/20260421031347.1408890-1-zhenzhong.duan%40intel.com
In the Linux kernel, the following vulnerability has been resolved: blk-mq: pop cached request if it is usable When submitting a bio to blk-mq, if the task should sleep after peeking a cached request, but before it pops it, the plug flushes and calls blk_mq_free_plug_rqs, freeing the cached_rqs. This creates a use-after-free bug. Fix this by popping the cached request before any possible blocking calls if it is suitable for use. Popping this request first holds a queue reference, so avoid any serialization races with queue freezes and can safely proceed with dispatching that request to the driver. This potentially increases a timing window from when a driver wants to freeze its queue to when requests stop being dispatched. That scenario is off the fast path though, and drivers need to appropriately handle requests during a freeze request anyway. The downside is the popped element needs to be individually freed when we performed a bio plug merge. The cached request would have had to be freed later anyway, but this patch does it inline with building the plug list instead of after flushing it.
N/A
SRPMS
- kernel-5.14.0-687.31.1.el9_8.src.rpm
MD5: 3cfbe8609b724e24d643939480c0d22f
SHA-256: 04d0ba9e06f560c324df33226190d2df84e7d9b1ee8f34b3c21325f4823408ae
Size: 145.41 MB
Asianux Server 9 for x86_64
- kernel-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: 5fb8815cb23c80c2d58b236aae59367e
SHA-256: 4b09a0a169a4ed0763fee15f67e22fa5959ab52e2d48d63f6db4f7679721063e
Size: 0.97 MB - kernel-abi-stablelists-5.14.0-687.31.1.el9_8.noarch.rpm
MD5: a5bfa6acc555ca565e8227dcb6d76a2f
SHA-256: 696f24ff477e10046dd2dba062e0133a768519f22d7886ed2ddba34fa471cb99
Size: 1.00 MB - kernel-core-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: 1d8e8d3ca8bba55ea39e2fc10005f09e
SHA-256: fe52f273c8144a1f37becf585073fa1cc92fbb5d7be41dab67806a4b26f159c4
Size: 17.30 MB - kernel-cross-headers-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: e0b10021e0b279332a63864cb0579506
SHA-256: caaec0dcc16f55640dea5768cf1f14b2e1743776d6a0d359b316106c229b8f8b
Size: 8.03 MB - kernel-debug-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: 2fcac9ff49e71b7d5dfe230ed9a3ecf3
SHA-256: 54280a770d1371954baf51f9f7a89e5f999038ab93510bf9fbe780caa889d400
Size: 0.97 MB - kernel-debug-core-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: 412b3ccf13c89e5881ae2ebb9fcc5239
SHA-256: 0a151cb9b601715031ce6426821515233583df390c954ffbed733ade28e5a464
Size: 31.16 MB - kernel-debug-devel-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: 63e5cdf6e4c886de2e7591c7387fe15f
SHA-256: 9ddc9242c6214a8f518f971a22b9e0bc3d3d176b04bded4c52f9d4b636e2f290
Size: 21.39 MB - kernel-debug-devel-matched-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: 83d0e7297338f74e8b527ac106378127
SHA-256: 8e4b2c503b0462e08a6eb0e0a253dfc82e012843b43a4bce9c4a00c2b117f9bb
Size: 0.97 MB - kernel-debug-modules-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: f3072b038cb8fbd13e3d4a6f8c3319fe
SHA-256: 61dbec4a44cee7529b933fe18f0c88b3bea47a518eaca0973a5dbb631e12b900
Size: 70.15 MB - kernel-debug-modules-core-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: 0778905e695da6dc87f01c4131b0c993
SHA-256: 53fc5b0aa9936bdea3a5e9f26a4d0c548c74e72ca99b725eec8d257a6263bd9a
Size: 49.86 MB - kernel-debug-modules-extra-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: ce6d8a511817777981212c1f19348724
SHA-256: 94ce0151705a6c9d0dc07fdedb38e20012df14749218d3c09d4a12ecb7f85bd3
Size: 1.77 MB - kernel-debug-uki-virt-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: 739e111ad47334641f877434522bbbac
SHA-256: baf2ab1e74d131f606bfe6537a4a459c6fa786feedc7cbe46532cc8113fa7f1d
Size: 88.13 MB - kernel-devel-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: e5c080eca6405e75f5db2f1db991d344
SHA-256: bddbb2ab36f4deb2c23ed0851ca49840ef04ab8e006c87bcb49b8957bf08aa62
Size: 21.19 MB - kernel-devel-matched-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: aa50d824d5c74c578c73800d240a5d93
SHA-256: 7ff3b4e1485a6fbfc8f009617b15beb93ca775df487b9eff77c3f78ed471cae3
Size: 0.97 MB - kernel-doc-5.14.0-687.31.1.el9_8.noarch.rpm
MD5: 4643e2ec394f80154f9f35b347bd2ebf
SHA-256: 1c596eb78f1af8ca3bcad62cc80c137b2e60878820def16910a90a87547ace0f
Size: 38.97 MB - kernel-headers-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: 4e2b5e26d0251d0fc21c1ff29b257ede
SHA-256: 1b25172930c340a54ab46b2e5ffd85bb6c830c93c261e8e2f5030109a10d9009
Size: 2.76 MB - kernel-modules-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: 1ac58ee231b73650a38f938fa824328f
SHA-256: d8296f5883eb59ea355c51bc8a1164bd5f05db85d52d37ef2bf39749b33adafd
Size: 39.95 MB - kernel-modules-core-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: 084dc2813439a3c4f9b43841174cd7b3
SHA-256: 8d2ccfec0dbf523eb633ea179bfabfdecb4a8ce9cf6215f4197e72a324e68f37
Size: 31.02 MB - kernel-modules-extra-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: 817bb3e5ec4777b74fec8544a319bac2
SHA-256: 2a96cd322eab457423a94a18a10375529963fd498d5541222a56b02f76a5cf38
Size: 1.41 MB - kernel-rt-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: e616a61a2f7789b4fe4c2ac662418766
SHA-256: 0277e4f50cec9be3854182e8b7fc373a218005b636c240e5c28bf9b84b3140b6
Size: 0.97 MB - kernel-rt-core-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: 90140417d3c4c94b21298bb6461e7d21
SHA-256: d103ca00a168327dc36380b6c4c260f154d4001ccdaeb6db7fa06b7068711204
Size: 17.19 MB - kernel-rt-debug-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: f38fae199dc4dfb2879048bbe5d06051
SHA-256: d470e36ff64132c9ef7beba5659fc7d1519893eb205f065551fcbda167c26c61
Size: 0.97 MB - kernel-rt-debug-core-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: e34c83830df85ad79b0e5310e8635d56
SHA-256: 2380189721c109cd965648f9a76d0e1b0847fb2e01df74d8e5fed871db0d5dbe
Size: 18.65 MB - kernel-rt-debug-devel-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: 4bad1eea8d96ceb41f88570d2d49e5d8
SHA-256: 3a9d38bc3b7254af47f3542b5f1854c641a94ce5ba252b6189502ab850b45fe1
Size: 21.32 MB - kernel-rt-debug-modules-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: 08eae8ef9ad303ea0ef199da419eb7c8
SHA-256: 8bb9f888ae86c27a7b89f3eb94869048a1885ccf83ab52a54a1945a73d07f512
Size: 41.55 MB - kernel-rt-debug-modules-core-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: 2fb8a24f81425dea7ffa4180292c52af
SHA-256: 3314fcf19d31e1928691c23c3393ab125afe2665557d4c41cd7164c7167e15a5
Size: 32.19 MB - kernel-rt-debug-modules-extra-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: 847fa9b0c3c4205eec1f0dec1ec3670b
SHA-256: 88f3f327ec44912bd40c76a0ba14319d8ad34ed268c708db64a0edf0bde4da9c
Size: 1.43 MB - kernel-rt-devel-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: 685b3c4ec3f3c7c585e51ac9b9ae6aee
SHA-256: 624283542a1b2342a55f977ca88e2695b4d378e84d0fdc47498bdc04eba3d00e
Size: 21.18 MB - kernel-rt-modules-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: ccd2d798588008432dba6816bd2dd4dc
SHA-256: 3a1ec3c7a466c62a97f1bd0cd6a7b5ecf15674b407a28f4ab9b8b63c7a1140ba
Size: 40.01 MB - kernel-rt-modules-core-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: 573f4fc9599620830dbbeb6df98c57b2
SHA-256: b862049f774c78f6fa2ba7fb5510b187c5606cc093fc42cbbb07a3fecc25d999
Size: 31.09 MB - kernel-rt-modules-extra-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: 27092fe24697a900d76ca7b2dfe1d6f1
SHA-256: d26e4daebc7ef10fe86322955cce67e772810eceb8ec743ed3ab607d262ebded
Size: 1.41 MB - kernel-tools-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: 77d4d664420acce3950aacf40da9ea70
SHA-256: ac589c941c654a5c204855f04151d6c1bc9bde5f1da46dc376d1d097997df017
Size: 1.26 MB - kernel-tools-libs-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: f067dd469b3c0f25463ee47e34f68d25
SHA-256: 1faa19f5a6b03f2302883856ed22fe3a9480459e533571f6fec40c0919095727
Size: 0.98 MB - kernel-tools-libs-devel-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: 56873d84566553045cb8038bf06f5d93
SHA-256: 3cb0e59176b3db83595a4466739a518b31a95b3b76018b93bfaba0958862b9a0
Size: 0.97 MB - kernel-uki-virt-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: 5acb57e578c0372f09d13660cd562da5
SHA-256: a6839842998f90c169e2e156e0c0ba5188ac0a36950a824656c4964dce694e0f
Size: 65.98 MB - kernel-uki-virt-addons-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: 306c6249052a990ded6ddf40adb9221a
SHA-256: 0b37312a5dd475d283e1060d5e03a5eb62706e6f29d2a26cfd343e2fa5ac6571
Size: 0.99 MB - libperf-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: c0b86971b7fd4fbc51c86f8ac8533f01
SHA-256: 48b44531c60f1ba3c8fa16661da6f4e52492d9d90e91ecad0e69ce7aa35d7ea4
Size: 0.99 MB - perf-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: cbaa483423be9173bca46a20609b0077
SHA-256: 7f3d439079622ce3c548bb4be6ba6b7e7658da2c58ef1dd430cb7e2cd5c62340
Size: 3.38 MB - python3-perf-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: 52d2f6c6fb32fc4b8addedf002860469
SHA-256: 6661cff771806a4ce2a29800c35387b4f1b941c693092113f7ff598d49aae36c
Size: 2.55 MB - rtla-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: e4def31ef0eb84c780e5a0793bea503e
SHA-256: b71471385d6fec92bdb73ddb286bd42bc4207c077232db459db63112623c116b
Size: 1.04 MB - rv-5.14.0-687.31.1.el9_8.x86_64.rpm
MD5: c0920b07b7a89205c02cff5f2006285d
SHA-256: a637f7e495c6c55d102704aea718da9c77bce5603db8b3109ff019dca0824a5d
Size: 0.98 MB