In the Linux kernel, the following vulnerability has been resolved: netfilter: nf_tables: avoid skb access on nf_stolen When verdict is NF_STOLEN, the skb might have been freed. When tracing is enabled, this can result in a use-after-free: 1. access to skb->nf_trace 2. access to skb->mark 3. computation of trace id 4. dump of packet payload To avoid 1, keep a cached copy of skb->nf_trace in the trace state struct. Refresh this copy whenever verdict is != STOLEN. Avoid 2 by skipping skb->mark access if verdict is STOLEN. 3 is avoided by precomputing the trace id. Only dump the packet when verdict is not "STOLEN".
https://git.kernel.org/stable/c/e34b9ed96ce3b06c79bf884009b16961ca478f87
https://git.kernel.org/stable/c/453a67af8bd77463b33cb0336dd7f2341e332d29
https://git.kernel.org/stable/c/348218a4601e93de4d1e9fab29837cf656e4bf99
https://git.kernel.org/stable/c/0016d5d46d7440729a3132f61a8da3bf7f84e2ba