CVE-2023-54148

Source
https://cve.org/CVERecord?id=CVE-2023-54148
Import Source
https://storage.googleapis.com/osv-test-cve-osv-conversion/osv-output/CVE-2023-54148.json
JSON Data
https://api.test.osv.dev/v1/vulns/CVE-2023-54148
Downstream
Related
Published
2025-12-24T13:07:00.260Z
Modified
2026-03-31T17:29:54.501274221Z
Summary
net/mlx5e: Move representor neigh cleanup to profile cleanup_tx
Details

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

net/mlx5e: Move representor neigh cleanup to profile cleanup_tx

For IP tunnel encapsulation in ECMP (Equal-Cost Multipath) mode, as the flow is duplicated to the peer eswitch, the related neighbour information on the peer uplink representor is created as well.

In the cited commit, eswitch devcom unpair is moved to uplink unload API, specifically the profile->cleanuptx. If there is a encap rule offloaded in ECMP mode, when one eswitch does unpair (because of unloading the driver, for instance), and the peer rule from the peer eswitch is going to be deleted, the use-after-free error is triggered while accessing neigh info, as it is already cleaned up in uplink's profile->disable, which is before its profile->cleanuptx.

To fix this issue, move the neigh cleanup to profile's cleanuptx callback, and after mlx5ecleanupuplinkreptx is called. The neigh init is moved to inittx for symmeter.

[ 2453.376299] BUG: KASAN: slab-use-after-free in mlx5erepneighentryrelease+0x109/0x3a0 [mlx5_core] [ 2453.379125] Read of size 4 at addr ffff888127af9008 by task modprobe/2496

[ 2453.381542] CPU: 7 PID: 2496 Comm: modprobe Tainted: G B 6.4.0-rc7+ #15 [ 2453.383386] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.13.0-0-gf21b5a4aeb02-prebuilt.qemu.org 04/01/2014 [ 2453.384335] Call Trace: [ 2453.384625] <TASK> [ 2453.384891] dumpstacklvl+0x33/0x50 [ 2453.385285] print_report+0xc2/0x610 [ 2453.385667] ? __virtaddrvalid+0xb1/0x130 [ 2453.386091] ? mlx5erepneighentryrelease+0x109/0x3a0 [mlx5core] [ 2453.386757] kasanreport+0xae/0xe0 [ 2453.387123] ? mlx5erepneighentryrelease+0x109/0x3a0 [mlx5core] [ 2453.387798] mlx5erepneighentryrelease+0x109/0x3a0 [mlx5core] [ 2453.388465] mlx5erepencapentrydetach+0xa6/0xe0 [mlx5core] [ 2453.389111] mlx5eencapdealloc+0xa7/0x100 [mlx5core] [ 2453.389706] mlx5etctunencapdestsunset+0x61/0xb0 [mlx5core] [ 2453.390361] mlx5freeflowattractions+0x11e/0x340 [mlx5core] [ 2453.391015] ? completeall+0x43/0xd0 [ 2453.391398] ? freeflowpostacts+0x38/0x120 [mlx5core] [ 2453.392004] mlx5etcdelfdbflow+0x4ae/0x690 [mlx5core] [ 2453.392618] mlx5etcdelfdbpeersflow+0x308/0x370 [mlx5core] [ 2453.393276] mlx5etccleanfdbpeerflows+0xf5/0x140 [mlx5core] [ 2453.393925] mlx5eswoffloadsunpair+0x86/0x540 [mlx5core] [ 2453.394546] ? mlx5eswoffloadssetnspeer.isra.0+0x180/0x180 [mlx5core] [ 2453.395268] ? downwrite+0xaa/0x100 [ 2453.395652] mlx5eswoffloadsdevcomevent+0x203/0x530 [mlx5core] [ 2453.396317] mlx5devcomsendevent+0xbb/0x190 [mlx5core] [ 2453.396917] mlx5eswoffloadsdevcomcleanup+0xb0/0xd0 [mlx5core] [ 2453.397582] mlx5etceswcleanup+0x42/0x120 [mlx5core] [ 2453.398182] mlx5ereptccleanup+0x15/0x30 [mlx5core] [ 2453.398768] mlx5ecleanupreptx+0x6c/0x80 [mlx5core] [ 2453.399367] mlx5edetachnetdev+0xee/0x120 [mlx5core] [ 2453.399957] mlx5enetdevchangeprofile+0x84/0x170 [mlx5core] [ 2453.400598] mlx5evportrepunload+0xe0/0xf0 [mlx5core] [ 2453.403781] mlx5eswitchunregistervportreps+0x15e/0x190 [mlx5core] [ 2453.404479] ? mlx5eswitchregistervportreps+0x200/0x200 [mlx5core] [ 2453.405170] ? upwrite+0x39/0x60 [ 2453.405529] ? kernfsremovebynamens+0xb7/0xe0 [ 2453.405985] auxiliarybusremove+0x2e/0x40 [ 2453.406405] devicereleasedriverinternal+0x243/0x2d0 [ 2453.406900] ? kobjectput+0x42/0x2d0 [ 2453.407284] busremovedevice+0x128/0x1d0 [ 2453.407687] devicedel+0x240/0x550 [ 2453.408053] ? waitingforsuppliershow+0xe0/0xe0 [ 2453.408511] ? kobject_put+0xfa/0x2d0 [ 2453.408889] ? __kmemcachefree+0x14d/0x280 [ 2453.409310] mlx5rescandriverslocked.part.0+0xcd/0x2b0 [mlx5core] [ 2453.409973] mlx5unregisterdevice+0x40/0x50 [mlx5core] [ 2453.410561] mlx5uninitone+0x3d/0x110 [mlx5core] [ 2453.411111] removeone+0x89/0x130 [mlx5core] [ 24 ---truncated---

Database specific
{
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2023/54xxx/CVE-2023-54148.json",
    "cna_assigner": "Linux"
}
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
b17294e7aa8c39dbb9c3e28e2d1983c88b94b387
Fixed
d628ba98eb1637acce44001e04c718d8dbb1f7ce
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
2be5bd42a5bba1a05daedc86cf0e248210009669
Fixed
36697c592cd0809e626df01b3644c23ac522a4d0
Fixed
d03b6e6f31820b84f7449cca022047f36c42bc3f
Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
0 Unknown introduced commit / All previous commits are affected
Last affected
10cbfecc0f99f579fb170feee866c9efaab7ee47

Database specific

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

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
6.1.45
Type
ECOSYSTEM
Events
Introduced
6.2.0
Fixed
6.4.10

Database specific

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