CentOS Linux 8.4 [TuxCare] Security Update: bpftool / kernel / kernel-core / kernel-cross-headers / etc Multiple Vulnerabilities (CENTOS8.4:CLSA-2026:1794319150)

high Nessus Plugin ID 378425

Synopsis

The CentOS Linux host is missing one or more security updates.

Description

The CentOS Linux 8.4 host has packages installed that are affected by multiple vulnerabilities as referenced in the TuxCare CENTOS8.4:CLSA-2026:1794319150 advisory.

- In the Linux kernel, the following vulnerability has been resolved: xprtrdma: Repost Receive buffers for malformed replies rpcrdma_wc_receive() decrements the transport's Receive count for every completion before it dispatches a successful Receive to rpcrdma_reply_handler(). The handler must post a replacement Receive WR before returning unless ownership of the rep has moved elsewhere, as on the backchannel path.
Commit 2ae50ad68cd7 (xprtrdma: Close window between waking RPC senders and posting Receives) moved the Receive refill out of rpcrdma_wc_receive(), where it had run ahead of every reply, into rpcrdma_reply_handler() so that the responder's credit grant could be parsed before reposting. The bad- version and short-reply exits never reach that refill: they recycle the rep and return without calling rpcrdma_post_recvs(). A remote peer can therefore drain the client's posted Receive queue by sending a sustained stream of replies that are shorter than the fixed transport header or that carry an unrecognized RPC/RDMA version. Each such reply consumes one posted Receive without replacing it. Once the queue empties, the peer's next Send finds no posted Receive and the transport stalls until reconnect. Route both malformed-reply exits through the shared repost tail after recycling the rep, refilling against buf->rb_credits, the most recent accepted credit grant. Neither exit updates the congestion window, so RPCs admitted under the previous grant remain in flight awaiting replies. A smaller refill target would let a stream of malformed replies ratchet the posted Receive count down to the batch floor while the congestion window still admits rb_credits RPCs; a burst of valid replies to those RPCs could then overrun the posted Receives, and because the client connects with rnr_retry_count of zero, a single RNR NAK terminates the connection. Refilling against rb_credits also restores the target that applied to malformed replies before commit 2ae50ad68cd7 (xprtrdma: Close window between waking RPC senders and posting Receives) when rpcrdma_post_recvs() computed it from rb_credits internally. rb_credits is at least one from connection establishment onward, so the repost path always keeps Receives posted. (CVE-2026-72464)

- In the Linux kernel, the following vulnerability has been resolved: sctp: check RCV_SHUTDOWN after the sendmsg connect wait sctp_wait_for_connect() drops the socket lock while it sleeps. An out-of-the-blue ABORT can then be processed from the socket backlog and unlink the association. If a concurrent shutdown(fd, SHUT_RD) sets RCV_SHUTDOWN, the waiter breaks with err == 0 before checking asoc->base.dead.
Its final sctp_association_put() can then free the association, leaving sctp_sendmsg_to_asoc() to continue with a dangling pointer. Check RCV_SHUTDOWN along with the wait error in sctp_sendmsg_to_asoc() before using the association again. The check only accesses the socket, so it needs no additional association reference. Return the existing -ESRCH so that sctp_sendmsg() skips freeing a new association that may already have been destroyed. Keep sctp_wait_for_connect() unchanged to preserve its behavior for the connect() caller. (CVE-2026-98846)

- In the Linux kernel, the following vulnerability has been resolved: tipc: restrict socket queue dumps in enqueue tracepoints tipc_sk_enqueue() runs with sk->sk_lock.slock held while the socket is owned by user context. The spinlock protects the backlog queue in this path, but it does not serialize against the socket owner consuming or purging sk_receive_queue. KASAN reported: CPU: 14 UID: 0 PID: 1050 Comm: tipc3 Not tainted 7.1.0-rc6+ #126 PREEMPT(lazy) Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014 Call Trace: <TASK> dump_stack_lvl+0x76/0xa0 lib/dump_stack.c:123 print_report+0xce/0x5b0 mm/kasan/report.c:482 kasan_report+0xc6/0x100 mm/kasan/report.c:597
__asan_report_load4_noabort+0x14/0x30 mm/kasan/report_generic.c:380 tipc_skb_dump+0x1327/0x16f0 net/tipc/trace.c:73 tipc_list_dump+0x208/0x2e0 net/tipc/trace.c:187 tipc_sk_dump+0xaf6/0xd60 net/tipc/socket.c:3996 trace_event_raw_event_tipc_sk_class+0x312/0x5a0 net/tipc/trace.h:188 tipc_sk_rcv+0xb1d/0x1d50 net/tipc/socket.c:2497 tipc_node_xmit+0x1c3/0x1440 net/tipc/node.c:1689
__tipc_sendmsg+0x97a/0x1440 net/tipc/socket.c:1512 tipc_sendmsg+0x52/0x80 net/tipc/socket.c:1400 sock_sendmsg+0x2f6/0x3e0 net/socket.c:825 splice_to_socket+0x7f9/0x1010 fs/splice.c:884 do_splice+0xe21/0x2330 fs/splice.c:936 __do_splice+0x153/0x260 fs/splice.c:1431
__x64_sys_splice+0x150/0x230 fs/splice.c:1616 x64_sys_call+0xeb5/0x2790 arch/x86/entry/syscall_64.c:41 do_syscall_64+0xf3/0x620 arch/x86/entry/syscall_64.c:63 entry_SYSCALL_64_after_hwframe+0x76/0x7e arch/x86/entry/entry_64.S:130 RIP: 0033:0x71624e8aafe2 Code: 08 0f 85 71 3a ff ff 49 89 fb 48 89 f0 48 89 d7 48 89 ce 4c 89 c2 4d 89 ca 4c 8b 44 24 08 4c 8b 4c 24 10 4c 89 5c 24 08 0f 05 <c3> 66 2e 0f 1f 84 00 00 00 00 00 66 2e 0f 1f 84 00 00 00 00 00 66 RSP: 002b:0000716157ffed68 EFLAGS: 00000246 ORIG_RAX:
0000000000000113 RAX: ffffffffffffffda RBX: 0000716157fff6c0 RCX: 000071624e8aafe2 RDX: 000000000000005f RSI: 0000000000000000 RDI: 0000000000000066 RBP: 0000716157ffed90 R08: 0000000000008000 R09:
0000000000000001 R10: 0000000000000000 R11: 0000000000000246 R12: ffffffffffffff00 R13: 0000000000000021 R14: 0000000000000000 R15: 00007fff89799c40 </TASK> The TIPC_DUMP_ALL tracepoints in tipc_sk_enqueue() also dump sk_receive_queue and can therefore dereference skbs that the socket owner has already dequeued or freed. Restrict these dumps to TIPC_DUMP_SK_BKLGQ, which matches the queue protected by the held spinlock. Keep the change limited to the enqueue path, where the unsafe queue dump is reachable while the socket is owned by user context. (CVE-2026-72299)

- In the Linux kernel, the following vulnerability has been resolved: ceph: bound copied dentry name length in NFS export get_name ceph_get_name() copies the MDS-supplied name into the caller's NAME_MAX-sized buffer with memcpy(name, rinfo->dname, rinfo->dname_len) and then writes name[rinfo->dname_len] = 0, without checking dname_len against NAME_MAX. A malicious or buggy MDS that returns a LOOKUPNAME reply with dname_len > NAME_MAX overflows the buffer. __get_snap_name() copies rde->name / rde->name_len the same unchecked way. Impact: a malicious or compromised Ceph MDS overflows the NAME_MAX name buffer in a client's NFS-export get_name path, a slab out-of-bounds write reported by KASAN. Reachable when a CephFS mount is re-exported over NFS. Add ceph_export_copy_name(), which rejects lengths above NAME_MAX with
-ENAMETOOLONG before the copy, and use it in both ceph_get_name() and __get_snap_name(). (CVE-2026-89652)

- In the Linux kernel, the following vulnerability has been resolved: nfsd: reject out-of-range nseconds in NFSv3 SETATTR and create ops A client can send an NFSv3 SETATTR, CREATE, MKDIR, SYMLINK or MKNOD carrying an atime or mtime whose nseconds field is out of range. The value is well-formed on the wire and decodes cleanly into a valid uint32, but it is not a valid timespec64: tv_nsec must be less than NSEC_PER_SEC.
Nothing in the setattr path clamps it. notify_change() runs the time through timestamp_truncate(), which does not reduce tv_nsec below NSEC_PER_SEC when the filesystem supports nanosecond granularity (s_time_gran == 1), and the inode atime/mtime setters store it verbatim (only ctime is normalized, via inode_set_ctime_to_ts()). The un-normalized value then corrupts on-disk metadata: ext4's ext4_encode_extra_time() shifts tv_nsec left by EXT4_EPOCH_BITS, which overflows the 32-bit extra field and clobbers the seconds-epoch bits, so the stored seconds (and thus the year) are wrong on read-back. XFS with bigtime mis-stores the timestamp for the same reason. Validate the client-supplied atime/mtime in the proc handlers and return NFS3ERR_INVAL before anything is changed. RFC 1813 lists NFS3ERR_INVAL for SETATTR and describes it as the error for a value the server 'can not store ... in its own representation'; the client maps it to EINVAL. Checking in the proc handlers, rather than in nfsd_setattr(), keeps the rejection in front of object creation. The create operations create the object before nfsd_create_setattr() runs, so a late failure would leave the new object behind and turn a non- idempotent request into a namespace change that reports failure. The check is therefore done up front, for the create operations before the object is created. tv_nsec is a long, so the comparison casts it to unsigned long (the same width) rather than to u32, matching timespec64_valid(). A u32 cast would truncate on 64-bit; the unsigned long cast also rejects a value that became negative when an out-of-range u32 wire nseconds was assigned to a 32-bit long. Only client-supplied times are checked: SET_TO_SERVER_TIME requests carry no client value. The sattrguard3 ctime is deliberately left alone: an out-of-range guard simply never matches the object's ctime and yields NFS3ERR_NOT_SYNC via the existing guardtime comparison, which is the protocol-correct outcome rather than rejecting the request. (CVE-2026-89666)

Note that Nessus has not tested for these issues but has instead relied only on the application's self-reported version number.

Solution

Update the affected packages based on the guidance in TuxCare advisory CENTOS8.4:CLSA-2026:1794319150.

See Also

https://cve.tuxcare.com/els/releases/CLSA-2026:1794319150

http://www.nessus.org/u?6e15babd

Plugin Details

Severity: High

ID: 378425

File Name: tuxcare_centos_8.4_CLSA-2026-1794319150.nasl

Version: 1.1

Type: Local

Agent: unix

Published: 11/10/2026

Updated: 11/10/2026

Supported Sensors: Nessus Agent, Continuous Assessment, Nessus

Risk Information

VPR

Risk Factor: High

Score: 7.7

Percentile: 98.82

Vendor

Vendor Severity: Critical

CVSS v2

Risk Factor: Medium

Base Score: 6.8

Temporal Score: 5.3

Vector: CVSS2#AV:L/AC:L/Au:S/C:C/I:C/A:C

CVSS Score Source: CVE-2026-64424

CVSS v3

Risk Factor: High

Base Score: 7.8

Temporal Score: 7

Vector: CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

Temporal Vector: CVSS:3.0/E:P/RL:O/RC:C

Vulnerability Information

Required KB Items: Host/local_checks_enabled, Host/CentOS/release, Host/CentOS/rpm-list, Host/OS/extended-third-party

Exploit Available: true

Exploit Ease: Exploits are available

Patch Publication Date: 11/10/2026

Vulnerability Publication Date: 7/16/2021

Reference Information

CVE: CVE-2021-47078, CVE-2021-47616, CVE-2025-68283, CVE-2025-68822, CVE-2026-23050, CVE-2026-23208, CVE-2026-43158, CVE-2026-43187, CVE-2026-46135, CVE-2026-52918, CVE-2026-52929, CVE-2026-52955, CVE-2026-53071, CVE-2026-53246, CVE-2026-53256, CVE-2026-53357, CVE-2026-63831, CVE-2026-63898, CVE-2026-63899, CVE-2026-63901, CVE-2026-63902, CVE-2026-63903, CVE-2026-63904, CVE-2026-63912, CVE-2026-63913, CVE-2026-63914, CVE-2026-63916, CVE-2026-63917, CVE-2026-63920, CVE-2026-63921, CVE-2026-63928, CVE-2026-63956, CVE-2026-63957, CVE-2026-63992, CVE-2026-64007, CVE-2026-64047, CVE-2026-64114, CVE-2026-64379, CVE-2026-64380, CVE-2026-64381, CVE-2026-64424, CVE-2026-64543, CVE-2026-64551, CVE-2026-64582, CVE-2026-68082, CVE-2026-68108, CVE-2026-68136, CVE-2026-68157, CVE-2026-68159, CVE-2026-68300, CVE-2026-68323, CVE-2026-68343, CVE-2026-68377, CVE-2026-68399, CVE-2026-68476, CVE-2026-72021, CVE-2026-72053, CVE-2026-72083, CVE-2026-72135, CVE-2026-72251, CVE-2026-72255, CVE-2026-72299, CVE-2026-72318, CVE-2026-72319, CVE-2026-72404, CVE-2026-72464, CVE-2026-72473, CVE-2026-72502, CVE-2026-74255, CVE-2026-74267, CVE-2026-74287, CVE-2026-74345, CVE-2026-74386, CVE-2026-74394, CVE-2026-74582, CVE-2026-74586, CVE-2026-74598, CVE-2026-74662, CVE-2026-74695, CVE-2026-80586, CVE-2026-80590, CVE-2026-80731, CVE-2026-80837, CVE-2026-80947, CVE-2026-80971, CVE-2026-80977, CVE-2026-81002, CVE-2026-89478, CVE-2026-89526, CVE-2026-89528, CVE-2026-89531, CVE-2026-89551, CVE-2026-89564, CVE-2026-89569, CVE-2026-89573, CVE-2026-89636, CVE-2026-89650, CVE-2026-89652, CVE-2026-89656, CVE-2026-89662, CVE-2026-89666, CVE-2026-89672, CVE-2026-89685, CVE-2026-89697, CVE-2026-89713, CVE-2026-89777, CVE-2026-89783, CVE-2026-90041, CVE-2026-90104, CVE-2026-90292, CVE-2026-90335, CVE-2026-90343, CVE-2026-93288, CVE-2026-93787, CVE-2026-97445, CVE-2026-97563, CVE-2026-97611, CVE-2026-98015, CVE-2026-98103, CVE-2026-98108, CVE-2026-98241, CVE-2026-98251, CVE-2026-98299, CVE-2026-98330, CVE-2026-98331, CVE-2026-98380, CVE-2026-98419, CVE-2026-98454, CVE-2026-98457, CVE-2026-98490, CVE-2026-98491, CVE-2026-98501, CVE-2026-98515, CVE-2026-98532, CVE-2026-98548, CVE-2026-98549, CVE-2026-98568, CVE-2026-98614, CVE-2026-98709, CVE-2026-98734, CVE-2026-98735, CVE-2026-98738, CVE-2026-98739, CVE-2026-98772, CVE-2026-98794, CVE-2026-98846, CVE-2026-98853, CVE-2026-98857, CVE-2026-99109, CVE-2026-99112, CVE-2026-99139, CVE-2026-99152, CVE-2026-99153, CVE-2026-99154, CVE-2026-99156, CVE-2026-99167, CVE-2026-99203, CVE-2026-99213, CVE-2026-99216, CVE-2026-99218, CVE-2026-99224, CVE-2026-99235, CVE-2026-99236, CVE-2026-99246

CLSA: 2026:1794319150