Skip to content

VULN-185348: kernel P3 escalation (CVE-2026-46300) [3 sibling(s) escalated separately] - #1762

Closed
jason-rodri wants to merge 1 commit into
fips-legacy-8-compliant/4.18.0-425.13.1from
{pmp}_fips-legacy-8-compliant/4.18.0-425.13.1
Closed

jason-rodri wants to merge 1 commit into
fips-legacy-8-compliant/4.18.0-425.13.1from
{pmp}_fips-legacy-8-compliant/4.18.0-425.13.1

Conversation

@jason-rodri

Copy link
Copy Markdown

Produced by the kernel P3 escalation agent (ctrliq/narf-agent, agent/kernel_adapt.py). Opening for review, not auto-merge.

See ctrliq/narf-agent#12 for open questions on this path (PR convention, target-branch confirmation) before this should merge.

Escalated sibling(s) from this run

VULN-184864 (CVE-2026-43284) -- NOT included, escalated

f4c50a4034e6: max_steps (48) reached

Attempted diff (not committed)
diff --git a/net/ipv4/esp4.c b/net/ipv4/esp4.c
index af0eaa4e6c2b..743da767f735 100644
--- a/net/ipv4/esp4.c
+++ b/net/ipv4/esp4.c
@@ -913,7 +913,8 @@ static int esp_input(struct xfrm_state *x, struct sk_buff *skb)
 			nfrags = 1;
 
 			goto skip_cow;
-		} else if (!skb_has_frag_list(skb)) {
+		} else if (!skb_has_frag_list(skb) &&
+			   !skb_has_shared_frag(skb)) {
 			nfrags = skb_shinfo(skb)->nr_frags;
 			nfrags++;
 
diff --git a/net/ipv6/esp6.c b/net/ipv6/esp6.c
index 2ff1a109f464..e16b1e369c15 100644
--- a/net/ipv6/esp6.c
+++ b/net/ipv6/esp6.c
@@ -971,7 +971,8 @@ static int esp6_input(struct xfrm_state *x, struct sk_buff *skb)
 			nfrags = 1;
 
 			goto skip_cow;
-		} else if (!skb_has_frag_list(skb)) {
+		} else if (!skb_has_frag_list(skb) &&
+			   !skb_has_shared_frag(skb)) {
 			nfrags = skb_shinfo(skb)->nr_frags;
 			nfrags++;
 

VULN-184864 (CVE-2026-43284) -- NOT included, escalated

fe785bb3a809: not attempted -- an earlier pick in this run escalated first

VULN-184864 (CVE-2026-43284) -- NOT included, escalated

8253aab4659c: not attempted -- an earlier pick in this run escalated first

jira VULN-185348
cve CVE-2026-46300
commit-author William Bowling <vakzz@zellic.io>
commit f84eca5
upstream-diff |
	Added propagation of shared-frag marker during coalescing: when from_shinfo has frags, OR their tx_flags into to_shinfo's tx_flags masked with SKBTX_SHARED_FRAG. Adapted from original which used flags/SKBFL_SHARED_FRAG to target tree's tx_flags/SKBTX_SHARED_FRAG.

skb_try_coalesce() can attach paged frags from @from to @to.  If @from
has SKBFL_SHARED_FRAG set, the resulting @to skb can contain the same
externally-owned or page-cache-backed frags, but the shared-frag marker
is currently lost.

That breaks the invariant relied on by later in-place writers.  In
particular, ESP input checks skb_has_shared_frag() before deciding
whether an uncloned nonlinear skb can skip skb_cow_data().  If TCP
receive coalescing has moved shared frags into an unmarked skb, ESP can
see skb_has_shared_frag() as false and decrypt in place over page-cache
backed frags.

Propagate SKBFL_SHARED_FRAG when skb_try_coalesce() transfers paged
frags.  The tailroom copy path does not need the marker because it copies
bytes into @to's linear data rather than transferring frag descriptors.

Fixes: cef401d ("net: fix possible wrong checksum generation")
Fixes: f4c50a4 ("xfrm: esp: avoid in-place decrypt on shared skb frags")
	Signed-off-by: William Bowling <vakzz@zellic.io>
	Reviewed-by: Eric Dumazet <edumazet@google.com>
	Tested-by: Jiayuan Chen <jiayuan.chen@linux.dev>
Link: https://patch.msgid.link/20260513041635.1289541-1-vakzz@zellic.io
	Signed-off-by: Jakub Kicinski <kuba@kernel.org>
(cherry picked from commit f84eca5)
Signed-off-by: pmp <pmp@noreply.invalid>
@jason-rodri

Copy link
Copy Markdown
Author

Superseded by a rerun with a higher repair-agent step budget (CVE-2026-43284's adaptation was mid-investigation, not stuck, per the attempted diff above).

@jason-rodri jason-rodri closed this Nov 4, 2026
@github-actions

github-actions Bot commented Nov 4, 2026

Copy link
Copy Markdown

🔍 Diffofdiffs: 1 backport differs from upstream

View the diffofdiffs report.

Open to anyone signed in to GitHub. Report expires 2027-02-02 15:19 UTC.

# Subject Backport Upstream
1 net: skbuff: preserve shared-frag marker during coalescing 6bf83eb3bdc2 f84eca581739

Checked PR revision 6bf83eb3bdc2 against base 6f0e9484134d.

@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/41858210301

@github-actions

github-actions Bot commented Nov 4, 2026

Copy link
Copy Markdown

JIRA PR Check Results

1 commit(s) with issues found:

Commit 6bf83eb3bdc2

Summary: net: skbuff: preserve shared-frag marker during coalescing

❌ Errors:

  • VULN-185348: Status is 'To Do', expected 'In Progress'

⚠️ Warnings:

  • VULN-185348: No time logged - please log time manually

Summary: Checked 1 commit(s) total.

@github-actions

github-actions Bot commented Nov 4, 2026

Copy link
Copy Markdown

❌ Validation checks completed with issues View full results: https://github.com/ctrliq/kernel-src-tree/actions/runs/41858210301

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

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant