CVE-2023-53855

Source
https://cve.org/CVERecord?id=CVE-2023-53855
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2023-53855.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2023-53855
Downstream
Related
Published
2025-12-09T01:30:20.864Z
Modified
2026-03-23T05:04:28.098720292Z
Summary
net: dsa: ocelot: call dsa_tag_8021q_unregister() under rtnl_lock() on driver remove
Details

In the Linux kernel, the following vulnerability has been resolved:

net: dsa: ocelot: call dsatag8021qunregister() under rtnllock() on driver remove

When the tagging protocol in current use is "ocelot-8021q" and we unbind the driver, we see this splat:

$ echo '0000:00:00.2' > /sys/bus/pci/drivers/fslenetc/unbind msccfelix 0000:00:00.5 swp0: left promiscuous mode sja1105 spi2.0: Link is Down DSA: tree 1 torn down msccfelix 0000:00:00.5 swp2: left promiscuous mode sja1105 spi2.2: Link is Down DSA: tree 3 torn down fslenetc 0000:00:00.2 eno2: left promiscuous mode msccfelix 0000:00:00.5: Link is Down ------------[ cut here ]------------ RTNL: assertion failed at net/dsa/tag8021q.c (409) WARNING: CPU: 1 PID: 329 at net/dsa/tag8021q.c:409 dsatag8021qunregister+0x12c/0x1a0 Modules linked in: CPU: 1 PID: 329 Comm: bash Not tainted 6.5.0-rc3+ #771 pc : dsatag8021qunregister+0x12c/0x1a0 lr : dsatag8021qunregister+0x12c/0x1a0 Call trace: dsatag8021qunregister+0x12c/0x1a0 felixtag8021qteardown+0x130/0x150 felixteardown+0x3c/0xd8 dsatreeteardownswitches+0xbc/0xe0 dsaunregisterswitch+0x168/0x260 felixpciremove+0x30/0x60 pcideviceremove+0x4c/0x100 devicereleasedriverinternal+0x188/0x288 devicelinksunbindconsumers+0xfc/0x138 devicereleasedriverinternal+0xe0/0x288 devicedriverdetach+0x24/0x38 unbindstore+0xd8/0x108 drvattrstore+0x30/0x50 ---[ end trace 0000000000000000 ]--- ------------[ cut here ]------------ RTNL: assertion failed at net/8021q/vlancore.c (376) WARNING: CPU: 1 PID: 329 at net/8021q/vlancore.c:376 vlanviddel+0x1b8/0x1f0 CPU: 1 PID: 329 Comm: bash Tainted: G W 6.5.0-rc3+ #771 pc : vlanviddel+0x1b8/0x1f0 lr : vlanviddel+0x1b8/0x1f0 dsatag8021qunregister+0x8c/0x1a0 felixtag8021qteardown+0x130/0x150 felixteardown+0x3c/0xd8 dsatreeteardownswitches+0xbc/0xe0 dsaunregisterswitch+0x168/0x260 felixpciremove+0x30/0x60 pcideviceremove+0x4c/0x100 devicereleasedriverinternal+0x188/0x288 devicelinksunbindconsumers+0xfc/0x138 devicereleasedriverinternal+0xe0/0x288 devicedriverdetach+0x24/0x38 unbindstore+0xd8/0x108 drvattrstore+0x30/0x50 DSA: tree 0 torn down

This was somewhat not so easy to spot, because "ocelot-8021q" is not the default tagging protocol, and thus, not everyone who tests the unbinding path may have switched to it beforehand. The default felixtagnpiteardown() does not require rtnllock() to be held.

Database specific
{
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/53xxx/CVE-2023-53855.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
7c83a7c539abe9f980996063ac20532a7a7f6eb1
Fixed
758dbcfb257e1aee0a310bae789c2af6ffe35d0f
Fixed
7ae8fa6b70975b6efbbef7912d09bff5a0bff491
Fixed
a94c16a2fda010866b8858a386a8bfbeba4f72c5

Affected versions

v5.*
v5.11
v5.11-rc6
v5.11-rc7
v5.12
v5.12-rc1
v5.12-rc1-dontuse
v5.12-rc2
v5.12-rc3
v5.12-rc4
v5.12-rc5
v5.12-rc6
v5.12-rc7
v5.12-rc8
v5.13
v5.13-rc1
v5.13-rc2
v5.13-rc3
v5.13-rc4
v5.13-rc5
v5.13-rc6
v5.13-rc7
v5.14
v5.14-rc1
v5.14-rc2
v5.14-rc3
v5.14-rc4
v5.14-rc5
v5.14-rc6
v5.14-rc7
v5.15
v5.15-rc1
v5.15-rc2
v5.15-rc3
v5.15-rc4
v5.15-rc5
v5.15-rc6
v5.15-rc7
v5.16
v5.16-rc1
v5.16-rc2
v5.16-rc3
v5.16-rc4
v5.16-rc5
v5.16-rc6
v5.16-rc7
v5.16-rc8
v5.17
v5.17-rc1
v5.17-rc2
v5.17-rc3
v5.17-rc4
v5.17-rc5
v5.17-rc6
v5.17-rc7
v5.17-rc8
v5.18
v5.18-rc1
v5.18-rc2
v5.18-rc3
v5.18-rc4
v5.18-rc5
v5.18-rc6
v5.18-rc7
v5.19
v5.19-rc1
v5.19-rc2
v5.19-rc3
v5.19-rc4
v5.19-rc5
v5.19-rc6
v5.19-rc7
v5.19-rc8
v6.*
v6.0
v6.0-rc1
v6.0-rc2
v6.0-rc3
v6.0-rc4
v6.0-rc5
v6.0-rc6
v6.0-rc7
v6.1
v6.1-rc1
v6.1-rc2
v6.1-rc3
v6.1-rc4
v6.1-rc5
v6.1-rc6
v6.1-rc7
v6.1-rc8
v6.1.1
v6.1.10
v6.1.11
v6.1.12
v6.1.13
v6.1.14
v6.1.15
v6.1.16
v6.1.17
v6.1.18
v6.1.19
v6.1.2
v6.1.20
v6.1.21
v6.1.22
v6.1.23
v6.1.24
v6.1.25
v6.1.26
v6.1.27
v6.1.28
v6.1.29
v6.1.3
v6.1.30
v6.1.31
v6.1.32
v6.1.33
v6.1.34
v6.1.35
v6.1.36
v6.1.37
v6.1.38
v6.1.39
v6.1.4
v6.1.40
v6.1.41
v6.1.42
v6.1.43
v6.1.44
v6.1.45
v6.1.5
v6.1.6
v6.1.7
v6.1.8
v6.1.9
v6.2
v6.2-rc1
v6.2-rc2
v6.2-rc3
v6.2-rc4
v6.2-rc5
v6.2-rc6
v6.2-rc7
v6.2-rc8
v6.3
v6.3-rc1
v6.3-rc2
v6.3-rc3
v6.3-rc4
v6.3-rc5
v6.3-rc6
v6.3-rc7
v6.4
v6.4-rc1
v6.4-rc2
v6.4-rc3
v6.4-rc4
v6.4-rc5
v6.4-rc6
v6.4-rc7
v6.4.1
v6.4.10
v6.4.2
v6.4.3
v6.4.4
v6.4.5
v6.4.6
v6.4.7
v6.4.8
v6.4.9
v6.5-rc1
v6.5-rc2
v6.5-rc3
v6.5-rc4

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2023-53855.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
5.12.0
Fixed
6.1.46
Type
ECOSYSTEM
Events
Introduced
6.2.0
Fixed
6.4.11

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2023-53855.json"