UBUNTU-CVE-2026-43503
In the Linux kernel, the following vulnerability has been resolved: net: skbuff: propagate shared-frag marker through frag-transfer helpers Two frag-transfer helpers (__pskb_copy_fclone() and skb_shift()) fail to propagate the SKBFL_SHARED_FRAG bit in skb_shinfo()->flags when moving frags from source to destination. __pskb_copy_fclone() defers the rest of the shinfo metadata to skb_copy_header() after copying frag descriptors, but that helper only carries over gso_{size,segs, type} and never touches skb_shinfo()->flags; skb_shift() moves frag descriptors directly and leaves flags untouched. As a result, the destination skb keeps a reference to the same externally-owned or page-cache-backed pages while reporting skb_has_shared_frag() as false. The mismatch is harmful in any in-place writer that uses skb_has_shared_frag() to decide whether shared pages must be detoured through skb_cow_data(). ESP input is one such writer (esp4.c, esp6.c), and a single nft 'dup to <local>' rule -- or any other nf_dup_ipv4() / xt_TEE caller -- is enough to land a pskb_copy()'d skb in esp_input() with the marker stripped, letting an unprivileged user write into the page cache of a root-owned read-only file via authencesn-ESN stray writes. Set SKBFL_SHARED_FRAG on the destination whenever frag descriptors were actually moved from the source. skb_copy() and skb_copy_expand() share skb_copy_header() too but linearize all paged data into freshly allocated head storage and emerge with nr_frags == 0, so skb_has_shared_frag() returns false on its own; they need no change. The same omission exists in skb_gro_receive() and skb_gro_receive_list(). The former moves the incoming skb's frag descriptors into the accumulator's last sub-skb via two paths (a direct frag-move loop and the head_frag + memcpy path); the latter chains the incoming skb whole onto p's frag_list. Downstream skb_segment() reads only skb_shinfo(p)->flags, and skb_segment_list() reuses each sub-skb's shinfo as the nskb -- both p and lp must carry the marker. The same omission also exists in tcp_clone_payload(), which builds an MTU probe skb by moving frag descriptors from skbs on sk_write_queue into a freshly allocated nskb. The helper falls into the same family and warrants the same fix for consistency; no TCP TX-side in-place writer is currently known to reach a user page through this gap, but a future consumer depending on the marker would regress silently. The same omission exists in skb_segment(): the per-iteration flag merge takes only head_skb's flag, and the inner switch that rebinds frag_skb to list_skb on head_skb-frags exhaustion does not fold the new frag_skb's flag into nskb. Fold frag_skb's flag at both sites so segments drawing frags from frag_list members carry the marker.
02 / AFFECTED SOFTWARE
Affected packages
8 explicit affected versions
11 explicit affected versions
2 explicit affected versions
6 explicit affected versions
52 explicit affected versions
115 explicit affected versions
85 explicit affected versions
50 explicit affected versions
6 explicit affected versions
12 explicit affected versions
19 explicit affected versions
10 explicit affected versions
6 explicit affected versions
95 explicit affected versions
24 explicit affected versions
1 explicit affected versions
80 explicit affected versions
81 explicit affected versions
90 explicit affected versions
82 explicit affected versions
74 explicit affected versions
10 explicit affected versions
35 explicit affected versions
26 explicit affected versions
87 explicit affected versions
188 explicit affected versions
7 explicit affected versions
82 explicit affected versions
38 explicit affected versions
13 explicit affected versions
83 explicit affected versions
42 explicit affected versions
35 explicit affected versions
1 explicit affected versions
47 explicit affected versions
43 explicit affected versions
45 explicit affected versions
18 explicit affected versions
38 explicit affected versions
116 explicit affected versions
64 explicit affected versions
119 explicit affected versions
13 explicit affected versions
4 explicit affected versions
120 explicit affected versions
23 explicit affected versions
46 explicit affected versions
50 explicit affected versions
123 explicit affected versions
1 explicit affected versions
1 explicit affected versions
21 explicit affected versions
9 explicit affected versions
16 explicit affected versions
10 explicit affected versions
18 explicit affected versions
75 explicit affected versions
5 explicit affected versions
7 explicit affected versions
12 explicit affected versions
11 explicit affected versions
109 explicit affected versions
7 explicit affected versions
12 explicit affected versions
14 explicit affected versions
10 explicit affected versions
1 explicit affected versions
52 explicit affected versions
7 explicit affected versions
15 explicit affected versions
103 explicit affected versions
12 explicit affected versions
6 explicit affected versions
104 explicit affected versions
12 explicit affected versions
39 explicit affected versions
7 explicit affected versions
7 explicit affected versions
119 explicit affected versions
41 explicit affected versions
16 explicit affected versions
4 explicit affected versions
15 explicit affected versions
25 explicit affected versions
32 explicit affected versions
10 explicit affected versions
37 explicit affected versions
10 explicit affected versions
7 explicit affected versions
13 explicit affected versions
26 explicit affected versions
38 explicit affected versions
3 explicit affected versions
10 explicit affected versions
11 explicit affected versions
63 explicit affected versions
1 explicit affected versions
8 explicit affected versions
13 explicit affected versions
143 explicit affected versions
33 explicit affected versions
1 explicit affected versions
29 explicit affected versions
110 explicit affected versions
13 explicit affected versions
12 explicit affected versions
93 explicit affected versions
39 explicit affected versions
38 explicit affected versions
6 explicit affected versions
1 explicit affected versions
99 explicit affected versions
87 explicit affected versions
50 explicit affected versions
33 explicit affected versions
23 explicit affected versions
56 explicit affected versions
10 explicit affected versions
18 explicit affected versions
187 explicit affected versions
17 explicit affected versions
11 explicit affected versions
5 explicit affected versions
12 explicit affected versions
7 explicit affected versions
15 explicit affected versions
7 explicit affected versions
12 explicit affected versions
6 explicit affected versions
13 explicit affected versions
136 explicit affected versions
5 explicit affected versions
72 explicit affected versions
129 explicit affected versions
88 explicit affected versions
164 explicit affected versions
64 explicit affected versions
151 explicit affected versions
10 explicit affected versions
26 explicit affected versions
36 explicit affected versions
1 explicit affected versions
3 explicit affected versions
33 explicit affected versions
45 explicit affected versions
11 explicit affected versions
7 explicit affected versions
13 explicit affected versions
44 explicit affected versions
136 explicit affected versions
77 explicit affected versions
16 explicit affected versions
131 explicit affected versions
86 explicit affected versions
48 explicit affected versions
8 explicit affected versions
113 explicit affected versions
3 explicit affected versions
91 explicit affected versions
1 explicit affected versions
7 explicit affected versions
2 explicit affected versions
13 explicit affected versions
51 explicit affected versions
14 explicit affected versions
90 explicit affected versions
18 explicit affected versions
40 explicit affected versions
12 explicit affected versions
68 explicit affected versions
75 explicit affected versions
1 explicit affected versions
4 explicit affected versions
27 explicit affected versions
61 explicit affected versions
120 explicit affected versions
6 explicit affected versions
1 explicit affected versions
95 explicit affected versions
41 explicit affected versions
8 explicit affected versions
5 explicit affected versions
8 explicit affected versions
4 explicit affected versions
1 explicit affected versions
10 explicit affected versions
7 explicit affected versions
44 explicit affected versions
13 explicit affected versions
109 explicit affected versions
13 explicit affected versions
71 explicit affected versions
7 explicit affected versions
138 explicit affected versions
8 explicit affected versions
91 explicit affected versions
10 explicit affected versions
12 explicit affected versions
9 explicit affected versions
34 explicit affected versions
107 explicit affected versions
79 explicit affected versions
55 explicit affected versions
44 explicit affected versions
16 explicit affected versions
11 explicit affected versions
13 explicit affected versions
26 explicit affected versions
45 explicit affected versions
37 explicit affected versions
49 explicit affected versions
14 explicit affected versions
38 explicit affected versions
164 explicit affected versions
9 explicit affected versions
15 explicit affected versions
37 explicit affected versions
17 explicit affected versions
12 explicit affected versions
88 explicit affected versions
8 explicit affected versions
7 explicit affected versions
96 explicit affected versions
120 explicit affected versions
4 explicit affected versions
77 explicit affected versions
5 explicit affected versions
1 explicit affected versions
1 explicit affected versions
1 explicit affected versions
86 explicit affected versions
76 explicit affected versions
76 explicit affected versions
5 explicit affected versions
13 explicit affected versions
43 explicit affected versions
76 explicit affected versions
11 explicit affected versions
118 explicit affected versions
10 explicit affected versions
8 explicit affected versions
43 explicit affected versions
87 explicit affected versions
11 explicit affected versions
14 explicit affected versions
4 explicit affected versions
78 explicit affected versions
12 explicit affected versions
1 explicit affected versions
67 explicit affected versions
122 explicit affected versions
17 explicit affected versions
2 explicit affected versions
37 explicit affected versions
75 explicit affected versions
03 / CONNECTIONS
Connected vulnerabilities
04 / EVIDENCE
Source records
In the Linux kernel, the following vulnerability has been resolved: net: skbuff: propagate shared-frag marker through frag-transfer helpers Two frag-transfer helpers (__pskb_copy_fclone() and skb_shift()) fail to propagate the SKBFL_SHARED_FRAG bit in skb_shinfo()->flags when moving frags from source to destination. __pskb_copy_fclone() defers the rest of the shinfo metadata to skb_copy_header() after copying frag descriptors, but that helper only carries over gso_{size,segs, type} and never touches skb_shinfo()->flags; skb_shift() moves frag descriptors directly and leaves flags untouched. As a result, the destination skb keeps a reference to the same externally-owned or page-cache-backed pages while reporting skb_has_shared_frag() as false. The mismatch is harmful in any in-place writer that uses skb_has_shared_frag() to decide whether shared pages must be detoured through skb_cow_data(). ESP input is one such writer (esp4.c, esp6.c), and a single nft 'dup to <local>' rule -- or any other nf_dup_ipv4() / xt_TEE caller -- is enough to land a pskb_copy()'d skb in esp_input() with the marker stripped, letting an unprivileged user write into the page cache of a root-owned read-only file via authencesn-ESN stray writes. Set SKBFL_SHARED_FRAG on the destination whenever frag descriptors were actually moved from the source. skb_copy() and skb_copy_expand() share skb_copy_header() too but linearize all paged data into freshly allocated head storage and emerge with nr_frags == 0, so skb_has_shared_frag() returns false on its own; they need no change. The same omission exists in skb_gro_receive() and skb_gro_receive_list(). The former moves the incoming skb's frag descriptors into the accumulator's last sub-skb via two paths (a direct frag-move loop and the head_frag + memcpy path); the latter chains the incoming skb whole onto p's frag_list. Downstream skb_segment() reads only skb_shinfo(p)->flags, and skb_segment_list() reuses each sub-skb's shinfo as the nskb -- both p and lp must carry the marker. The same omission also exists in tcp_clone_payload(), which builds an MTU probe skb by moving frag descriptors from skbs on sk_write_queue into a freshly allocated nskb. The helper falls into the same family and warrants the same fix for consistency; no TCP TX-side in-place writer is currently known to reach a user page through this gap, but a future consumer depending on the marker would regress silently. The same omission exists in skb_segment(): the per-iteration flag merge takes only head_skb's flag, and the inner switch that rebinds frag_skb to list_skb on head_skb-frags exhaustion does not fold the new frag_skb's flag into nskb. Fold frag_skb's flag at both sites so segments drawing frags from frag_list members carry the marker.
05 / REFERENCES
Further evidence
- https://git.kernel.org/linus/48f6a5356a33dd78e7144ae1faef95ffc990aae0
- https://git.kernel.org/stable/c/12401fcfb01f53ccc63ab0a3246570fe8f3105ee
- https://git.kernel.org/stable/c/179f1852bdedc300e373e807cc102cd81feff196
- https://git.kernel.org/stable/c/48f6a5356a33dd78e7144ae1faef95ffc990aae0
- https://git.kernel.org/stable/c/989214c66884d70716d83dc1d0bf5e16287bf349
- https://git.kernel.org/stable/c/9bc9d6d6967a2239aa57af2aa53554eddd640d20
- https://git.kernel.org/stable/c/fbeab9555564a1b98e8582cd106dfe46c4606991
- https://git.kernel.org/stable/c/fc6eb39c55e97df2f94ad974b8a5bbcd019da2c8
- https://git.kernel.org/stable/c/ff375cc75f9167168db38e0464a482d5fbc8d81d
- https://ubuntu.com/security/CVE-2026-43503
- https://ubuntu.com/security/notices/USN-8370-1
- https://ubuntu.com/security/notices/USN-8371-1
- https://ubuntu.com/security/notices/USN-8373-1
- https://ubuntu.com/security/notices/USN-8374-1
- https://ubuntu.com/security/notices/USN-8388-1
- https://ubuntu.com/security/notices/USN-8388-2
- https://ubuntu.com/security/notices/USN-8393-1
- https://ubuntu.com/security/notices/USN-8426-1
- https://ubuntu.com/security/notices/USN-8426-2
- https://ubuntu.com/security/notices/USN-8440-1
- https://ubuntu.com/security/notices/USN-8461-1
- https://ubuntu.com/security/notices/USN-8462-1
- https://ubuntu.com/security/notices/USN-8489-1
- https://ubuntu.com/security/notices/USN-8497-1
- https://ubuntu.com/security/notices/USN-8499-1
- https://ubuntu.com/security/notices/USN-8501-1
- https://ubuntu.com/security/notices/USN-8528-1
- https://ubuntu.com/security/notices/USN-8529-1
- https://ubuntu.com/security/notices/USN-8529-2
- https://ubuntu.com/security/notices/USN-8530-1
- https://ubuntu.com/security/notices/USN-8530-2
- https://ubuntu.com/security/notices/USN-8548-1
- https://ubuntu.com/security/notices/USN-8548-2
- https://ubuntu.com/security/notices/USN-8569-1
- https://ubuntu.com/security/notices/USN-8615-1
- https://ubuntu.com/security/notices/USN-8615-2
- https://ubuntu.com/security/notices/USN-8616-1
- https://ubuntu.com/security/notices/USN-8617-1
- https://ubuntu.com/security/notices/USN-8635-1
- https://www.cve.org/CVERecord?id=CVE-2026-43503