Skip to content

[ciqlts9_2] Multiple patches tested (5 commits)#1312

Open
ciq-kernel-automation[bot] wants to merge 5 commits into
ciqlts9_2from
{ciq_kernel_automation}_ciqlts9_2
Open

[ciqlts9_2] Multiple patches tested (5 commits)#1312
ciq-kernel-automation[bot] wants to merge 5 commits into
ciqlts9_2from
{ciq_kernel_automation}_ciqlts9_2

Conversation

@ciq-kernel-automation

@ciq-kernel-automation ciq-kernel-automation Bot commented Jun 10, 2026

Copy link
Copy Markdown

Summary

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

Commit Message(s)

net: sched: fix ordering of qlen adjustment

jira VULN-46603
cve CVE-2024-53164
commit-author Lion Ackermann <nnamrec@gmail.com>
commit 5eb7de8cd58e73851cd37ff8d0666517d9926948
net/sched: Make cake_enqueue return NET_XMIT_CN when past buffer_limit

jira VULN-152970
cve CVE-2025-39766
commit-author William Liu <will@willsroot.io>
commit 15de71d06a400f7fdc15bf377a2552b0ec437cf5
net/sched: sch_cake: Fix incorrect qlen reduction in cake_drop

jira VULN-187517
cve CVE-2025-68325
commit-author Xiang Mei <xmei5@asu.edu>
commit 9fefc78f7f02d71810776fdeb119a05a946a27cc
ipv6: icmp: clear skb2->cb[] in ip6_err_gen_icmpv6_unreach()

jira VULN-183737
cve CVE-2026-43038
commit-author Eric Dumazet <edumazet@google.com>
commit 86ab3e55673a7a49a841838776f1ab18d23a67b5
ip6_tunnel: clear skb2->cb[] in ip4ip6_err()

jira VULN-183731
cve CVE-2026-43037
commit-author Eric Dumazet <edumazet@google.com>
commit 2edfa31769a4add828a7e604b21cb82aaaa05925

Test Results

✅ Build Stage

Architecture Build Time Total Time
x86_64 24m 43s 25m 36s
aarch64 12m 49s 13m 26s

✅ Boot Verification

✅ Kernel Selftests

Architecture Passed Failed Compared Against Status
x86_64 175 23 ciqlts9_2 ✅ No regressions
aarch64 139 29 ciqlts9_2 ✅ No regressions

✅ LTP Results

Architecture Passed Failed Compared Against Status
x86_64 1439 81 ciqlts9_2 ✅ No regressions
aarch64 1409 83 ciqlts9_2 ✅ No regressions

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

@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 Jun 10, 2026
@roxanan1996 roxanan1996 force-pushed the {ciq_kernel_automation}_ciqlts9_2 branch from b84ec1d to f51638d Compare June 10, 2026 13:30
@github-actions

Copy link
Copy Markdown

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

@github-actions

Copy link
Copy Markdown

🔍 Interdiff Analysis

  • ⚠️ PR commit ef843c5e83a (net/sched: sch_cake: Fix incorrect qlen reduction in cake_drop) → upstream 9fefc78f7f02
    Differences found:
################################################################################
!    REJECTED PATCH2 HUNKS - could not be compared; manual review needed       !
################################################################################

--- b/net/sched/sch_cake.c
+++ b/net/sched/sch_cake.c
@@ -1597,7 +1597,6 @@
 
 	qdisc_drop_reason(skb, sch, to_free, SKB_DROP_REASON_QDISC_OVERLIMIT);
 	sch->q.qlen--;
-	qdisc_tree_reduce_backlog(sch, 1, len);
 
 	cake_heapify(q, 0);

This is an automated interdiff check for backported commits.

@github-actions

Copy link
Copy Markdown

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

@roxanan1996

roxanan1996 commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

🔍 Interdiff Analysis

* ⚠️ PR commit `ef843c5e83a (net/sched: sch_cake: Fix incorrect qlen reduction in cake_drop)` → upstream `9fefc78f7f02`
  **Differences found:**
################################################################################
!    REJECTED PATCH2 HUNKS - could not be compared; manual review needed       !
################################################################################

--- b/net/sched/sch_cake.c
+++ b/net/sched/sch_cake.c
@@ -1597,7 +1597,6 @@
 
 	qdisc_drop_reason(skb, sch, to_free, SKB_DROP_REASON_QDISC_OVERLIMIT);
 	sch->q.qlen--;
-	qdisc_tree_reduce_backlog(sch, 1, len);
 
 	cake_heapify(q, 0);

This is an automated interdiff check for backported commits.

This is a problem. 3 way merge missed this, fixing it. I'll submit a fix in a few min.

roxanan1996 and others added 5 commits June 10, 2026 16:27
jira VULN-46603
cve CVE-2024-53164
commit-author Lion Ackermann <nnamrec@gmail.com>
commit 5eb7de8

Changes to sch->q.qlen around qdisc_tree_reduce_backlog() need to happen
_before_ a call to said function because otherwise it may fail to notify
parent qdiscs when the child is about to become empty.

	Signed-off-by: Lion Ackermann <nnamrec@gmail.com>
	Acked-by: Toke Høiland-Jørgensen <toke@toke.dk>
	Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 5eb7de8)
	Signed-off-by: Roxana Nicolescu <rnicolescu@ciq.com>
jira VULN-152970
cve CVE-2025-39766
commit-author William Liu <will@willsroot.io>
commit 15de71d

The following setup can trigger a WARNING in htb_activate due to
the condition: !cl->leaf.q->q.qlen

tc qdisc del dev lo root
tc qdisc add dev lo root handle 1: htb default 1
tc class add dev lo parent 1: classid 1:1 \
       htb rate 64bit
tc qdisc add dev lo parent 1:1 handle f: \
       cake memlimit 1b
ping -I lo -f -c1 -s64 -W0.001 127.0.0.1

This is because the low memlimit leads to a low buffer_limit, which
causes packet dropping. However, cake_enqueue still returns
NET_XMIT_SUCCESS, causing htb_enqueue to call htb_activate with an
empty child qdisc. We should return NET_XMIT_CN when packets are
dropped from the same tin and flow.

I do not believe return value of NET_XMIT_CN is necessary for packet
drops in the case of ack filtering, as that is meant to optimize
performance, not to signal congestion.

Fixes: 046f6fd ("sched: Add Common Applications Kept Enhanced (cake) qdisc")
	Signed-off-by: William Liu <will@willsroot.io>
	Reviewed-by: Savino Dicanosa <savy@syst3mfailure.io>
	Acked-by: Toke Høiland-Jørgensen <toke@toke.dk>
	Reviewed-by: Jamal Hadi Salim <jhs@mojatatu.com>
Link: https://patch.msgid.link/20250819033601.579821-1-will@willsroot.io
	Signed-off-by: Jakub Kicinski <kuba@kernel.org>
(cherry picked from commit 15de71d)
	Signed-off-by: CIQ Kernel Automation <ciq_kernel_automation@ciq.com>
jira VULN-187517
cve CVE-2025-68325
commit-author Xiang Mei <xmei5@asu.edu>
commit 9fefc78

In cake_drop(), qdisc_tree_reduce_backlog() is used to update the qlen
and backlog of the qdisc hierarchy. Its caller, cake_enqueue(), assumes
that the parent qdisc will enqueue the current packet. However, this
assumption breaks when cake_enqueue() returns NET_XMIT_CN: the parent
qdisc stops enqueuing current packet, leaving the tree qlen/backlog
accounting inconsistent. This mismatch can lead to a NULL dereference
(e.g., when the parent Qdisc is qfq_qdisc).

This patch computes the qlen/backlog delta in a more robust way by
observing the difference before and after the series of cake_drop()
calls, and then compensates the qdisc tree accounting if cake_enqueue()
returns NET_XMIT_CN.

To ensure correct compensation when ACK thinning is enabled, a new
variable is introduced to keep qlen unchanged.

Fixes: 15de71d ("net/sched: Make cake_enqueue return NET_XMIT_CN when past buffer_limit")
	Signed-off-by: Xiang Mei <xmei5@asu.edu>
	Reviewed-by: Toke Høiland-Jørgensen <toke@toke.dk>
Link: https://patch.msgid.link/20251128001415.377823-1-xmei5@asu.edu
	Signed-off-by: Paolo Abeni <pabeni@redhat.com>

(cherry picked from commit 9fefc78)
	Signed-off-by: Roxana Nicolescu <rnicolescu@ciq.com>
jira VULN-183737
cve CVE-2026-43038
commit-author Eric Dumazet <edumazet@google.com>
commit 86ab3e5

Sashiko AI-review observed:

  In ip6_err_gen_icmpv6_unreach(), the skb is an outer IPv4 ICMP error packet
  where its cb contains an IPv4 inet_skb_parm. When skb is cloned into skb2
  and passed to icmp6_send(), it uses IP6CB(skb2).

  IP6CB interprets the IPv4 inet_skb_parm as an inet6_skb_parm. The cipso
  offset in inet_skb_parm.opt directly overlaps with dsthao in inet6_skb_parm
  at offset 18.

  If an attacker sends a forged ICMPv4 error with a CIPSO IP option, dsthao
  would be a non-zero offset. Inside icmp6_send(), mip6_addr_swap() is called
  and uses ipv6_find_tlv(skb, opt->dsthao, IPV6_TLV_HAO).

  This would scan the inner, attacker-controlled IPv6 packet starting at that
  offset, potentially returning a fake TLV without checking if the remaining
  packet length can hold the full 18-byte struct ipv6_destopt_hao.

  Could mip6_addr_swap() then perform a 16-byte swap that extends past the end
  of the packet data into skb_shared_info?

  Should the cb array also be cleared in ip6_err_gen_icmpv6_unreach() and
  ip6ip6_err() to prevent this?

This patch implements the first suggestion.

I am not sure if ip6ip6_err() needs to be changed.
A separate patch would be better anyway.

Fixes: ca15a07 ("sit: generate icmpv6 error when receiving icmpv4 error")
	Reported-by: Ido Schimmel <idosch@nvidia.com>
Closes: https://sashiko.dev/#/patchset/20260326155138.2429480-1-edumazet%40google.com
	Signed-off-by: Eric Dumazet <edumazet@google.com>
	Cc: Oskar Kjos <oskar.kjos@hotmail.com>
	Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Link: https://patch.msgid.link/20260326202608.2976021-1-edumazet@google.com
	Signed-off-by: Jakub Kicinski <kuba@kernel.org>
(cherry picked from commit 86ab3e5)
	Signed-off-by: CIQ Kernel Automation <ciq_kernel_automation@ciq.com>
jira VULN-183731
cve CVE-2026-43037
commit-author Eric Dumazet <edumazet@google.com>
commit 2edfa31

Oskar Kjos reported the following problem.

ip4ip6_err() calls icmp_send() on a cloned skb whose cb[] was written
by the IPv6 receive path as struct inet6_skb_parm. icmp_send() passes
IPCB(skb2) to __ip_options_echo(), which interprets that cb[] region
as struct inet_skb_parm (IPv4). The layouts differ: inet6_skb_parm.nhoff
at offset 14 overlaps inet_skb_parm.opt.rr, producing a non-zero rr
value. __ip_options_echo() then reads optlen from attacker-controlled
packet data at sptr[rr+1] and copies that many bytes into dopt->__data,
a fixed 40-byte stack buffer (IP_OPTIONS_DATA_FIXED_SIZE).

To fix this we clear skb2->cb[], as suggested by Oskar Kjos.

Also add minimal IPv4 header validation (version == 4, ihl >= 5).

Fixes: c4d3efa ("[IPV6] IP6TUNNEL: Add support to IPv4 over IPv6 tunnel.")
	Reported-by: Oskar Kjos <oskar.kjos@hotmail.com>
	Signed-off-by: Eric Dumazet <edumazet@google.com>
	Reviewed-by: Ido Schimmel <idosch@nvidia.com>
Link: https://patch.msgid.link/20260326155138.2429480-1-edumazet@google.com
	Signed-off-by: Jakub Kicinski <kuba@kernel.org>
(cherry picked from commit 2edfa31)
	Signed-off-by: CIQ Kernel Automation <ciq_kernel_automation@ciq.com>
@roxanan1996 roxanan1996 force-pushed the {ciq_kernel_automation}_ciqlts9_2 branch from f51638d to a6fddcc Compare June 10, 2026 14:33
@roxanan1996

roxanan1996 commented Jun 10, 2026

Copy link
Copy Markdown
Contributor

🔍 Interdiff Analysis

* ⚠️ PR commit `ef843c5e83a (net/sched: sch_cake: Fix incorrect qlen reduction in cake_drop)` → upstream `9fefc78f7f02`
  **Differences found:**
################################################################################
!    REJECTED PATCH2 HUNKS - could not be compared; manual review needed       !
################################################################################

--- b/net/sched/sch_cake.c
+++ b/net/sched/sch_cake.c
@@ -1597,7 +1597,6 @@
 
 	qdisc_drop_reason(skb, sch, to_free, SKB_DROP_REASON_QDISC_OVERLIMIT);
 	sch->q.qlen--;
-	qdisc_tree_reduce_backlog(sch, 1, len);
 
 	cake_heapify(q, 0);

This is an automated interdiff check for backported commits.

This is a problem. 3 way merge missed this, fixing it. I'll submit a fix in a few min.

The context has changed a lot, 3 way merge assumed the line was already removed.
because of missing 5eb7de8 ( "net: sched: fix ordering of qlen adjustment")
Initially I would have just removed this line myself, but then I cherry picked 5eb7de8 and it was a clean one.
Moreover, it is a cve itself https://ciqinc.atlassian.net/browse/VULN-46603?search_id=cde34920-939d-46f2-9234-7a3b3044e360&referrer=quick-find, low priority, but still.

Added this prereq 5eb7de8 ( "net: sched: fix ordering of qlen adjustment"), but before
"net/sched: Make cake_enqueue return NET_XMIT_CN when past buffer_limit"
to follow commit order from mainline.

@github-actions

Copy link
Copy Markdown

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

@github-actions

Copy link
Copy Markdown

🔍 Interdiff Analysis

  • ⚠️ PR commit 7ab2d6272c7 (net/sched: sch_cake: Fix incorrect qlen reduction in cake_drop) → upstream 9fefc78f7f02
    Differences found:
================================================================================
*    CONTEXT DIFFERENCES - surrounding code differences between the patches    *
================================================================================

--- b/net/sched/sch_cake.c
+++ b/net/sched/sch_cake.c
@@ -1545,5 +1545,5 @@
 
-	__qdisc_drop(skb, to_free);
+	qdisc_drop_reason(skb, sch, to_free, SKB_DROP_REASON_QDISC_OVERLIMIT);
 	sch->q.qlen--;
 	qdisc_tree_reduce_backlog(sch, 1, len);

This is an automated interdiff check for backported commits.

@github-actions

Copy link
Copy Markdown

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

@roxanan1996

Copy link
Copy Markdown
Contributor

🔍 Interdiff Analysis

* ⚠️ PR commit `7ab2d6272c7 (net/sched: sch_cake: Fix incorrect qlen reduction in cake_drop)` → upstream `9fefc78f7f02`
  **Differences found:**
================================================================================
*    CONTEXT DIFFERENCES - surrounding code differences between the patches    *
================================================================================

--- b/net/sched/sch_cake.c
+++ b/net/sched/sch_cake.c
@@ -1545,5 +1545,5 @@
 
-	__qdisc_drop(skb, to_free);
+	qdisc_drop_reason(skb, sch, to_free, SKB_DROP_REASON_QDISC_OVERLIMIT);
 	sch->q.qlen--;
 	qdisc_tree_reduce_backlog(sch, 1, len);

This is an automated interdiff check for backported commits.

This is fine. Not relevant here.
Due to missing a42d71e ("net_sched: sch_cake: Add drop reasons")

@ciq-kernel-automation ciq-kernel-automation Bot changed the title [ciqlts9_2] Multiple patches tested (4 commits) [ciqlts9_2] Multiple patches tested (5 commits) Jun 10, 2026
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.

1 participant