kernel-4.18.0-553.158.1.el8_10

エラータID: AXSA:2026-1794:77

Release date: 
Thursday, September 10, 2026 - 09:16
Subject: 
kernel-4.18.0-553.158.1.el8_10
Affected Channels: 
Asianux Server 8 for x86_64
Severity: 
High
Description: 

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

Security Fix(es):

* kernel: sctp: purge outqueue on stale COOKIE-ECHO handling (CVE-2026-52924)
* kernel: scsi: target: iscsi: Validate CHAP_R length before base64 decode (CVE-2026-63886)
* kernel: netfilter: conntrack: tcp: do not force CLOSE on invalid-seq RST without direction check (CVE-2026-63913)
* kernel: i2c: stub: Reject I2C block transfers with invalid length (CVE-2026-64191)
* kernel: netfilter: ipset: fix race between dump and ip_set_list resize (CVE-2026-64189)
* kernel: nvmet: fix pre-auth out-of-bounds heap read in Discovery Get Log Page (CVE-2026-64320)
* kernel: Input: synaptics-rmi4 - bound the F3A keymap to the GPIO count (CVE-2026-64277)
* kernel: Input: synaptics-rmi4 - bound the F30 keymap to the GPIO/LED count (CVE-2026-64276)

Bug Fix(es) and Enhancement(s):

* ss core dumped when there is an SCTP session [rhel-8.10.z] (JIRA:RHEL-212400)
* SELinux TCP/MPTCP connect check bypass via TCP Fast Open [rhel-8.10.z] (JIRA:RHEL-222800)
* [RHEL-RT] usb_hub_wq items may run on isolated+nohz_full cores (JIRA:RHEL-178088)

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-2026-52924
In the Linux kernel, the following vulnerability has been resolved: sctp: purge outqueue on stale COOKIE-ECHO handling sctp_stream_update() is only invoked when the association is moved into COOKIE_WAIT during association setup/reconfiguration. In this path, the outbound stream scheduler state (stream->out_curr) is expected to be clean, since no user data should have been transmitted yet unless the state machine has already partially progressed. However, a corner case exists in sctp_sf_do_5_2_6_stale(): when a Stale Cookie ERROR is received, the association is rolled back from COOKIE_ECHOED to COOKIE_WAIT. In this scenario, user data may already have been queued and even bundled with the COOKIE-ECHO chunk. During the rollback, sctp_stream_update() frees the old stream table and installs a new one, but it does not invalidate stream->out_curr. As a result, out_curr may still point to a freed sctp_stream_out entry from the previous stream state. Later, SCTP scheduler dequeue paths (FCFS, RR, PRIO, etc.) rely on stream->out_curr->ext, which can lead to use-after-free once the old stream state has been released via sctp_stream_free(). This results in crashes such as (reported by Yuqi): BUG: KASAN: slab-use-after-free in sctp_sched_fcfs_dequeue+0x13a/0x140 Read of size 8 at addr ff1100004d4d3208 by task mini_poc/9312 CPU: 1 UID: 1001 PID: 9312 Comm: mini_poc Not tainted 7.1.0-rc1-00305-gbd3a4795d574 #5 PREEMPT(full) sctp_sched_fcfs_dequeue+0x13a/0x140 sctp_outq_flush+0x1603/0x33e0 sctp_do_sm+0x31c9/0x5d30 sctp_assoc_bh_rcv+0x392/0x6f0 sctp_inq_push+0x1db/0x270 sctp_rcv+0x138d/0x3c10 Fix this by fully purging the association outqueue when handling the Stale Cookie case. This ensures all pending transmit and retransmit state is dropped, and any scheduler cached pointers are invalidated, making it safe to rebuild stream state during COOKIE_WAIT restart. Updating only stream->out_curr would be insufficient, since queued and retransmittable data would still reference the old stream state and trigger later use-after-free in dequeue paths.
CVE-2026-63886
In the Linux kernel, the following vulnerability has been resolved: scsi: target: iscsi: Validate CHAP_R length before base64 decode chap_server_compute_hash() allocates client_digest as kzalloc(chap->digest_size) and then, for BASE64-encoded responses, passes chap_r directly to chap_base64_decode() without checking whether the input length could produce more than digest_size bytes of output. chap_base64_decode() writes to the destination unconditionally as long as there is input to consume. With MAX_RESPONSE_LENGTH set to 128 and the "0b" prefix stripped by extract_param(), up to 127 base64 characters can reach the decoder. 127 characters decode to 95 bytes. For SHA-256 (digest_size=32) this overflows client_digest by 63 bytes; for MD5 (digest_size=16) the overflow is 79 bytes. The length check at line 344 fires after the write has already happened. The HEX branch in the same switch statement already validates the length up front. Apply the same approach to the BASE64 branch: strip trailing base64 padding characters, then reject any input whose data length exceeds DIV_ROUND_UP(digest_size * 4, 3) before calling the decoder. Stripping trailing '=' before the comparison handles both padded and unpadded encodings. chap_base64_decode() already returns early on '=', so the full original string is still passed to the decoder unchanged. The mutual CHAP path decodes CHAP_C into initiatorchg_binhex, which is kzalloc(CHAP_CHALLENGE_STR_LEN). extract_param() caps initiatorchg at CHAP_CHALLENGE_STR_LEN characters, so at most CHAP_CHALLENGE_STR_LEN-1 base64 characters reach the decoder. The maximum decoded size, DIV_ROUND_UP((CHAP_CHALLENGE_STR_LEN-1) * 3, 4), is less than CHAP_CHALLENGE_STR_LEN, so no overflow is possible there. A comment is added at the call site to document this.
CVE-2026-63913
In the Linux kernel, the following vulnerability has been resolved: netfilter: conntrack: tcp: do not force CLOSE on invalid-seq RST without direction check An unintended behavior in the TCP conntrack state machine allows a connection to be forced into the CLOSE state using an RST packet with an invalid sequence number. Specifically, after a SYN packet is observed, an RST with an invalid SEQ can transition the conntrack entry to TCP_CONNTRACK_CLOSE, regardless of whether the RST corresponds to the expected reply direction. The relevant code path assumes the RST is a response to an outgoing SYN, but does not validate packet direction or ensure that a matching SYN was actually sent in the opposite direction. As a result, a crafted packet sequence consisting of a SYN followed by an invalid-sequence RST can prematurely terminate an active NAT entry. This makes connection teardown easier than intended. So, tighten the state transition logic to ensure that RST-triggered CLOSE transitions only occur when the RST is a valid response to a previously observed SYN in the correct direction.
CVE-2026-64189
In the Linux kernel, the following vulnerability has been resolved: netfilter: ipset: fix race between dump and ip_set_list resize The release path of ip_set_dump_do() and ip_set_dump_done() read inst->ip_set_list via ip_set_ref_netlink(), a plain rcu_dereference_raw() of the array pointer. These run from netlink_recvmsg() without the nfnl mutex and without an RCU read-side critical section. A concurrent ip_set_create() can grow the array: it publishes the new array, calls synchronize_net() and then kvfree()s the old one. Since the dump paths read the array outside any RCU reader, synchronize_net() does not wait for them and the old array can be freed while they still index into it, causing a use-after-free. The dumped set itself stays pinned via set->ref_netlink, so only the array load needs protecting. Take rcu_read_lock() around it, matching ip_set_get_byname() and __ip_set_put_byindex(). BUG: KASAN: slab-use-after-free in ip_set_dump_do (net/netfilter/ipset/ip_set_core.c:1697) Read of size 8 at addr ffff88800b5c4018 by task exploit/150 Call Trace: ... kasan_report (mm/kasan/report.c:595) ip_set_dump_do (net/netfilter/ipset/ip_set_core.c:1697) netlink_dump (net/netlink/af_netlink.c:2325) netlink_recvmsg (net/netlink/af_netlink.c:1976) sock_recvmsg (net/socket.c:1159) __sys_recvfrom (net/socket.c:2315) ... Oops: general protection fault, probably for non-canonical address ... KASAN NOPTI KASAN: maybe wild-memory-access in range [0x02d6...d0-0x02d6...d7] RIP: 0010:ip_set_dump_do (net/netfilter/ipset/ip_set_core.c:1698) Kernel panic - not syncing: Fatal exception
CVE-2026-64191
In the Linux kernel, the following vulnerability has been resolved: i2c: stub: Reject I2C block transfers with invalid length The I2C_SMBUS_I2C_BLOCK_DATA case in stub_xfer() uses data->block[0] as the transfer length. The existing check only clamps it to avoid overrunning the chip->words[256] register array, but does not validate it against I2C_SMBUS_BLOCK_MAX (32), which is the limit of the union i2c_smbus_data.block buffer (34 bytes total). The driver is a development/test tool (CONFIG_I2C_STUB=m, not built by default) that must be loaded with a chip_addr= parameter. A local user with access to /dev/i2c-* can issue an I2C_SMBUS ioctl with I2C_SMBUS_I2C_BLOCK_DATA and data->block[0] > 32, causing stub_xfer() to read or write past the end of the union i2c_smbus_data.block buffer: BUG: KASAN: stack-out-of-bounds in stub_xfer (drivers/i2c/i2c-stub.c:223) Read of size 1 at addr ffff88800abcfd92 by task exploit/81 Call Trace: stub_xfer (drivers/i2c/i2c-stub.c:223) __i2c_smbus_xfer (drivers/i2c/i2c-core-smbus.c:593) i2c_smbus_xfer (drivers/i2c/i2c-core-smbus.c:536) i2cdev_ioctl_smbus (drivers/i2c/i2c-dev.c:391) i2cdev_ioctl (drivers/i2c/i2c-dev.c:478) __x64_sys_ioctl (fs/ioctl.c:583) do_syscall_64 (arch/x86/entry/syscall_64.c:94) entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:130) The bug exists because i2c-stub implements .smbus_xfer directly, bypassing the I2C_SMBUS_BLOCK_MAX validation in i2c_smbus_xfer_emulated(). The I2C_SMBUS_BLOCK_DATA case in the same function correctly validates against I2C_SMBUS_BLOCK_MAX, but the I2C_SMBUS_I2C_BLOCK_DATA case does not. Fix by rejecting transfers with data->block[0] == 0 or data->block[0] > I2C_SMBUS_BLOCK_MAX with -EINVAL, consistent with both the I2C_SMBUS_BLOCK_DATA case in the same function and the I2C_SMBUS_I2C_BLOCK_DATA validation in i2c_smbus_xfer_emulated().
CVE-2026-64276
In the Linux kernel, the following vulnerability has been resolved: Input: synaptics-rmi4 - bound the F30 keymap to the GPIO/LED count rmi_f30_map_gpios() allocates gpioled_key_map with min(gpioled_count, TRACKSTICK_RANGE_END) == at most 6 entries, but rmi_f30_attention() iterates the full f30->gpioled_count (device query register, range 0..31) and dereferences gpioled_key_map[i], and input->keycodemax is set to the full gpioled_count while input->keycode points at the 6-entry allocation. A device that reports gpioled_count > 6 with GPIO support enabled therefore causes an out-of-bounds read on the attention interrupt and out-of-bounds read/write through the EVIOCGKEYCODE/EVIOCSKEYCODE ioctls, which bound the index only against keycodemax. This is the same defect as the F3A handler, which was copied from F30. Size the keymap for the full gpioled_count; the mapping loop still assigns only the first min(gpioled_count, TRACKSTICK_RANGE_END) entries.
CVE-2026-64277
In the Linux kernel, the following vulnerability has been resolved: Input: synaptics-rmi4 - bound the F3A keymap to the GPIO count rmi_f3a_initialize() takes the GPIO count from the device query register (f3a->gpio_count = buf & RMI_F3A_GPIO_COUNT, range 0..127). rmi_f3a_map_gpios() then allocates gpio_key_map with min(gpio_count, TRACKSTICK_RANGE_END) == at most 6 entries, but rmi_f3a_attention() iterates the full gpio_count and dereferences gpio_key_map[i], and input->keycodemax is set to the full gpio_count while input->keycode points at the 6-entry allocation. A device that reports gpio_count > 6 therefore causes an out-of-bounds read of gpio_key_map[] on every attention interrupt, and out-of-bounds accesses through the input core's default keymap ioctls: EVIOCGKEYCODE reads past the buffer (leaking adjacent slab memory to user space) and EVIOCSKEYCODE writes a caller-controlled value past it, for any process able to open the evdev node, since input_default_getkeycode() and input_default_setkeycode() only bound the index against keycodemax. Size the keymap for the full gpio_count. The mapping loop is unchanged: it still assigns only the first min(gpio_count, TRACKSTICK_RANGE_END) entries; the remaining slots stay KEY_RESERVED (devm_kcalloc zero-fills) and are skipped when reporting.
CVE-2026-64320
In the Linux kernel, the following vulnerability has been resolved: nvmet: fix pre-auth out-of-bounds heap read in Discovery Get Log Page nvmet_execute_disc_get_log_page() validates only the dword alignment of the host-supplied Log Page Offset (lpo). The 64-bit offset is then added to a small kzalloc'd buffer that holds the discovery log page and the result is passed straight to nvmet_copy_to_sgl(), which memcpy()s data_len bytes out to the host with no source-side bound check: u64 offset = nvmet_get_log_page_offset(req->cmd); /* 64-bit host */ size_t data_len = nvmet_get_log_page_len(req->cmd); /* 32-bit host */ ... if (offset & 0x3) { ... } /* only check */ ... alloc_len = sizeof(*hdr) + entry_size * discovery_log_entries(req); buffer = kzalloc(alloc_len, GFP_KERNEL); ... status = nvmet_copy_to_sgl(req, 0, buffer + offset, data_len); The Discovery controller is unauthenticated -- nvmet_host_allowed() returns true unconditionally for the discovery subsystem -- so the call is reachable pre-authentication by any TCP/RDMA/FC peer that can reach the nvmet target. With a discovery log page of ~1 KiB, an attacker requesting up to 4 KiB starting at offset == alloc_len reads the next slab page out and gets its content returned over the fabric (an empirical run on a default nvmet-tcp loopback target leaked 81 canonical kernel pointers in one Get Log Page response). Pointing the offset at unmapped kernel memory faults the in-kernel memcpy and crashes (or panics, on panic_on_oops=1) the target host instead. The attacker-controlled source-side offset pattern "nvmet_copy_to_sgl(req, 0, buffer + ATTACKER_OFFSET, ...)" is unique to nvmet_execute_disc_get_log_page in the entire nvmet codebase: every other Get Log Page handler in admin-cmd.c either ignores lpo (and silently starts every response at offset 0) or tracks a local destination offset with a fixed source pointer. Validate the host-supplied offset against the log page size, cap the copy length to what is actually available, and zero-fill any remainder of the host transfer buffer. The zero-fill matches the existing short-response pattern in nvmet_execute_get_log_changed_ns() (admin-cmd.c) and prevents leaking transport SGL contents when the host asks for more bytes than the log page contains.

Solution: 

Update packages.

Additional Info: 

N/A

Download: 

SRPMS
  1. kernel-4.18.0-553.158.1.el8_10.src.rpm
    MD5: bf77eb49e506cad543fcd2fa536d304b
    SHA-256: 8d3c912688f943ebc4c9dd50ee1ddda26de7b33dbc02dba6f8cc69cc438a0490
    Size: 132.44 MB

Asianux Server 8 for x86_64
  1. bpftool-4.18.0-553.158.1.el8_10.x86_64.rpm
    MD5: a99a611853c8e4e80a1a3ba37fd0ac16
    SHA-256: f41fbd0b526cf615adf41911a42b240599db52a049c7f5428a303bdc38190dbb
    Size: 11.34 MB
  2. kernel-4.18.0-553.158.1.el8_10.x86_64.rpm
    MD5: d0f5fa13ee076befb4d676aae71b940a
    SHA-256: 0a44096997b9f448305ba9b33348af4aa8df8054ec96ea36095c990b940ca32c
    Size: 10.61 MB
  3. kernel-abi-stablelists-4.18.0-553.158.1.el8_10.noarch.rpm
    MD5: b1ee6d6c2f9f391d7821704b01b6a1a0
    SHA-256: d855421e12d63bd437e59b7a5d6c3f6d713443b7451c6cbfe7c43f7119f5759a
    Size: 10.63 MB
  4. kernel-core-4.18.0-553.158.1.el8_10.x86_64.rpm
    MD5: 15a79b40a1a8be494d648dd673adcf62
    SHA-256: cc1dd3e1c21a31ebd1b7642533b4bd1cb8f78088e2f05917a669f6d2155d7c64
    Size: 43.66 MB
  5. kernel-cross-headers-4.18.0-553.158.1.el8_10.x86_64.rpm
    MD5: 8bf80dce70e200423779790a697fb806
    SHA-256: 5e0b592cd9dd58311e9fa9e4b07309340373e967427213ed8ab3d51570a9c1d3
    Size: 15.96 MB
  6. kernel-debug-4.18.0-553.158.1.el8_10.x86_64.rpm
    MD5: 149bc44e85f48d9fe704fef6571e7908
    SHA-256: d81702b404fcbe082bf732919a15bf2f24fa1aabb2532f846828e4cb309cf629
    Size: 10.61 MB
  7. kernel-debug-core-4.18.0-553.158.1.el8_10.x86_64.rpm
    MD5: b1d1a0a688f63d65de75fe896f691270
    SHA-256: bbb5653fc9db7bf8da562396fc69be27752b51e480e124137cf3c41787795c45
    Size: 72.97 MB
  8. kernel-debug-devel-4.18.0-553.158.1.el8_10.x86_64.rpm
    MD5: 74d68100e541dc6be7d164ba4e58a5d4
    SHA-256: 0df95503009da488b1d7d319bc92a047aabdc18a2ac2371aecaecf33da50b774
    Size: 24.46 MB
  9. kernel-debug-modules-4.18.0-553.158.1.el8_10.x86_64.rpm
    MD5: 9d2c301de36736abd971a31dddea670b
    SHA-256: d3359de914543d3e3eeb15dddb564307e0781aa462ffa69d5d6730dfe8bec104
    Size: 66.09 MB
  10. kernel-debug-modules-extra-4.18.0-553.158.1.el8_10.x86_64.rpm
    MD5: 2b9e4783a5d2cb1f7d1ed810920cc20b
    SHA-256: eaae2484a069de16a0df3980fdd19f58a764084e3ea22d219c8a7f2a282f5194
    Size: 11.99 MB
  11. kernel-devel-4.18.0-553.158.1.el8_10.x86_64.rpm
    MD5: b40c96e979621eea22ad9a7b8dda165c
    SHA-256: 4e59cdab9bc2a4e111d43a2f4baf53485b952790caccff89215e076e7ceb58a0
    Size: 24.26 MB
  12. kernel-doc-4.18.0-553.158.1.el8_10.noarch.rpm
    MD5: 3f8c8883388123c33fde8f9807d06ed7
    SHA-256: 6d7c6a1b4a26833bd7b99aa3323dc8bfb6035a318f2099fad0c3cadf88c4d252
    Size: 28.48 MB
  13. kernel-headers-4.18.0-553.158.1.el8_10.x86_64.rpm
    MD5: 122fe1bb0272e8acc6844596234cdc82
    SHA-256: b1e65f9c37a41193bdd96af082e3c8edc96a3eda7c20d1293f9b8fd94f32ca8d
    Size: 11.96 MB
  14. kernel-modules-4.18.0-553.158.1.el8_10.x86_64.rpm
    MD5: 56a0d1a118a23c1a9c006b3bc7e55892
    SHA-256: d3952cb16bd8b96ed80722a504e4b1ab6b8588c2ccf5bea75ddf5299ca1c47cc
    Size: 36.45 MB
  15. kernel-modules-extra-4.18.0-553.158.1.el8_10.x86_64.rpm
    MD5: cae9e8562e448830b9bbd036a399389b
    SHA-256: fbbc011449e4940ca305dbe7cc550fc11ac79d5bb2bc64fe881f4fa0ca9d33a6
    Size: 11.30 MB
  16. kernel-tools-4.18.0-553.158.1.el8_10.x86_64.rpm
    MD5: a9232e7d9653a067e17de0973a9cabf7
    SHA-256: f00b2bbfcf466fe804e758054027a80be3c4d143df05e3e3156f42434f723c2c
    Size: 10.83 MB
  17. kernel-tools-libs-4.18.0-553.158.1.el8_10.x86_64.rpm
    MD5: 66ce95c9aea4caae0ba86ac49e597c05
    SHA-256: ac541e7edae32353cabaf241147129ea5c460e01a06e0350dbd525aa8c7fb293
    Size: 10.62 MB
  18. kernel-tools-libs-devel-4.18.0-553.158.1.el8_10.x86_64.rpm
    MD5: 038a19231b0cd70a5e838ccc90b7d6b8
    SHA-256: 2528398fe8da11f50357076169b3573607f2eed7df66b63ed4e782a27dd17e6a
    Size: 10.61 MB
  19. perf-4.18.0-553.158.1.el8_10.x86_64.rpm
    MD5: 6ba0b2fc166eadd01e2c43ecacac26b2
    SHA-256: e5021a5a404cad0c8ca1db993f8ce75097ad71b05cc0b078e55b980a3f4f5ed2
    Size: 12.93 MB
  20. python3-perf-4.18.0-553.158.1.el8_10.x86_64.rpm
    MD5: cb44318a992cf5b25d210eaaaf40f619
    SHA-256: 3e1cc737f1f65f7b39ebe83b9f5a4f33430844645edc4d4d5cbfbfb9e3a6f8b1
    Size: 10.74 MB