{"id":"CVE-2026-98441","title":"net/sched: act_ct: avoid modifying shared unconfirmed ct entry","summary":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet/sched: act_ct: avoid modifying shared unconfirmed ct entry\n\nIn a case where skb with an unconfirmed ct entry gets cloned, we may\nend up processing both again but wi…","severity":"none","vendor":"Linux","product":"Linux","affected":["Linux >= a21b06e7319129994f339ed47f512bbe57b77f5b < 2b783c562c3238ff50c34fd7a72a735c9cc73d9a","Linux >= a21b06e7319129994f339ed47f512bbe57b77f5b < 4a04ed91575819fb1859311113e95700b709bec7","Linux >= a21b06e7319129994f339ed47f512bbe57b77f5b < b097d9d7a5b09c8ec5c4c1a08e35ac5a66b06b44","Linux >= a21b06e7319129994f339ed47f512bbe57b77f5b < f85009dfcd65e5969526b0db7a49b5413746e630","Linux 6.2"],"published":"2026-10-18","updated":"2026-10-18","sourceUpdated":"2026-10-18T15:14:51.664Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-98441","references":[{"url":"https://git.kernel.org/stable/c/2b783c562c3238ff50c34fd7a72a735c9cc73d9a"},{"url":"https://git.kernel.org/stable/c/4a04ed91575819fb1859311113e95700b709bec7"},{"url":"https://git.kernel.org/stable/c/b097d9d7a5b09c8ec5c4c1a08e35ac5a66b06b44"},{"url":"https://git.kernel.org/stable/c/f85009dfcd65e5969526b0db7a49b5413746e630"}],"tags":["cve.org"],"ingestedAt":"2026-10-18T15:45:12.309Z","slug":"CVE-2026-98441","body":"## Overview\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\nnet/sched: act_ct: avoid modifying shared unconfirmed ct entry\n\nIn a case where skb with an unconfirmed ct entry gets cloned, we may\nend up processing both again but with different sets of extensions.\n\nThe series of events:\n\n 1. The first clone wants to commit and runs the helpers wiring up\n    the extension pointer into the expectation list.\n 2. Then it looses the confirmation keeping the entry unconfirmed.\n 3. Second clone now wants to commit labels or run NAT and adds the\n    new extension for that breaking the pointer in the expectation\n    list causing UAF on the destruction path later.\n\nWhile this is possible to trigger, there should be no practical\nnetwork pipeline where we need to process both clones without\nmodifications in the same zone.  So, let's just reset the entry in\ncase for some reason we got an skb with a shared one.  This doesn't\naffect any known use cases, but avoids any potential problems with\nsharing and modification of the unconfirmed ct entry.\n\nUnlike openvswitch module, act_ct allows for NAT without commit.\nChanging that would be a uAPI break.  So, act_ct needs to reset on NAT\nregardless of the commit flag to avoid reallocation of the extension\nspace.  This, however, doesn't really change the picture for sensible\nnetworking cases as there should be no need to run the same packet\ntwice (before and after the clone) through conntrack without packet\nheader or zone changes and without commit.\n\nThe fixes tag points to the introduction of helpers, since that's the\nmain UAF trigger for the sharing.\n\n## Affected\n\n- `Linux >= a21b06e7319129994f339ed47f512bbe57b77f5b < 2b783c562c3238ff50c34fd7a72a735c9cc73d9a`\n- `Linux >= a21b06e7319129994f339ed47f512bbe57b77f5b < 4a04ed91575819fb1859311113e95700b709bec7`\n- `Linux >= a21b06e7319129994f339ed47f512bbe57b77f5b < b097d9d7a5b09c8ec5c4c1a08e35ac5a66b06b44`\n- `Linux >= a21b06e7319129994f339ed47f512bbe57b77f5b < f85009dfcd65e5969526b0db7a49b5413746e630`\n- `Linux 6.2`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"sunlit","depthScore":3,"depthScoreParts":{"impact":2.8,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}