Bug 1224856 (CVE-2021-47223)

Summary: VUL-0: CVE-2021-47223: kernel: net: bridge: fix vlan tunnel dst null pointer dereference
Product: [Novell Products] SUSE Security Incidents Reporter: SMASH SMASH <smash_bz>
Component: IncidentsAssignee: Michal Kubeček <mkubecek>
Status: NEW --- QA Contact: Security Team bot <security-team>
Severity: Normal    
Priority: P3 - Medium CC: gabriele.sonnu, mhocko
Version: unspecified   
Target Milestone: ---   
Hardware: Other   
OS: Other   
URL: https://smash.suse.de/issue/406849/
Whiteboard: CVSSv3.1:SUSE:CVE-2021-47223:5.5:(AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H)
Found By: Security Response Team Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description SMASH SMASH 2024-05-22 08:10:21 UTC
In the Linux kernel, the following vulnerability has been resolved:

net: bridge: fix vlan tunnel dst null pointer dereference

This patch fixes a tunnel_dst null pointer dereference due to lockless
access in the tunnel egress path. When deleting a vlan tunnel the
tunnel_dst pointer is set to NULL without waiting a grace period (i.e.
while it's still usable) and packets egressing are dereferencing it
without checking. Use READ/WRITE_ONCE to annotate the lockless use of
tunnel_id, use RCU for accessing tunnel_dst and make sure it is read
only once and checked in the egress path. The dst is already properly RCU
protected so we don't need to do anything fancy than to make sure
tunnel_id and tunnel_dst are read only once and checked in the egress path.

References:
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2021-47223
https://www.cve.org/CVERecord?id=CVE-2021-47223
https://git.kernel.org/stable/c/24a6e55f17aa123bc1fc54b7d3c410b41bc16530
https://git.kernel.org/stable/c/58e2071742e38f29f051b709a5cca014ba51166f
https://git.kernel.org/stable/c/a2241e62f6b4a774d8a92048fdf59c45f6c2fe5c
https://git.kernel.org/stable/c/abb02e05cb1c0a30dd873a29f33bc092067dc35d
https://git.kernel.org/stable/c/ad7feefe7164892db424c45687472db803d87f79
https://git.kernel.org/stable/c/fe0448a3fad365a747283a00a1d1ad5e8d6675b7
https://git.kernel.org/pub/scm/linux/security/vulns.git/plain/cve/published/2021/CVE-2021-47223.mbox