{"id":"CVE-2026-98503","summary":"packet: use ubuf_info completion for TX_RING packets","details":"In the Linux kernel, the following vulnerability has been resolved:\n\npacket: use ubuf_info completion for TX_RING packets\n\ntpacket_snd sends skbs with frags pointing into its ring slots. Slots\nare released when skb-\u003edestructor is called.\n\nA call to skb_orphan calls skb-\u003edestructor before the skb is freed.\nThis can cause the slot to be reused while still linked into the skb.\n\nSwitch to standard zerocopy completion (ubuf_info) so the slot is only\nreleased once all references to the payload are freed or copied.\nRestore skb-\u003edestructor to standard sock_wfree.\n\nThe ubuf_info completion callback can be called with a NULL skb, but\nonly from net_zcopy_put and related API, used by zerocopy implementations\nthat hold their own reference on the uarg, such as MSG_ZEROCOPY. This\nuarg is only ever completed from skb_zcopy_clear, so skb is always set.\n\nTo prevent userspace from aliasing in-flight state on shared ring\nslots, allocate tpacket_uarg per packet, rather than per slot. This\nadds a small allocation to the transmit path. Use standard kmalloc to\nallow backporting to stable kernels.\n\nThe uarg holds an sk_wmem_alloc reference, rather than an sk_refcnt\nreference. packet_free_tx_ring waits on sk_wmem_alloc before freeing\nthe ring pages. Always allocate vec-\u003edeferred for tx_ring so page-backed\nrings also wait on sk_wmem_alloc when skb_copy_ubufs drops page refs\nbefore calling tpacket_ubuf_complete.\n\nDrop the tx_ring.pg_vec test that tpacket_destruct_skb performed before\naccessing the slot. The sk_wmem_alloc reference now guarantees that the\nslot is valid. The test is also not sufficient by itself, as it reads\npg_vec without pg_vec_lock, so it can race with packet_set_ring.\n\nAs a result a slot is released when its payload is copied, which can\nbe before transmission (e.g., in skb_orphan_frags_rx). If copied\nbefore skb_tx_timestamp() is called, no slot timestamp is recorded,\nsimilar to when skb_orphan() was called early in the datapath before\nthis patch.\n\nRevert the now unused previous skb_zcopy_.._nouarg infra.\n\nDepends on commit 992cc9f94ca9 (\"net/packet: defer vmalloc TX_RING\nfree until skbs finish\").","modified":"2026-10-19T02:46:30.908601434Z","published":"2026-10-18T15:17:03.904Z","database_specific":{"osv_generated_from":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/98xxx/CVE-2026-98503.json","cna_assigner":"Linux"},"references":[{"type":"PACKAGE","url":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"},{"type":"WEB","url":"https://git.kernel.org/stable/c/2a0c9afefc0ecea2cc30ccfbbbc98182a0986191"},{"type":"WEB","url":"https://git.kernel.org/stable/c/9518405613863d0bf0700927a21367f5942cf058"},{"type":"WEB","url":"https://git.kernel.org/stable/c/e67c455d79fbf709a94965f09a2be6bf4f4ba5fd"},{"type":"WEB","url":"https://git.kernel.org/stable/c/eda9bcb721f15a93746a99eabda33d80b86404fd"},{"type":"ADVISORY","url":"https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/98xxx/CVE-2026-98503.json"},{"type":"ADVISORY","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-98503"}],"affected":[{"ranges":[{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"5cd8d46ea1562be80063f53c7c6a5f40224de623"},{"fixed":"e67c455d79fbf709a94965f09a2be6bf4f4ba5fd"},{"fixed":"eda9bcb721f15a93746a99eabda33d80b86404fd"},{"fixed":"2a0c9afefc0ecea2cc30ccfbbbc98182a0986191"},{"fixed":"9518405613863d0bf0700927a21367f5942cf058"}]},{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"4.14.86"},{"fixed":"4.15"}]},{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"4.19.7"},{"fixed":"4.20"}]},{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"67f6fba765ef8cb19089d476e3c367212a2fbdfd"}]},{"type":"GIT","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","events":[{"introduced":"f2a67e68dbaeae7c88e5522873d7b908911f9f77"}]}],"versions":["v4.14.336","v4.14.335","v4.14.334","v4.14.333","v4.14.332","v4.14.331","v4.14.330","v4.14.329","v4.14.328","v4.14.327","v4.14.326","v4.14.325","v4.14.324","v4.14.323","v4.14.322","v4.14.321","v4.14.320","v4.14.319","v4.14.318","v4.14.317","v4.14.316","v4.14.315","v4.14.314","v4.14.313","v4.14.312","v4.14.311","v4.14.310","v4.14.309","v4.14.308","v4.14.307","v4.14.306","v4.14.305","v4.14.304","v4.14.303","v4.14.302","v4.14.301","v4.14.300","v4.14.299","v4.14.298","v4.14.297","v4.14.296","v4.14.295","v4.14.294","v4.14.293","v4.14.292","v4.14.291","v4.14.290","v4.14.289","v4.14.288","v4.14.287","v4.14.286","v4.14.285","v4.14.284","v4.14.283","v4.14.282","v4.14.281","v4.14.280","v4.14.279","v4.14.278","v4.14.277","v4.14.276","v4.14.275","v4.14.274","v4.14.273","v4.14.272","v4.14.271","v4.14.270","v4.14.269","v4.14.268","v4.14.267","v4.14.266","v4.14.265","v4.14.264","v4.14.263","v4.14.262","v4.14.261","v4.14.260","v4.14.259","v4.14.258","v4.14.257","v4.14.256","v4.14.255","v4.14.254","v4.14.253","v4.14.252","v4.14.251","v4.14.250","v4.14.249","v4.14.248","v4.14.247","v4.14.246","v4.14.245","v4.14.244","v4.14.243","v4.14.242","v4.14.241","v4.14.240","v4.14.239","v4.14.238","v4.14.237","v4.14.236","v4.14.235","v4.14.234","v4.14.233","v4.14.232","v4.14.231","v4.14.230","v4.14.229","v4.14.228","v4.14.227","v4.14.226","v4.14.225","v4.14.224","v4.14.223","v4.14.222","v4.14.221","v4.14.220","v4.14.219","v4.14.218","v4.14.217","v4.14.216","v4.14.215","v4.14.214","v4.14.213","v4.14.212","v4.14.211","v4.14.210","v4.14.209","v4.14.208","v4.14.207","v4.14.206","v4.14.205","v4.14.204","v4.14.203","v4.14.202","v4.14.201","v4.14.200","v4.14.199","v4.14.198","v4.14.197","v4.14.196","v4.14.195","v4.14.194","v4.14.193","v4.14.192","v4.14.191","v4.14.190","v4.14.189","v4.14.188","v4.14.187","v4.14.186","v4.14.185","v4.14.184","v4.14.183","v4.14.182","v4.14.181","v4.14.180","v4.14.179","v4.14.178","v4.14.177","v4.14.176","v4.14.175","v4.14.174","v4.14.173","v4.14.172","v4.14.171","v4.14.170","v4.14.169","v4.14.168","v4.14.167","v4.14.166","v4.14.165","v4.14.164","v4.14.163","v4.14.162","v4.14.161","v4.14.160","v4.14.159","v4.14.158","v4.14.157","v4.14.156","v4.14.155","v4.14.154","v4.14.153","v4.14.152","v4.14.151","v4.14.150","v4.14.149","v4.14.148","v4.14.147","v4.14.146","v4.14.145","v4.14.144","v4.14.143","v4.14.142","v4.14.141","v4.14.140","v4.14.139","v4.14.138","v4.14.137","v4.14.136","v4.14.135","v4.14.134","v4.14.133","v4.14.132","v4.14.131","v4.14.130","v4.14.129","v4.14.128","v4.14.127","v4.14.126","v4.14.125","v4.14.124","v4.14.123","v4.14.122","v4.14.121","v4.14.120","v4.14.119","v4.14.118","v4.14.117","v4.14.116","v4.14.115","v4.14.114","v4.14.113","v4.14.112","v4.14.111","v4.14.110","v4.14.109","v4.14.108","v4.14.107","v4.14.106","v4.14.105","v4.14.104","v4.14.103","v4.14.102","v4.14.101","v4.14.100","v4.14.99","v4.14.98","v4.14.97","v4.14.96","v4.14.95","v4.14.94","v4.14.93","v4.14.92","v4.14.91","v4.14.90","v4.14.89","v4.14.88","v4.14.87","v4.14.86","v4.19.325","v4.19.324","v4.19.323","v4.19.322","v4.19.321","v4.19.320","v4.19.319","v4.19.318","v4.19.317","v4.19.316","v4.19.315","v4.19.314","v4.19.313","v4.19.312","v4.19.311","v4.19.310","v4.19.309","v4.19.308","v4.19.307","v4.19.306","v4.19.305","v4.19.304","v4.19.303","v4.19.302","v4.19.301","v4.19.300","v4.19.299","v4.19.298","v4.19.297","v4.19.296","v4.19.295","v4.19.294","v4.19.293","v4.19.292","v4.19.291","v4.19.290","v4.19.289","v4.19.288","v4.19.287","v4.19.286","v4.19.285","v4.19.284","v4.19.283","v4.19.282","v4.19.281","v4.19.280","v4.19.279","v4.19.278","v4.19.277","v4.19.276","v4.19.275","v4.19.274","v4.19.273","v4.19.272","v4.19.271","v4.19.270","v4.19.269","v4.19.268","v4.19.267","v4.19.266","v4.19.265","v4.19.264","v4.19.263","v4.19.262","v4.19.261","v4.19.260","v4.19.259","v4.19.258","v4.19.257","v4.19.256","v4.19.255","v4.19.254","v4.19.253","v4.19.252","v4.19.251","v4.19.250","v4.19.249","v4.19.248","v4.19.247","v4.19.246","v4.19.245","v4.19.244","v4.19.243","v4.19.242","v4.19.241","v4.19.240","v4.19.239","v4.19.238","v4.19.237","v4.19.236","v4.19.235","v4.19.234","v4.19.233","v4.19.232","v4.19.231","v4.19.230","v4.19.229","v4.19.228","v4.19.227","v4.19.226","v4.19.225","v4.19.224","v4.19.223","v4.19.222","v4.19.221","v4.19.220","v4.19.219","v4.19.218","v4.19.217","v4.19.216","v4.19.215","v4.19.214","v4.19.213","v4.19.212","v4.19.211","v4.19.210","v4.19.209","v4.19.208","v4.19.207","v4.19.206","v4.19.205","v4.19.204","v4.19.203","v4.19.202","v4.19.201","v4.19.200","v4.19.199","v4.19.198","v4.19.197","v4.19.196","v4.19.195","v4.19.194","v4.19.193","v4.19.192","v4.19.191","v4.19.190","v4.19.189","v4.19.188","v4.19.187","v4.19.186","v4.19.185","v4.19.184","v4.19.183","v4.19.182","v4.19.181","v4.19.180","v4.19.179","v4.19.178","v4.19.177","v4.19.176","v4.19.175","v4.19.174","v4.19.173","v4.19.172","v4.19.171","v4.19.170","v4.19.169","v4.19.168","v4.19.167","v4.19.166","v4.19.165","v4.19.164","v4.19.163","v4.19.162","v4.19.161","v4.19.160","v4.19.159","v4.19.158","v4.19.157","v4.19.156","v4.19.155","v4.19.154","v4.19.153","v4.19.152","v4.19.151","v4.19.150","v4.19.149","v4.19.148","v4.19.147","v4.19.146","v4.19.145","v4.19.144","v4.19.143","v4.19.142","v4.19.141","v4.19.140","v4.19.139","v4.19.138","v4.19.137","v4.19.136","v4.19.135","v4.19.134","v4.19.133","v4.19.132","v4.19.131","v4.19.130","v4.19.129","v4.19.128","v4.19.127","v4.19.126","v4.19.125","v4.19.124","v4.19.123","v4.19.122","v4.19.121","v4.19.120","v4.19.119","v4.19.118","v4.19.117","v4.19.116","v4.19.115","v4.19.114","v4.19.113","v4.19.112","v4.19.111","v4.19.110","v4.19.109","v4.19.108","v4.19.107","v4.19.106","v4.19.105","v4.19.104","v4.19.103","v4.19.102","v4.19.101","v4.19.100","v4.19.99","v4.19.98","v4.19.97","v4.19.96","v4.19.95","v4.19.94","v4.19.93","v4.19.92","v4.19.91","v4.19.90","v4.19.89","v4.19.88","v4.19.87","v4.19.86","v4.19.85","v4.19.84","v4.19.83","v4.19.82","v4.19.81","v4.19.80","v4.19.79","v4.19.78","v4.19.77","v4.19.76","v4.19.75","v4.19.74","v4.19.73","v4.19.72","v4.19.71","v4.19.70","v4.19.69","v4.19.68","v4.19.67","v4.19.66","v4.19.65","v4.19.64","v4.19.63","v4.19.62","v4.19.61","v4.19.60","v4.19.59","v4.19.58","v4.19.57","v4.19.56","v4.19.55","v4.19.54","v4.19.53","v4.19.52","v4.19.51","v4.19.50","v4.19.49","v4.19.48","v4.19.47","v4.19.46","v4.19.45","v4.19.44","v4.19.43","v4.19.42","v4.19.41","v4.19.40","v4.19.39","v4.19.38","v4.19.37","v4.19.36","v4.19.35","v4.19.34","v4.19.33","v4.19.32","v4.19.31","v4.19.30","v4.19.29","v4.19.28","v4.19.27","v4.19.26","v4.19.25","v4.19.24","v4.19.23","v4.19.22","v4.19.21","v4.19.20","v4.19.19","v4.19.18","v4.19.17","v4.19.16","v4.19.15","v4.19.14","v4.19.13","v4.19.12","v4.19.11","v4.19.10","v4.19.9","v4.19.8","v4.19.7"],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-98503.json"}},{"package":{"name":"Kernel","ecosystem":"Linux"},"ranges":[{"type":"ECOSYSTEM","events":[{"introduced":"4.20.0"},{"fixed":"6.12.112"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.13.0"},{"fixed":"6.18.55"}]},{"type":"ECOSYSTEM","events":[{"introduced":"6.19.0"},{"fixed":"7.2.9"}]}],"database_specific":{"source":"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-98503.json"}}],"schema_version":"1.9.0"}