Description (CNA)
In the Linux kernel, the following vulnerability has been resolved: netfilter: revalidate bridge ports ebt_redirect_tg() dereferences br_port_get_rcu() return without a NULL check, causing a kernel panic when the bridge port has been removed between the original hook invocation and an NFQUEUE reinject. A mere NULL check isn't sufficient, however. As sashiko review points out userspace can not only remove the port from the bridge, it could also place the device in a different virtual device, e.g. macvlan. If this happens, we must drop the packet, there is no way for us to reinject it into the bridge path. Switch to _upper API, we don't need the bridge port structure. Also, this fix keeps another bug intact: Both nfnetlink_log and nfnetlink_queue use CONFIG_BRIDGE_NETFILTER too aggressive, which prevents certain logging features when queueing in bridge family: NETFILTER_FAMILY_BRIDGE can be enabled while the old CONFIG_BRIDGE_NETFILTER cruft is off. Fixes tag is a common ancestor, this was always broken.
Affected (CNA)
| Vendor / product | Versions |
|---|---|
| Linux / Linux | affected f350a0a87374418635689471606454abc7beaa3a before 98cc0403f546c52104d654fa24d86e9bcac964d3; affected f350a0a87374418635689471606454abc7beaa3a before 43330a1e8aace6b5a8de9aba127e9e394ab49b0f; affected f350a0a87374418635689471606454abc7beaa3a before 4beffcd726e2a731cea4dc18e1fbc55c8d76f1a0; affected f350a0a87374418635689471606454abc7beaa3a before d4b1301fd3c9e5e105fd3767c68bc4ba558bb228; affected f350a0a87374418635689471606454abc7beaa3a before ccb9fd4b87538ccf19ccff78ee26700526d94867 |
| Linux / Linux | affected 2.6.36; unaffected 0 before 2.6.36; unaffected 6.6.160 through 6.6.*; unaffected 6.12.94 through 6.12.*; unaffected 6.18.36 through 6.18.*; unaffected 7.0.13 through 7.0.*; unaffected 7.1 through * |
CWE
No CWE identifiers supplied.
References
- https://git.kernel.org/stable/c/98cc0403f546c52104d654fa24d86e9bcac964d3
- https://git.kernel.org/stable/c/43330a1e8aace6b5a8de9aba127e9e394ab49b0f
- https://git.kernel.org/stable/c/4beffcd726e2a731cea4dc18e1fbc55c8d76f1a0
- https://git.kernel.org/stable/c/d4b1301fd3c9e5e105fd3767c68bc4ba558bb228
- https://git.kernel.org/stable/c/ccb9fd4b87538ccf19ccff78ee26700526d94867