{
    "dataType": "CVE_RECORD",
    "dataVersion": "5.2",
    "cveMetadata": {
        "cveId": "CVE-2023-54148",
        "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "state": "PUBLISHED",
        "assignerShortName": "Linux",
        "dateReserved": "2025-12-24T13:02:52.528Z",
        "datePublished": "2025-12-24T13:07:00.260Z",
        "dateUpdated": "2026-05-23T15:33:19.751Z"
    },
    "containers": {
        "cna": {
            "providerMetadata": {
                "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
                "shortName": "Linux",
                "dateUpdated": "2026-05-23T15:33:19.751Z"
            },
            "descriptions": [
                {
                    "lang": "en",
                    "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet/mlx5e: Move representor neigh cleanup to profile cleanup_tx\n\nFor IP tunnel encapsulation in ECMP (Equal-Cost Multipath) mode, as\nthe flow is duplicated to the peer eswitch, the related neighbour\ninformation on the peer uplink representor is created as well.\n\nIn the cited commit, eswitch devcom unpair is moved to uplink unload\nAPI, specifically the profile->cleanup_tx. If there is a encap rule\noffloaded in ECMP mode, when one eswitch does unpair (because of\nunloading the driver, for instance), and the peer rule from the peer\neswitch is going to be deleted, the use-after-free error is triggered\nwhile accessing neigh info, as it is already cleaned up in uplink's\nprofile->disable, which is before its profile->cleanup_tx.\n\nTo fix this issue, move the neigh cleanup to profile's cleanup_tx\ncallback, and after mlx5e_cleanup_uplink_rep_tx is called. The neigh\ninit is moved to init_tx for symmeter.\n\n[ 2453.376299] BUG: KASAN: slab-use-after-free in mlx5e_rep_neigh_entry_release+0x109/0x3a0 [mlx5_core]\n[ 2453.379125] Read of size 4 at addr ffff888127af9008 by task modprobe/2496\n\n[ 2453.381542] CPU: 7 PID: 2496 Comm: modprobe Tainted: G    B              6.4.0-rc7+ #15\n[ 2453.383386] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.13.0-0-gf21b5a4aeb02-prebuilt.qemu.org 04/01/2014\n[ 2453.384335] Call Trace:\n[ 2453.384625]  <TASK>\n[ 2453.384891]  dump_stack_lvl+0x33/0x50\n[ 2453.385285]  print_report+0xc2/0x610\n[ 2453.385667]  ? __virt_addr_valid+0xb1/0x130\n[ 2453.386091]  ? mlx5e_rep_neigh_entry_release+0x109/0x3a0 [mlx5_core]\n[ 2453.386757]  kasan_report+0xae/0xe0\n[ 2453.387123]  ? mlx5e_rep_neigh_entry_release+0x109/0x3a0 [mlx5_core]\n[ 2453.387798]  mlx5e_rep_neigh_entry_release+0x109/0x3a0 [mlx5_core]\n[ 2453.388465]  mlx5e_rep_encap_entry_detach+0xa6/0xe0 [mlx5_core]\n[ 2453.389111]  mlx5e_encap_dealloc+0xa7/0x100 [mlx5_core]\n[ 2453.389706]  mlx5e_tc_tun_encap_dests_unset+0x61/0xb0 [mlx5_core]\n[ 2453.390361]  mlx5_free_flow_attr_actions+0x11e/0x340 [mlx5_core]\n[ 2453.391015]  ? complete_all+0x43/0xd0\n[ 2453.391398]  ? free_flow_post_acts+0x38/0x120 [mlx5_core]\n[ 2453.392004]  mlx5e_tc_del_fdb_flow+0x4ae/0x690 [mlx5_core]\n[ 2453.392618]  mlx5e_tc_del_fdb_peers_flow+0x308/0x370 [mlx5_core]\n[ 2453.393276]  mlx5e_tc_clean_fdb_peer_flows+0xf5/0x140 [mlx5_core]\n[ 2453.393925]  mlx5_esw_offloads_unpair+0x86/0x540 [mlx5_core]\n[ 2453.394546]  ? mlx5_esw_offloads_set_ns_peer.isra.0+0x180/0x180 [mlx5_core]\n[ 2453.395268]  ? down_write+0xaa/0x100\n[ 2453.395652]  mlx5_esw_offloads_devcom_event+0x203/0x530 [mlx5_core]\n[ 2453.396317]  mlx5_devcom_send_event+0xbb/0x190 [mlx5_core]\n[ 2453.396917]  mlx5_esw_offloads_devcom_cleanup+0xb0/0xd0 [mlx5_core]\n[ 2453.397582]  mlx5e_tc_esw_cleanup+0x42/0x120 [mlx5_core]\n[ 2453.398182]  mlx5e_rep_tc_cleanup+0x15/0x30 [mlx5_core]\n[ 2453.398768]  mlx5e_cleanup_rep_tx+0x6c/0x80 [mlx5_core]\n[ 2453.399367]  mlx5e_detach_netdev+0xee/0x120 [mlx5_core]\n[ 2453.399957]  mlx5e_netdev_change_profile+0x84/0x170 [mlx5_core]\n[ 2453.400598]  mlx5e_vport_rep_unload+0xe0/0xf0 [mlx5_core]\n[ 2453.403781]  mlx5_eswitch_unregister_vport_reps+0x15e/0x190 [mlx5_core]\n[ 2453.404479]  ? mlx5_eswitch_register_vport_reps+0x200/0x200 [mlx5_core]\n[ 2453.405170]  ? up_write+0x39/0x60\n[ 2453.405529]  ? kernfs_remove_by_name_ns+0xb7/0xe0\n[ 2453.405985]  auxiliary_bus_remove+0x2e/0x40\n[ 2453.406405]  device_release_driver_internal+0x243/0x2d0\n[ 2453.406900]  ? kobject_put+0x42/0x2d0\n[ 2453.407284]  bus_remove_device+0x128/0x1d0\n[ 2453.407687]  device_del+0x240/0x550\n[ 2453.408053]  ? waiting_for_supplier_show+0xe0/0xe0\n[ 2453.408511]  ? kobject_put+0xfa/0x2d0\n[ 2453.408889]  ? __kmem_cache_free+0x14d/0x280\n[ 2453.409310]  mlx5_rescan_drivers_locked.part.0+0xcd/0x2b0 [mlx5_core]\n[ 2453.409973]  mlx5_unregister_device+0x40/0x50 [mlx5_core]\n[ 2453.410561]  mlx5_uninit_one+0x3d/0x110 [mlx5_core]\n[ 2453.411111]  remove_one+0x89/0x130 [mlx5_core]\n[ 24\n---truncated---"
                }
            ],
            "affected": [
                {
                    "product": "Linux",
                    "vendor": "Linux",
                    "defaultStatus": "unaffected",
                    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                    "programFiles": [
                        "drivers/net/ethernet/mellanox/mlx5/core/en_rep.c"
                    ],
                    "versions": [
                        {
                            "version": "b17294e7aa8c39dbb9c3e28e2d1983c88b94b387",
                            "lessThan": "d628ba98eb1637acce44001e04c718d8dbb1f7ce",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "2be5bd42a5bba1a05daedc86cf0e248210009669",
                            "lessThan": "36697c592cd0809e626df01b3644c23ac522a4d0",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "2be5bd42a5bba1a05daedc86cf0e248210009669",
                            "lessThan": "d03b6e6f31820b84f7449cca022047f36c42bc3f",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "10cbfecc0f99f579fb170feee866c9efaab7ee47",
                            "status": "affected",
                            "versionType": "git"
                        },
                        {
                            "version": "6.1.31",
                            "lessThan": "6.1.45",
                            "status": "affected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.3.5",
                            "lessThan": "6.4",
                            "status": "affected",
                            "versionType": "semver"
                        }
                    ]
                },
                {
                    "product": "Linux",
                    "vendor": "Linux",
                    "defaultStatus": "affected",
                    "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
                    "programFiles": [
                        "drivers/net/ethernet/mellanox/mlx5/core/en_rep.c"
                    ],
                    "versions": [
                        {
                            "version": "6.4",
                            "status": "affected"
                        },
                        {
                            "version": "0",
                            "lessThan": "6.4",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.1.45",
                            "lessThanOrEqual": "6.1.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.4.10",
                            "lessThanOrEqual": "6.4.*",
                            "status": "unaffected",
                            "versionType": "semver"
                        },
                        {
                            "version": "6.5",
                            "lessThanOrEqual": "*",
                            "status": "unaffected",
                            "versionType": "original_commit_for_fix"
                        }
                    ]
                }
            ],
            "cpeApplicability": [
                {
                    "nodes": [
                        {
                            "operator": "OR",
                            "negate": false,
                            "cpeMatch": [
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "6.1.31",
                                    "versionEndExcluding": "6.1.45"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "6.4",
                                    "versionEndExcluding": "6.4.10"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "6.4",
                                    "versionEndExcluding": "6.5"
                                },
                                {
                                    "vulnerable": true,
                                    "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                                    "versionStartIncluding": "6.3.5"
                                }
                            ]
                        }
                    ]
                }
            ],
            "references": [
                {
                    "url": "https://git.kernel.org/stable/c/d628ba98eb1637acce44001e04c718d8dbb1f7ce"
                },
                {
                    "url": "https://git.kernel.org/stable/c/36697c592cd0809e626df01b3644c23ac522a4d0"
                },
                {
                    "url": "https://git.kernel.org/stable/c/d03b6e6f31820b84f7449cca022047f36c42bc3f"
                }
            ],
            "title": "net/mlx5e: Move representor neigh cleanup to profile cleanup_tx",
            "x_generator": {
                "engine": "bippy-1.2.0"
            }
        }
    }
}