Skip to content

[ciqlts9_4] Multiple patches tested (6 commits)#1176

Open
ciq-kernel-automation[bot] wants to merge 6 commits intociqlts9_4from
{rnicolescu}_ciqlts9_4
Open

[ciqlts9_4] Multiple patches tested (6 commits)#1176
ciq-kernel-automation[bot] wants to merge 6 commits intociqlts9_4from
{rnicolescu}_ciqlts9_4

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)

mlxsw: spectrum_mr: Fix use-after-free when updating multicast route stats

jira VULN-173889
cve CVE-2025-68800
commit-author Ido Schimmel <idosch@nvidia.com>
commit 8ac1dacec458f55f871f7153242ed6ab60373b90
mm/damon/sysfs: cleanup attrs subdirs on context dir setup failure

jira VULN-176247
cve CVE-2026-23144
commit-author SeongJae Park <sj@kernel.org>
commit 9814cc832b88bd040fc2a1817c2b5469d0f7e862
scsi: target: iscsi: Fix use-after-free in iscsit_dec_session_usage_count()

jira VULN-176314
cve CVE-2026-23193
commit-author Maurizio Lombardi <mlombard@redhat.com>
commit 84dc6037390b8607c5551047d3970336cb51ba9a
net: add skb_header_pointer_careful() helper

jira VULN-176130
cve-pre CVE-2026-23204
commit-author Eric Dumazet <edumazet@google.com>
commit 13e00fdc9236bd4d0bff4109d2983171fbcb74c4
upstream-diff |
	Adjusted context because skb_pointer_if_linear does not exist.
	Introduced in 6f5a630d7c57c ("bpf, net: Introduce skb_pointer_if_linear().")
net/sched: cls_u32: use skb_header_pointer_careful()

jira VULN-176130
cve CVE-2026-23204
commit-author Eric Dumazet <edumazet@google.com>
commit cabd1a976375780dabab888784e356f574bbaed8
netfilter: nf_tables: fix inverted genmask check in nft_map_catchall_activate()

jira VULN-176073
cve CVE-2026-23111
commit-author Andrew Fasano <andrew.fasano@nist.gov>
commit f41c5d151078c5348271ffaf8e7410d96f2d82f8

Test Results

✅ Build Stage

Architecture Build Time Total Time
x86_64 27m 8s 28m 6s
aarch64 15m 45s 16m 23s

✅ Boot Verification

✅ Kernel Selftests

Architecture Passed Failed Compared Against Status
x86_64 188 29 ciqlts9_4 ⚠️ No baseline available
aarch64 143 32 ciqlts9_4 ⚠️ No baseline available

✅ LTP Results

Architecture Passed Failed Compared Against Status
x86_64 1447 81 ciqlts9_4 ⚠️ No baseline available
aarch64 1418 82 ciqlts9_4 ⚠️ No baseline available

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

CIQ Kernel Automation and others added 6 commits May 4, 2026 12:02
…stats

jira VULN-173889
cve CVE-2025-68800
commit-author Ido Schimmel <idosch@nvidia.com>
commit 8ac1dac

Cited commit added a dedicated mutex (instead of RTNL) to protect the
multicast route list, so that it will not change while the driver
periodically traverses it in order to update the kernel about multicast
route stats that were queried from the device.

One instance of list entry deletion (during route replace) was missed
and it can result in a use-after-free [1].

Fix by acquiring the mutex before deleting the entry from the list and
releasing it afterwards.

[1]
BUG: KASAN: slab-use-after-free in mlxsw_sp_mr_stats_update+0x4a5/0x540 drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c:1006 [mlxsw_spectrum]
Read of size 8 at addr ffff8881523c2fa8 by task kworker/2:5/22043

CPU: 2 UID: 0 PID: 22043 Comm: kworker/2:5 Not tainted 6.18.0-rc1-custom-g1a3d6d7cd014 #1 PREEMPT(full)
Hardware name: Mellanox Technologies Ltd. MSN2010/SA002610, BIOS 5.6.5 08/24/2017
Workqueue: mlxsw_core mlxsw_sp_mr_stats_update [mlxsw_spectrum]
Call Trace:
 <TASK>
 dump_stack_lvl+0xba/0x110
 print_report+0x174/0x4f5
 kasan_report+0xdf/0x110
 mlxsw_sp_mr_stats_update+0x4a5/0x540 drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c:1006 [mlxsw_spectrum]
 process_one_work+0x9cc/0x18e0
 worker_thread+0x5df/0xe40
 kthread+0x3b8/0x730
 ret_from_fork+0x3e9/0x560
 ret_from_fork_asm+0x1a/0x30
 </TASK>

Allocated by task 29933:
 kasan_save_stack+0x30/0x50
 kasan_save_track+0x14/0x30
 __kasan_kmalloc+0x8f/0xa0
 mlxsw_sp_mr_route_add+0xd8/0x4770 [mlxsw_spectrum]
 mlxsw_sp_router_fibmr_event_work+0x371/0xad0 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c:7965 [mlxsw_spectrum]
 process_one_work+0x9cc/0x18e0
 worker_thread+0x5df/0xe40
 kthread+0x3b8/0x730
 ret_from_fork+0x3e9/0x560
 ret_from_fork_asm+0x1a/0x30

Freed by task 29933:
 kasan_save_stack+0x30/0x50
 kasan_save_track+0x14/0x30
 __kasan_save_free_info+0x3b/0x70
 __kasan_slab_free+0x43/0x70
 kfree+0x14e/0x700
 mlxsw_sp_mr_route_add+0x2dea/0x4770 drivers/net/ethernet/mellanox/mlxsw/spectrum_mr.c:444 [mlxsw_spectrum]
 mlxsw_sp_router_fibmr_event_work+0x371/0xad0 drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c:7965 [mlxsw_spectrum]
 process_one_work+0x9cc/0x18e0
 worker_thread+0x5df/0xe40
 kthread+0x3b8/0x730
 ret_from_fork+0x3e9/0x560
 ret_from_fork_asm+0x1a/0x30

Fixes: f38656d ("mlxsw: spectrum_mr: Protect multicast route list with a lock")
	Signed-off-by: Ido Schimmel <idosch@nvidia.com>
	Reviewed-by: Petr Machata <petrm@nvidia.com>
	Signed-off-by: Petr Machata <petrm@nvidia.com>
	Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/f996feecfd59fde297964bfc85040b6d83ec6089.1764695650.git.petrm@nvidia.com
	Signed-off-by: Jakub Kicinski <kuba@kernel.org>
(cherry picked from commit 8ac1dac)
	Signed-off-by: CIQ Kernel Automation <ciq_kernel_automation@ciq.com>
jira VULN-176247
cve CVE-2026-23144
commit-author SeongJae Park <sj@kernel.org>
commit 9814cc8

When a context DAMON sysfs directory setup is failed after setup of attrs/
directory, subdirectories of attrs/ directory are not cleaned up.  As a
result, DAMON sysfs interface is nearly broken until the system reboots,
and the memory for the unremoved directory is leaked.

Cleanup the directories under such failures.

Link: https://lkml.kernel.org/r/20251225023043.18579-3-sj@kernel.org
Fixes: c951cd3 ("mm/damon: implement a minimal stub for sysfs-based DAMON interface")
	Signed-off-by: SeongJae Park <sj@kernel.org>
	Cc: chongjiapeng <jiapeng.chong@linux.alibaba.com>
	Cc: <stable@vger.kernel.org> # 5.18.x
	Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
(cherry picked from commit 9814cc8)
	Signed-off-by: CIQ Kernel Automation <ciq_kernel_automation@ciq.com>
…ount()

jira VULN-176314
cve CVE-2026-23193
commit-author Maurizio Lombardi <mlombard@redhat.com>
commit 84dc603

In iscsit_dec_session_usage_count(), the function calls complete() while
holding the sess->session_usage_lock. Similar to the connection usage count
logic, the waiter signaled by complete() (e.g., in the session release
path) may wake up and free the iscsit_session structure immediately.

This creates a race condition where the current thread may attempt to
execute spin_unlock_bh() on a session structure that has already been
deallocated, resulting in a KASAN slab-use-after-free.

To resolve this, release the session_usage_lock before calling complete()
to ensure all dereferences of the sess pointer are finished before the
waiter is allowed to proceed with deallocation.

	Signed-off-by: Maurizio Lombardi <mlombard@redhat.com>
	Reported-by: Zhaojuan Guo <zguo@redhat.com>
	Reviewed-by: Mike Christie <michael.christie@oracle.com>
Link: https://patch.msgid.link/20260112165352.138606-3-mlombard@redhat.com
	Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
(cherry picked from commit 84dc603)
	Signed-off-by: CIQ Kernel Automation <ciq_kernel_automation@ciq.com>
jira VULN-176130
cve-pre CVE-2026-23204
commit-author Eric Dumazet <edumazet@google.com>
commit 13e00fd
upstream-diff |
	Adjusted context because skb_pointer_if_linear does not exist.
	Introduced in 6f5a630 ("bpf, net: Introduce skb_pointer_if_linear().")

This variant of skb_header_pointer() should be used in contexts
where @offset argument is user-controlled and could be negative.

Negative offsets are supported, as long as the zone starts
between skb->head and skb->data.

	Signed-off-by: Eric Dumazet <edumazet@google.com>
Link: https://patch.msgid.link/20260128141539.3404400-2-edumazet@google.com
	Signed-off-by: Jakub Kicinski <kuba@kernel.org>
(cherry picked from commit 13e00fd)
	Signed-off-by: Roxana Nicolescu <rnicolescu@ciq.com>
jira VULN-176130
cve CVE-2026-23204
commit-author Eric Dumazet <edumazet@google.com>
commit cabd1a9

skb_header_pointer() does not fully validate negative @offset values.

Use skb_header_pointer_careful() instead.

GangMin Kim provided a report and a repro fooling u32_classify():

BUG: KASAN: slab-out-of-bounds in u32_classify+0x1180/0x11b0
net/sched/cls_u32.c:221

Fixes: fbc2e7d ("cls_u32: use skb_header_pointer() to dereference data safely")
	Reported-by: GangMin Kim <km.kim1503@gmail.com>
Closes: https://lore.kernel.org/netdev/CANn89iJkyUZ=mAzLzC4GdcAgLuPnUoivdLaOs6B9rq5_erj76w@mail.gmail.com/T/
	Signed-off-by: Eric Dumazet <edumazet@google.com>
Link: https://patch.msgid.link/20260128141539.3404400-3-edumazet@google.com
	Signed-off-by: Jakub Kicinski <kuba@kernel.org>
(cherry picked from commit cabd1a9)
	Signed-off-by: CIQ Kernel Automation <ciq_kernel_automation@ciq.com>
…activate()

jira VULN-176073
cve CVE-2026-23111
commit-author Andrew Fasano <andrew.fasano@nist.gov>
commit f41c5d1

nft_map_catchall_activate() has an inverted element activity check
compared to its non-catchall counterpart nft_mapelem_activate() and
compared to what is logically required.

nft_map_catchall_activate() is called from the abort path to re-activate
catchall map elements that were deactivated during a failed transaction.
It should skip elements that are already active (they don't need
re-activation) and process elements that are inactive (they need to be
restored). Instead, the current code does the opposite: it skips inactive
elements and processes active ones.

Compare the non-catchall activate callback, which is correct:

  nft_mapelem_activate():
    if (nft_set_elem_active(ext, iter->genmask))
        return 0;   /* skip active, process inactive */

With the buggy catchall version:

  nft_map_catchall_activate():
    if (!nft_set_elem_active(ext, genmask))
        continue;   /* skip inactive, process active */

The consequence is that when a DELSET operation is aborted,
nft_setelem_data_activate() is never called for the catchall element.
For NFT_GOTO verdict elements, this means nft_data_hold() is never
called to restore the chain->use reference count. Each abort cycle
permanently decrements chain->use. Once chain->use reaches zero,
DELCHAIN succeeds and frees the chain while catchall verdict elements
still reference it, resulting in a use-after-free.

This is exploitable for local privilege escalation from an unprivileged
user via user namespaces + nftables on distributions that enable
CONFIG_USER_NS and CONFIG_NF_TABLES.

Fix by removing the negation so the check matches nft_mapelem_activate():
skip active elements, process inactive ones.

Fixes: 628bd3e ("netfilter: nf_tables: drop map element references from preparation phase")
	Signed-off-by: Andrew Fasano <andrew.fasano@nist.gov>
	Signed-off-by: Florian Westphal <fw@strlen.de>
(cherry picked from commit f41c5d1)
	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 May 4, 2026
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 4, 2026

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

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 4, 2026

🔍 Interdiff Analysis

  • ⚠️ PR commit 7fe6806a7f1 (net: add skb_header_pointer_careful() helper) → upstream 13e00fdc9236
    Differences found:
################################################################################
!    REJECTED PATCH2 HUNKS - could not be compared; manual review needed       !
################################################################################

--- b/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -4301,6 +4301,18 @@
 				    skb_headlen(skb), buffer);
 }
 
+/* Variant of skb_header_pointer() where @offset is user-controlled
+ * and potentially negative.
+ */
+static inline void * __must_check
+skb_header_pointer_careful(const struct sk_buff *skb, int offset,
+			   int len, void *buffer)
+{
+	if (unlikely(offset < 0 && -offset > skb_headroom(skb)))
+		return NULL;
+	return skb_header_pointer(skb, offset, len, buffer);
+}
+
 static inline void * __must_check
 skb_pointer_if_linear(const struct sk_buff *skb, int offset, int len)
 {

================================================================================
*    CONTEXT DIFFERENCES - surrounding code differences between the patches    *
================================================================================

--- b/include/linux/skbuff.h
+++ b/include/linux/skbuff.h
@@ -3930,6 +3930,6 @@
 				    skb_headlen(skb), buffer);
 }
 
-/**
- *	skb_needs_linearize - check if we need to linearize a given skb
- *			      depending on the given device features.
+static inline void * __must_check
+skb_pointer_if_linear(const struct sk_buff *skb, int offset, int len)
+{
  • ⚠️ PR commit ff311956de3 (netfilter: nf_tables: fix inverted genmask check in nft_map_catchall_activate()) → upstream f41c5d151078
    Differences found:
================================================================================
*    CONTEXT DIFFERENCES - surrounding code differences between the patches    *
================================================================================

--- b/net/netfilter/nf_tables_api.c
+++ b/net/netfilter/nf_tables_api.c
@@ -5224,7 +5224,7 @@
 
 	list_for_each_entry(catchall, &set->catchall_list, list) {
 		ext = nft_set_elem_ext(set, catchall->elem);
 		if (!nft_set_elem_active(ext, genmask))
 			continue;
 
-		elem.priv = catchall->elem;
+		nft_clear(ctx->net, ext);

This is an automated interdiff check for backported commits.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 4, 2026

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

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.

2 participants