Description
In the Linux kernel, the following vulnerability has been resolved: netfilter: nf_queue: hold bridge skb->dev while queued br_pass_frame_up() rewrites skb->dev from the ingress port to the bridge master before queueing bridge LOCAL_IN packets. NFQUEUE only holds references on state.in/out and bridge physdevs, so a queued bridge packet can retain a freed bridge master in skb->dev until reinjection. When the verdict is reinjected later, br_netif_receive_skb() re-enters the receive path with skb->dev still pointing at the freed bridge master, triggering a use-after-free. Store skb->dev in the queue entry, hold a reference on it for the queue lifetime, and use the saved device when dropping queued packets during NETDEV_DOWN handling.
CVSS breakdown
CVSS 3.1
Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High
Affected products
- Linux / Linuxac28634456867b23b95faccba7997a62ec430603 – 950d809f154dca04e5fbe5d3c8b9c5e44769cd57
- Linux / Linuxac28634456867b23b95faccba7997a62ec430603 – a698ac8ab2561cf575d2d9f34095032651dd952e
- Linux / Linuxac28634456867b23b95faccba7997a62ec430603 – 19924bdd8a45ebc72a7b84c57fd63057d1dc75ac
- Linux / Linuxac28634456867b23b95faccba7997a62ec430603 – 1e5e20031c5eee8d2e490a90ff4d6a2feecfc3be
- Linux / Linuxac28634456867b23b95faccba7997a62ec430603 – 3823c27099cfe2482299065814adbaa771be9644
- Linux / Linuxac28634456867b23b95faccba7997a62ec430603 – 15d464265120ab9818bd673af301deee09bedab2
- Linux / Linuxac28634456867b23b95faccba7997a62ec430603 – 3fb0f5c0f64162a8c3f25616a4f1e340b921737f
- Linux / Linuxac28634456867b23b95faccba7997a62ec430603 – e196115ec330a18de415bdb9f5071aa9f08e53ce
- Linux / Linux4.7 – 4.7
- Linux / Linux0 – 4.7
- Linux / Linux5.10.259 – 5.10.*
- Linux / Linux5.15.209 – 5.15.*
- Linux / Linux6.1.175 – 6.1.*
- Linux / Linux6.6.142 – 6.6.*
- Linux / Linux6.12.92 – 6.12.*
- Linux / Linux6.18.34 – 6.18.*
- Linux / Linux7.0.11 – 7.0.*
- Linux / Linux7.1 – *
References
- MISChttps://git.kernel.org/stable/c/950d809f154dca04e5fbe5d3c8b9c5e44769cd57
- MISChttps://git.kernel.org/stable/c/a698ac8ab2561cf575d2d9f34095032651dd952e
- MISChttps://git.kernel.org/stable/c/19924bdd8a45ebc72a7b84c57fd63057d1dc75ac
- MISChttps://git.kernel.org/stable/c/1e5e20031c5eee8d2e490a90ff4d6a2feecfc3be
- MISChttps://git.kernel.org/stable/c/3823c27099cfe2482299065814adbaa771be9644
- MISChttps://git.kernel.org/stable/c/15d464265120ab9818bd673af301deee09bedab2
- MISChttps://git.kernel.org/stable/c/3fb0f5c0f64162a8c3f25616a4f1e340b921737f
- MISChttps://git.kernel.org/stable/c/e196115ec330a18de415bdb9f5071aa9f08e53ce