Skip to content

[ciqlts9_6] Multiple patches tested (8 commits) - #1760

Open
ciq-kernel-automation[bot] wants to merge 8 commits into
ciqlts9_6from
{ciq_kernel_automation-41784704533}_ciqlts9_6
Open

ciq-kernel-automation[bot] wants to merge 8 commits into
ciqlts9_6from
{ciq_kernel_automation-41784704533}_ciqlts9_6

Conversation

@ciq-kernel-automation

Copy link
Copy Markdown

Summary

This PR has been automatically created after successful completion of all CI stages.

Commit Message(s)

vxlan: do not reuse cached ip_hdr() value after skb_tunnel_check_pmtu()

jira VULN-193418
cve CVE-2026-63993
commit-author Eric Dumazet <edumazet@google.com>
commit 7d9ef0cb271555d8cf39fefe6c981e1493b25ecf
nvmet: fix pre-auth out-of-bounds heap read in Discovery Get Log Page

jira VULN-194530
cve CVE-2026-64320
commit-author Bryam Vargas <hexlabsecurity@proton.me>
commit 53cd102a7a56079b11b897835bd9b94c14e6322c
mac802154: llsec: add skb_cow_data() before in-place crypto

jira VULN-195750
cve CVE-2026-63831
commit-author Doruk Tan Ozturk <doruk@0sec.ai>
commit 84a04eb5b210643bd67aab81ff805d32f62aa865
blk-cgroup: fix UAF in __blkcg_rstat_flush()

jira VULN-192273
cve CVE-2026-63802
commit-author Michal Koutný <mkoutny@suse.com>
commit 0ab5ee5a1badb58cbb2242617cb01a4972b1f2a2
selinux: check connect-related permissions on TCP Fast Open

jira VULN-201501
cve CVE-2026-72243
commit-author Stephen Smalley <stephen.smalley.work@gmail.com>
commit 44c74d27d1b9aaa99fa8a83640c1223575262b80
ALSA: timer: don't re-enter an instance callback that is still running

jira VULN-199420
cve CVE-2026-68200
commit-author Norbert Szetei <norbert@doyensec.com>
commit 70d28bfcd6224eed75986b3b987b997e59643fa4
scsi: libiscsi_tcp: Bound SCSI Response data segment to the connection buffer

jira VULN-204167
cve CVE-2026-74556
commit-author HyeongJun An <sammiee5311@gmail.com>
commit c1dea15f819cded9b3faf58f8bec72323568b6e6
crypto: tegra - fix rctx->cryptlen calculation in tegra_gcm_do_one_req()

jira VULN-205939
cve CVE-2026-80522
commit-author Vladislav Dronov <vdronov@redhat.com>
commit 360f2974fcea49c61f6d6f81554741a9eeee7168

Test Results

✅ Build Stage

Architecture Build Time Total Time
x86_64 35m 26s 36m 26s
aarch64 19m 40s 20m 26s

✅ Boot Verification

✅ Kernel Selftests

Architecture Passed Failed Compared Against Status
x86_64 208 41 ciqlts9_6 ✅ No regressions
aarch64 155 44 ciqlts9_6 ✅ No regressions

✅ LTP Results

Architecture Passed Failed Compared Against Status
x86_64 1513 7 ciqlts9_6 ✅ No regressions
aarch64 1486 8 ciqlts9_6 ✅ No regressions

🤖 This PR was automatically generated by GitHub Actions
Run ID: 41788388223

CIQ Kernel Automation added 8 commits November 4, 2026 06:42
jira VULN-193418
cve CVE-2026-63993
commit-author Eric Dumazet <edumazet@google.com>
commit 7d9ef0c

skb_tunnel_check_pmtu() can change skb->head.

Reusing old_iph afer skb_tunnel_check_pmtu() can cause an UAF.

Use instead ip_hdr(skb) as done in drivers/net/bareudp.c
and drivers/net/geneve.c.

Found by Sashiko.

Fixes: 4cb47a8 ("tunnels: PMTU discovery support for directly bridged IP packets")
	Signed-off-by: Eric Dumazet <edumazet@google.com>
	Reviewed-by: Stefano Brivio <sbrivio@redhat.com>
Link: https://patch.msgid.link/20260525203642.2389723-1-edumazet@google.com
	Signed-off-by: Jakub Kicinski <kuba@kernel.org>
(cherry picked from commit 7d9ef0c)
Signed-off-by: CIQ Kernel Automation <ciq_kernel_automation@ciq.com>
jira VULN-194530
cve CVE-2026-64320
commit-author Bryam Vargas <hexlabsecurity@proton.me>
commit 53cd102

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.

Fixes: a07b497 ("nvmet: add a generic NVMe target")
	Cc: stable@vger.kernel.org
	Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
	Reviewed-by: Christoph Hellwig <hch@lst.de>
	Signed-off-by: Bryam Vargas <hexlabsecurity@proton.me>
	Signed-off-by: Keith Busch <kbusch@kernel.org>
(cherry picked from commit 53cd102)
Signed-off-by: CIQ Kernel Automation <ciq_kernel_automation@ciq.com>
jira VULN-195750
cve CVE-2026-63831
commit-author Doruk Tan Ozturk <doruk@0sec.ai>
commit 84a04eb

llsec_do_encrypt_unauth(), llsec_do_encrypt_auth(),
llsec_do_decrypt_unauth(), and llsec_do_decrypt_auth() all perform
in-place cryptographic transformations on skb data.  They build a
scatterlist with sg_init_one() pointing into the skb's linear data area
and then pass the same scatterlist as both src and dst to the crypto API
(e.g. crypto_skcipher_encrypt/decrypt, crypto_aead_encrypt/decrypt).

On the RX path, __ieee802154_rx_handle_packet() clones the received skb
before handing it to each subscriber via ieee802154_subif_frame().  The
cloned skb shares the same underlying data buffer via reference
counting.  When llsec_do_decrypt() subsequently modifies this shared
buffer in place, it corrupts data that other clones -- potentially
belonging to other sockets or subsystems -- still reference.

On the TX path, similar data sharing can occur when an skb's head has
been cloned (skb_cloned() returns true).

The fix is to call skb_cow_data() before performing any in-place crypto
operation.  skb_cow_data() ensures that the skb's data area is not
shared: if the skb head is cloned or the data spans multiple fragments,
it copies the data into a private buffer that can be safely modified in
place.  This is the same pattern used by:

  - ESP (net/ipv4/esp4.c, net/ipv6/esp6.c)
  - MACsec (drivers/net/macsec.c)
  - WireGuard (drivers/net/wireguard/receive.c)
  - TIPC (net/tipc/crypto.c)

Without this guard, in-place crypto on shared skb data leads to:
  - Silent data corruption of other skb clones
  - Use-after-free when the crypto API scatterwalk writes through a
    page that has already been freed by another clone's kfree_skb()
  - Kernel crashes under concurrent 802.15.4 traffic with security
    enabled (KASAN/KMSAN reports slab-use-after-free)

Found by 0sec (https://0sec.ai) using automated source analysis.

Fixes: 4c14a2f ("mac802154: add llsec decryption method")
Fixes: 03556e4 ("mac802154: add llsec encryption method")
	Cc: stable@vger.kernel.org
	Reported-by: Doruk Tan Ozturk <doruk@0sec.ai>
Closes: https://lore.kernel.org/linux-wpan/20260525161806.96158-1-doruk@0sec.ai/
	Reviewed-by: Alexander Lobakin <aleksander.lobakin@intel.com>
	Signed-off-by: Doruk Tan Ozturk <doruk@0sec.ai>
Closes: <link to your mail on lore>
Link: https://lore.kernel.org/20260526183726.56100-1-doruk@0sec.ai
	Signed-off-by: Stefan Schmidt <stefan@datenfreihafen.org>
(cherry picked from commit 84a04eb)
Signed-off-by: CIQ Kernel Automation <ciq_kernel_automation@ciq.com>
jira VULN-192273
cve CVE-2026-63802
commit-author Michal Koutný <mkoutny@suse.com>
commit 0ab5ee5

When multiple blkgs in the same blkcg are released concurrently,
a use-after-free can occur. The race happens when one blkg's
__blkcg_rstat_flush() removes another blkg's iostat entries via
llist_del_all(). The second blkg sees an empty list and proceeds
to free itself while the first is still iterating over its entries.

Move the flush from __blkg_release() (RCU callback) to blkg_release()
(before call_rcu). This ensures the RCU grace period waits for any
concurrent flush's rcu_read_lock() section to complete before freeing.

	Cc: stable@vger.kernel.org
	Cc: Jay Shin <jaeshin@redhat.com>
	Cc: Tejun Heo <tj@kernel.org>
	Cc: Waiman Long <longman@redhat.com>
Fixes: 20cb1c2 ("blk-cgroup: Flush stats before releasing blkcg_gq")
	Reported-by: coregee2000@gmail.com
Closes: https://lore.kernel.org/linux-block/CAHPqNmwT9oRpem3J3erS_W0uSQND47LGGSBsNxP8E6uSUish1w@mail.gmail.com/
	Signed-off-by: Ming Lei <ming.lei@redhat.com>
	Tested-by: Jose Fernandez (Anthropic) <jose.fernandez@linux.dev>
Link: https://patch.msgid.link/20260205155425.342084-1-ming.lei@redhat.com
	Signed-off-by: Jens Axboe <axboe@kernel.dk>
(cherry picked from commit 0ab5ee5)
Signed-off-by: CIQ Kernel Automation <ciq_kernel_automation@ciq.com>
jira VULN-201501
cve CVE-2026-72243
commit-author Stephen Smalley <stephen.smalley.work@gmail.com>
commit 44c74d2

Similar to Landlock, SELinux was not updated when TCP Fast Open
support was introduced to ensure connect-related permissions are
checked when using TCP Fast Open. Update its socket_sendmsg() hook to
call selinux_socket_connect() when MSG_FASTOPEN is passed.

	Cc: stable@vger.kernel.org
Link: https://lore.kernel.org/linux-security-module/20260616201615.275032-1-hexlabsecurity@proton.me/
Link: https://lore.kernel.org/linux-security-module/20260617180526.15627-2-matthieu@buffet.re/
	Reported-by: Bryam Vargas <hexlabsecurity@proton.me>
	Reported-by: Matthieu Buffet <matthieu@buffet.re>
	Reported-by: Mikhail Ivanov <ivanov.mikhail1@huawei-partners.com>
	Signed-off-by: Stephen Smalley <stephen.smalley.work@gmail.com>
	Tested-by: Bryam Vargas <hexlabsecurity@proton.me>
	Signed-off-by: Paul Moore <paul@paul-moore.com>
(cherry picked from commit 44c74d2)
Signed-off-by: CIQ Kernel Automation <ciq_kernel_automation@ciq.com>
jira VULN-199420
cve CVE-2026-68200
commit-author Norbert Szetei <norbert@doyensec.com>
commit 70d28bf

The userspace-driven timer (utimer) TRIGGER ioctl calls
snd_timer_interrupt() directly with no serialization, so two threads
triggering the same utimer can run snd_timer_interrupt() on one
snd_timer concurrently.

snd_timer_process_callbacks() drops timer->lock around each instance
callback and marks the in-flight callback with the single
SNDRV_TIMER_IFLG_CALLBACK bit; snd_timer_close_locked() waits on that
bit to drain an in-flight callback before freeing the instance. The bit
cannot represent two concurrent callbacks: when a second interrupt
re-queues an instance whose callback is still running, both run at once,
the first to finish clears the bit, and the close-path drain then frees
the instance (and its callback_data) while the other callback is still
live - a use-after-free reachable by any user able to open
/dev/snd/timer, both via a user timer instance and via a sequencer queue
timer bound to the utimer.

snd_timer_interrupt() sets IFLG_CALLBACK before dropping timer->lock, so
a concurrent interrupt already observes it under the lock. Skip
re-queuing an instance (and its slaves) to the ack/sack list while its
callback is in flight; the accumulated pticks are delivered on the next
tick, so no event is lost.

Fixes: 3774591 ("ALSA: timer: Introduce virtual userspace-driven timers")
	Cc: stable@vger.kernel.org
	Suggested-by: Takashi Iwai <tiwai@suse.de>
Assisted-by: Claude:claude-opus-4-8
	Signed-off-by: Norbert Szetei <norbert@doyensec.com>
	Signed-off-by: Takashi Iwai <tiwai@suse.de>
Link: https://patch.msgid.link/6F9B6501-8E65-4265-B02C-7EFB240D1664@doyensec.com
(cherry picked from commit 70d28bf)
Signed-off-by: CIQ Kernel Automation <ciq_kernel_automation@ciq.com>
…n buffer

jira VULN-204167
cve CVE-2026-74556
commit-author HyeongJun An <sammiee5311@gmail.com>
commit c1dea15

iscsi_tcp_hdr_dissect() receives the data segment of several PDU types
into the fixed-size conn->data buffer, which is allocated for
ISCSI_DEF_MAX_RECV_SEG_LEN (8192) bytes.  For the LOGIN_RSP, TEXT_RSP,
REJECT and ASYNC_EVENT opcodes the dissect path already rejects a PDU
whose DataSegmentLength exceeds that buffer.

The SCSI Command Response (ISCSI_OP_SCSI_CMD_RSP) path also copies its
data segment (sense/response data) into conn->data via
iscsi_tcp_data_recv_prep(), but it does so without the same check.  The
only upstream bound on in.datalen is conn->max_recv_dlength, the
initiator's advertised MaxRecvDataSegmentLength, which is commonly
negotiated well above 8192 (open-iscsi defaults to 262144).  A target
that returns a SCSI Response with a DataSegmentLength between 8193 and
max_recv_dlength therefore overflows the 8192-byte conn->data buffer.

Once the same bound applies, ISCSI_OP_SCSI_CMD_RSP is handled exactly
like those responses: bound the data segment, receive it into conn->data
when present, and otherwise complete the PDU with no data.  Fold the
opcode into that case group rather than duplicating the check.

Fixes: a081c13 ("[SCSI] iscsi_tcp: split module into lib and lld")
	Suggested-by: Chris Leech <cleech@redhat.com>
Assisted-by: Claude:claude-opus-4-8
	Signed-off-by: HyeongJun An <sammiee5311@gmail.com>
	Acked-by: Chris Leech <cleech@redhat.com>
Link: https://patch.msgid.link/20260716065848.1653431-1-sammiee5311@gmail.com
	Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
(cherry picked from commit c1dea15)
Signed-off-by: CIQ Kernel Automation <ciq_kernel_automation@ciq.com>
jira VULN-205939
cve CVE-2026-80522
commit-author Vladislav Dronov <vdronov@redhat.com>
commit 360f297

Perform rctx->cryptlen calculation in tegra_gcm_do_one_req() the same way
it is done in tegra_ccm_crypt_init(). The current formulae may lead to a
crash if a caller does not call tegra_gcm_setauthsize() and so ctx->authsize
remains zero. Then a decrypt operation with incorrect rctx->cryptlen will
lead to a write beyound rctx->dst_sg buffer.

As a follow-up cleanup delete struct tegra_aead_ctx->authsize field since
it appears to be completely unused. Also simplify tegra_ccm_setauthsize()
and tegra_gcm_setauthsize() functions respectively.

Fixes: 0880bb3 ("crypto: tegra - Add Tegra Security Engine driver")
	Signed-off-by: Vladislav Dronov <vdronov@redhat.com>
	Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
(cherry picked from commit 360f297)
Signed-off-by: CIQ Kernel Automation <ciq_kernel_automation@ciq.com>
@ciq-kernel-automation ciq-kernel-automation Bot added the created-by-kernelci Tag PRs that were automatically created when a user branch was pushed to the repo (kernelCI) label Nov 4, 2026
@github-actions

github-actions Bot commented Nov 4, 2026

Copy link
Copy Markdown

🤖 Validation Checks In Progress Workflow run: https://github.com/ctrliq/kernel-src-tree/actions/runs/41822305029

@github-actions

github-actions Bot commented Nov 4, 2026

Copy link
Copy Markdown

✅ Diffofdiffs: No differences found

Compared 8 backports with upstream.

Checked PR revision 252fce9cfaf1 against base 8ed19f6fbd17.

@github-actions

github-actions Bot commented Nov 4, 2026

Copy link
Copy Markdown

✅ Validation checks completed successfully View full results: https://github.com/ctrliq/kernel-src-tree/actions/runs/41822305029

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

created-by-kernelci Tag PRs that were automatically created when a user branch was pushed to the repo (kernelCI)

Development

Successfully merging this pull request may close these issues.

0 participants