{"id":"CVE-2022-50365","state":"PUBLISHED","title":"skbuff: Account for tail adjustment during pull operations","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nskbuff: Account for tail adjustment during pull operations\n\nExtending the tail can have some unexpected side effects if a program uses\na helper like BPF_FUNC_skb_pull_data to read partial content beyond the\nhead skb headlen when all the skbs in the gso frag_list are linear with no\nhead_frag -\n\n  kernel BUG at net/core/skbuff.c:4219!\n  pc : skb_segment+0xcf4/0xd2c\n  lr : skb_segment+0x63c/0xd2c\n  Call trace:\n   skb_segment+0xcf4/0xd2c\n   __udp_gso_segment+0xa4/0x544\n   udp4_ufo_fragment+0x184/0x1c0\n   inet_gso_segment+0x16c/0x3a4\n   skb_mac_gso_segment+0xd4/0x1b0\n   __skb_gso_segment+0xcc/0x12c\n   udp_rcv_segment+0x54/0x16c\n   udp_queue_rcv_skb+0x78/0x144\n   udp_unicast_rcv_skb+0x8c/0xa4\n   __udp4_lib_rcv+0x490/0x68c\n   udp_rcv+0x20/0x30\n   ip_protocol_deliver_rcu+0x1b0/0x33c\n   ip_local_deliver+0xd8/0x1f0\n   ip_rcv+0x98/0x1a4\n   deliver_ptype_list_skb+0x98/0x1ec\n   __netif_receive_skb_core+0x978/0xc60\n\nFix this by marking these skbs as GSO_DODGY so segmentation can handle\nthe tail updates accordingly.","publishedAt":"2025-09-17T14:56:16.648Z","updatedAt":"2026-08-05T08:58:25.023Z","severity":{"score":7.5,"label":"High","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"162a5a8c3aff15c449e6b38355cdf80ab4f77a5a","status":"affected","lessThan":"ff3743d00f41d803e6ab9334962b674f3b7fd0cb","versionType":"git"},{"version":"55fb612bef7fd237fb70068e2b6ff1cd1543a8ef","status":"affected","lessThan":"6ac417d71b80e74b002313fcd73f7e9008e8e457","versionType":"git"},{"version":"821302dd0c51d29269ef73a595bdff294419e2cd","status":"affected","lessThan":"2d59f0ca153e9573ec4f140988c0ccca0eb4181b","versionType":"git"},{"version":"3dcbdb134f329842a38f0e6797191b885ab00a00","status":"affected","lessThan":"668dc454bcbd1da73605201ff43f988c70848215","versionType":"git"},{"version":"3dcbdb134f329842a38f0e6797191b885ab00a00","status":"affected","lessThan":"821be5a5ab09a40ba09cb5ba354f18cf7996fea0","versionType":"git"},{"version":"3dcbdb134f329842a38f0e6797191b885ab00a00","status":"affected","lessThan":"8fb773eed4909ef5dc1bbeb3629a337d3336df7e","versionType":"git"},{"version":"3dcbdb134f329842a38f0e6797191b885ab00a00","status":"affected","lessThan":"946dd5dc4fcc4123cdfe3942b20012c4448cf89a","versionType":"git"},{"version":"3dcbdb134f329842a38f0e6797191b885ab00a00","status":"affected","lessThan":"331615d837f4979eb91a336a223a5c7f7886ecd5","versionType":"git"},{"version":"3dcbdb134f329842a38f0e6797191b885ab00a00","status":"affected","lessThan":"2d7afdcbc9d32423f177ee12b7c93783aea338fb","versionType":"git"},{"version":"92984818ff8cfd97311a5e0ac27f148a00df2b54","status":"affected","versionType":"git"},{"version":"4.9.194","status":"affected","lessThan":"4.9.337","versionType":"semver"},{"version":"4.14.145","status":"affected","lessThan":"4.14.303","versionType":"semver"},{"version":"4.19.74","status":"affected","lessThan":"4.19.270","versionType":"semver"},{"version":"5.2.16","status":"affected","lessThan":"5.3","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/core/skbuff.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.3","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.3","versionType":"semver"},{"version":"4.9.337","status":"unaffected","lessThanOrEqual":"4.9.*","versionType":"semver"},{"version":"4.14.303","status":"unaffected","lessThanOrEqual":"4.14.*","versionType":"semver"},{"version":"4.19.270","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.229","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.163","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.86","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.0.16","status":"unaffected","lessThanOrEqual":"6.0.*","versionType":"semver"},{"version":"6.1.2","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/core/skbuff.c"]}],"references":["https://git.kernel.org/stable/c/ff3743d00f41d803e6ab9334962b674f3b7fd0cb","https://git.kernel.org/stable/c/6ac417d71b80e74b002313fcd73f7e9008e8e457","https://git.kernel.org/stable/c/2d59f0ca153e9573ec4f140988c0ccca0eb4181b","https://git.kernel.org/stable/c/668dc454bcbd1da73605201ff43f988c70848215","https://git.kernel.org/stable/c/821be5a5ab09a40ba09cb5ba354f18cf7996fea0","https://git.kernel.org/stable/c/8fb773eed4909ef5dc1bbeb3629a337d3336df7e","https://git.kernel.org/stable/c/946dd5dc4fcc4123cdfe3942b20012c4448cf89a","https://git.kernel.org/stable/c/331615d837f4979eb91a336a223a5c7f7886ecd5","https://git.kernel.org/stable/c/2d7afdcbc9d32423f177ee12b7c93783aea338fb"],"weaknesses":[],"ingestedAt":"2026-10-29T20:05:26.763Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2022/50xxx/CVE-2022-50365.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2022-50365","state":"PUBLISHED","datePublished":"2025-09-17T14:56:16.648Z","dateUpdated":"2026-08-05T08:58:25.023Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2025-09-17T14:53:06.995Z"},"containers":{"cna":{"title":"skbuff: Account for tail adjustment during pull operations","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nskbuff: Account for tail adjustment during pull operations\n\nExtending the tail can have some unexpected side effects if a program uses\na helper like BPF_FUNC_skb_pull_data to read partial content beyond the\nhead skb headlen when all the skbs in the gso frag_list are linear with no\nhead_frag -\n\n  kernel BUG at net/core/skbuff.c:4219!\n  pc : skb_segment+0xcf4/0xd2c\n  lr : skb_segment+0x63c/0xd2c\n  Call trace:\n   skb_segment+0xcf4/0xd2c\n   __udp_gso_segment+0xa4/0x544\n   udp4_ufo_fragment+0x184/0x1c0\n   inet_gso_segment+0x16c/0x3a4\n   skb_mac_gso_segment+0xd4/0x1b0\n   __skb_gso_segment+0xcc/0x12c\n   udp_rcv_segment+0x54/0x16c\n   udp_queue_rcv_skb+0x78/0x144\n   udp_unicast_rcv_skb+0x8c/0xa4\n   __udp4_lib_rcv+0x490/0x68c\n   udp_rcv+0x20/0x30\n   ip_protocol_deliver_rcu+0x1b0/0x33c\n   ip_local_deliver+0xd8/0x1f0\n   ip_rcv+0x98/0x1a4\n   deliver_ptype_list_skb+0x98/0x1ec\n   __netif_receive_skb_core+0x978/0xc60\n\nFix this by marking these skbs as GSO_DODGY so segmentation can handle\nthe tail updates accordingly."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"162a5a8c3aff15c449e6b38355cdf80ab4f77a5a","status":"affected","lessThan":"ff3743d00f41d803e6ab9334962b674f3b7fd0cb","versionType":"git"},{"version":"55fb612bef7fd237fb70068e2b6ff1cd1543a8ef","status":"affected","lessThan":"6ac417d71b80e74b002313fcd73f7e9008e8e457","versionType":"git"},{"version":"821302dd0c51d29269ef73a595bdff294419e2cd","status":"affected","lessThan":"2d59f0ca153e9573ec4f140988c0ccca0eb4181b","versionType":"git"},{"version":"3dcbdb134f329842a38f0e6797191b885ab00a00","status":"affected","lessThan":"668dc454bcbd1da73605201ff43f988c70848215","versionType":"git"},{"version":"3dcbdb134f329842a38f0e6797191b885ab00a00","status":"affected","lessThan":"821be5a5ab09a40ba09cb5ba354f18cf7996fea0","versionType":"git"},{"version":"3dcbdb134f329842a38f0e6797191b885ab00a00","status":"affected","lessThan":"8fb773eed4909ef5dc1bbeb3629a337d3336df7e","versionType":"git"},{"version":"3dcbdb134f329842a38f0e6797191b885ab00a00","status":"affected","lessThan":"946dd5dc4fcc4123cdfe3942b20012c4448cf89a","versionType":"git"},{"version":"3dcbdb134f329842a38f0e6797191b885ab00a00","status":"affected","lessThan":"331615d837f4979eb91a336a223a5c7f7886ecd5","versionType":"git"},{"version":"3dcbdb134f329842a38f0e6797191b885ab00a00","status":"affected","lessThan":"2d7afdcbc9d32423f177ee12b7c93783aea338fb","versionType":"git"},{"version":"92984818ff8cfd97311a5e0ac27f148a00df2b54","status":"affected","versionType":"git"},{"version":"4.9.194","status":"affected","lessThan":"4.9.337","versionType":"semver"},{"version":"4.14.145","status":"affected","lessThan":"4.14.303","versionType":"semver"},{"version":"4.19.74","status":"affected","lessThan":"4.19.270","versionType":"semver"},{"version":"5.2.16","status":"affected","lessThan":"5.3","versionType":"semver"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/core/skbuff.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.3","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.3","versionType":"semver"},{"version":"4.9.337","status":"unaffected","lessThanOrEqual":"4.9.*","versionType":"semver"},{"version":"4.14.303","status":"unaffected","lessThanOrEqual":"4.14.*","versionType":"semver"},{"version":"4.19.270","status":"unaffected","lessThanOrEqual":"4.19.*","versionType":"semver"},{"version":"5.4.229","status":"unaffected","lessThanOrEqual":"5.4.*","versionType":"semver"},{"version":"5.10.163","status":"unaffected","lessThanOrEqual":"5.10.*","versionType":"semver"},{"version":"5.15.86","status":"unaffected","lessThanOrEqual":"5.15.*","versionType":"semver"},{"version":"6.0.16","status":"unaffected","lessThanOrEqual":"6.0.*","versionType":"semver"},{"version":"6.1.2","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["net/core/skbuff.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/ff3743d00f41d803e6ab9334962b674f3b7fd0cb"},{"url":"https://git.kernel.org/stable/c/6ac417d71b80e74b002313fcd73f7e9008e8e457"},{"url":"https://git.kernel.org/stable/c/2d59f0ca153e9573ec4f140988c0ccca0eb4181b"},{"url":"https://git.kernel.org/stable/c/668dc454bcbd1da73605201ff43f988c70848215"},{"url":"https://git.kernel.org/stable/c/821be5a5ab09a40ba09cb5ba354f18cf7996fea0"},{"url":"https://git.kernel.org/stable/c/8fb773eed4909ef5dc1bbeb3629a337d3336df7e"},{"url":"https://git.kernel.org/stable/c/946dd5dc4fcc4123cdfe3942b20012c4448cf89a"},{"url":"https://git.kernel.org/stable/c/331615d837f4979eb91a336a223a5c7f7886ecd5"},{"url":"https://git.kernel.org/stable/c/2d7afdcbc9d32423f177ee12b7c93783aea338fb"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","baseScore":7.5,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:N - The crash is on the UDP receive path (udp_rcv_segment → skb_segment) after GRO builds a frag_list GSO skb; with a realistic TC/LWT BPF program that calls bpf_skb_pull_data (as in production NAT/redirect datapaths), unauthenticated remote UDP traffic reaches the bug.\nAC:L - Once such a BPF program is attached, the attacker can reliably send GRO-aggregatable UDP frames that cause a partial frag_list pull and then hit the skb_segment BUG_ON; no race or attacker-uncontrollable memory layout is required.\nPR:N - In the highest-impact deployment the administrator has already attached the BPF program; the attacker needs no host account or capability and only sends unauthenticated packets on the wire.\nUI:N - Packet reception, GRO, BPF processing, and UDP GSO segmentation run automatically on the up interface; no separate victim mount, open, or interactive step is required.\nS:U - Impact is confined to the host kernel’s availability (BUG_ON/oops/panic); it does not cross a VM, IOMMU, or other security authority boundary.\nC:N - The failure is an intentional BUG_ON in skb_segment when frag_list members are linear non-head_frag after a pull; there is no OOB read, UAF reclaim, or other information-disclosure primitive.\nI:N - There is no out-of-bounds write, use-after-free, or type-confusion write primitive—only an assertion failure that panics before the invalid head_frag page-desc path—so integrity is unaffected.\nA:H - The reported splat is kernel BUG at skbuff.c in skb_segment, which oopses/panics the host and is full availability impact under kernel CVSS guidance."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-05T08:58:25.023Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.9.194","versionEndExcluding":"4.9.337"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.14.145","versionEndExcluding":"4.14.303"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"4.19.74","versionEndExcluding":"4.19.270"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.3","versionEndExcluding":"5.4.229"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.3","versionEndExcluding":"5.10.163"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.3","versionEndExcluding":"5.15.86"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.3","versionEndExcluding":"6.0.16"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.3","versionEndExcluding":"6.1.2"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.3","versionEndExcluding":"6.2"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.2.16"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"cvssV3_1":{"scope":"UNCHANGED","version":"3.1","baseScore":5.5,"attackVector":"LOCAL","baseSeverity":"MEDIUM","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H","integrityImpact":"NONE","userInteraction":"NONE","attackComplexity":"LOW","availabilityImpact":"HIGH","privilegesRequired":"LOW","confidentialityImpact":"NONE"}},{"other":{"type":"ssvc","content":{"id":"CVE-2022-50365","role":"CISA Coordinator","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"version":"2.0.3","timestamp":"2026-01-14T18:34:36.825803Z"}}}],"problemTypes":[{"descriptions":[{"lang":"en","type":"CWE","description":"CWE-noinfo Not enough information"}]}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2026-01-14T18:42:58.912Z"}}]}}}