{ "dataType": "CVE_RECORD", "cveMetadata": { "cveId": "CVE-2024-35855", "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "state": "PUBLISHED", "assignerShortName": "Linux", "dateReserved": "2024-05-17T13:50:33.106Z", "datePublished": "2024-05-17T14:47:31.436Z", "dateUpdated": "2026-08-05T11:30:19.765Z" }, "containers": { "cna": { "providerMetadata": { "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux", "dateUpdated": "2026-08-05T11:30:19.765Z" }, "descriptions": [ { "lang": "en", "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nmlxsw: spectrum_acl_tcam: Fix possible use-after-free during activity update\n\nThe rule activity update delayed work periodically traverses the list of\nconfigured rules and queries their activity from the device.\n\nAs part of this task it accesses the entry pointed by 'ventry->entry',\nbut this entry can be changed concurrently by the rehash delayed work,\nleading to a use-after-free [1].\n\nFix by closing the race and perform the activity query under the\n'vregion->lock' mutex.\n\n[1]\nBUG: KASAN: slab-use-after-free in mlxsw_sp_acl_tcam_flower_rule_activity_get+0x121/0x140\nRead of size 8 at addr ffff8881054ed808 by task kworker/0:18/181\n\nCPU: 0 PID: 181 Comm: kworker/0:18 Not tainted 6.9.0-rc2-custom-00781-gd5ab772d32f7 #2\nHardware name: Mellanox Technologies Ltd. MSN3700/VMOD0005, BIOS 5.11 01/06/2019\nWorkqueue: mlxsw_core mlxsw_sp_acl_rule_activity_update_work\nCall Trace:\n \n dump_stack_lvl+0xc6/0x120\n print_report+0xce/0x670\n kasan_report+0xd7/0x110\n mlxsw_sp_acl_tcam_flower_rule_activity_get+0x121/0x140\n mlxsw_sp_acl_rule_activity_update_work+0x219/0x400\n process_one_work+0x8eb/0x19b0\n worker_thread+0x6c9/0xf70\n kthread+0x2c9/0x3b0\n ret_from_fork+0x4d/0x80\n ret_from_fork_asm+0x1a/0x30\n \n\nAllocated by task 1039:\n kasan_save_stack+0x33/0x60\n kasan_save_track+0x14/0x30\n __kasan_kmalloc+0x8f/0xa0\n __kmalloc+0x19c/0x360\n mlxsw_sp_acl_tcam_entry_create+0x7b/0x1f0\n mlxsw_sp_acl_tcam_vchunk_migrate_all+0x30d/0xb50\n mlxsw_sp_acl_tcam_vregion_rehash_work+0x157/0x1300\n process_one_work+0x8eb/0x19b0\n worker_thread+0x6c9/0xf70\n kthread+0x2c9/0x3b0\n ret_from_fork+0x4d/0x80\n ret_from_fork_asm+0x1a/0x30\n\nFreed by task 1039:\n kasan_save_stack+0x33/0x60\n kasan_save_track+0x14/0x30\n kasan_save_free_info+0x3b/0x60\n poison_slab_object+0x102/0x170\n __kasan_slab_free+0x14/0x30\n kfree+0xc1/0x290\n mlxsw_sp_acl_tcam_vchunk_migrate_all+0x3d7/0xb50\n mlxsw_sp_acl_tcam_vregion_rehash_work+0x157/0x1300\n process_one_work+0x8eb/0x19b0\n worker_thread+0x6c9/0xf70\n kthread+0x2c9/0x3b0\n ret_from_fork+0x4d/0x80\n ret_from_fork_asm+0x1a/0x30" } ], "metrics": [ { "cvssV3_1": { "version": "3.1", "vectorString": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H", "baseScore": 7.8, "baseSeverity": "HIGH" }, "scenarios": [ { "lang": "en", "value": "AV:L - The vulnerable state is set up by installing tc flower filters on an mlxsw switch port via rtnetlink (RTM_NEWTFILTER), a local syscall interface; remote traffic only toggles the hardware activity bit and cannot influence the `ventry->entry` lifetime. No network-facing parser or protocol handler is on the path.\nAC:L - The attacker controls both sides of the race — rule add/delete churn resets the rehash context and keeps `mlxsw_sp_acl_tcam_ventry_migrate()` continuously freeing entries (credit budget of 100 forces immediate reschedule), while the unlocked activity walker re-scans every rule once per second with a slow per-rule firmware query, giving a wide window that repeats indefinitely. The bug reproduced in real deployments, and the rehash interval is additionally attacker-tunable via the `acl_region_rehash_interval` devlink param.\nPR:L - Installing offloaded flower rules requires CAP_NET_ADMIN in the netns owning the mlxsw netdev, which per kernel CNA convention is scored as low privilege; mlxsw ports are routinely delegated into network namespaces in containerized switch OSes, where a non-root user holding CAP_NET_ADMIN in that namespace can install the filters.\nUI:N - The attacker triggers everything themselves by configuring tc flower rules; the two racing kernel delayed works then fire automatically on their own timers with no victim action required.\nS:U - The use-after-free corrupts kernel heap memory and is exploited within the kernel's own security authority; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - A use-after-free on a general kmalloc-cache object that is pointer-chased (`entry->chunk->region->priv`, `entry->act_block`) lets an attacker who reclaims the slab redirect reads to arbitrary kernel addresses, yielding an arbitrary-read primitive and disclosure of kernel memory and pointers.\nI:H - The freed object feeds `mlxsw_afa_block_activity_get()`, which performs an indirect call via `block->afa->ops->kvdl_set_activity_get` — three pointer levels all sourced from the freed allocation — so heap spraying the reclaimed slab gives control-flow hijack and hence arbitrary kernel modification.\nA:H - Even unweaponized, the use-after-free dereferences stale pointers from a kernel workqueue context, producing an oops/panic (as captured in the KASAN report) and taking down the switch's control plane." } ] } ], "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/mlxsw/spectrum_acl_tcam.c" ], "versions": [ { "version": "2bffc5322fd8679e879cd6370881ee50cf141ada", "lessThan": "1b73f6e4ea770410a937a8db98f77e52594d23a0", "status": "affected", "versionType": "git" }, { "version": "2bffc5322fd8679e879cd6370881ee50cf141ada", "lessThan": "e24d2487424779c02760ff50cd9021b8676e19ef", "status": "affected", "versionType": "git" }, { "version": "2bffc5322fd8679e879cd6370881ee50cf141ada", "lessThan": "c17976b42d546ee118ca300db559630ee96fb758", "status": "affected", "versionType": "git" }, { "version": "2bffc5322fd8679e879cd6370881ee50cf141ada", "lessThan": "b996e8699da810e4c915841d6aaef761007f933a", "status": "affected", "versionType": "git" }, { "version": "2bffc5322fd8679e879cd6370881ee50cf141ada", "lessThan": "feabdac2057e863d0e140a2adf3d232eb4882db4", "status": "affected", "versionType": "git" }, { "version": "2bffc5322fd8679e879cd6370881ee50cf141ada", "lessThan": "b183b915beef818a25e3154d719ca015a1ae0770", "status": "affected", "versionType": "git" }, { "version": "2bffc5322fd8679e879cd6370881ee50cf141ada", "lessThan": "79b5b4b18bc85b19d3a518483f9abbbe6d7b3ba4", "status": "affected", "versionType": "git" } ] }, { "product": "Linux", "vendor": "Linux", "defaultStatus": "affected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c" ], "versions": [ { "version": "5.1", "status": "affected" }, { "version": "0", "lessThan": "5.1", "status": "unaffected", "versionType": "semver" }, { "version": "5.4.275", "lessThanOrEqual": "5.4.*", "status": "unaffected", "versionType": "semver" }, { "version": "5.10.216", "lessThanOrEqual": "5.10.*", "status": "unaffected", "versionType": "semver" }, { "version": "5.15.158", "lessThanOrEqual": "5.15.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.1.90", "lessThanOrEqual": "6.1.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.6.30", "lessThanOrEqual": "6.6.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.8.9", "lessThanOrEqual": "6.8.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.9", "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": "5.1", "versionEndExcluding": "5.4.275" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.1", "versionEndExcluding": "5.10.216" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.1", "versionEndExcluding": "5.15.158" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.1", "versionEndExcluding": "6.1.90" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.1", "versionEndExcluding": "6.6.30" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.1", "versionEndExcluding": "6.8.9" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "5.1", "versionEndExcluding": "6.9" } ] } ] } ], "references": [ { "url": "https://git.kernel.org/stable/c/1b73f6e4ea770410a937a8db98f77e52594d23a0" }, { "url": "https://git.kernel.org/stable/c/e24d2487424779c02760ff50cd9021b8676e19ef" }, { "url": "https://git.kernel.org/stable/c/c17976b42d546ee118ca300db559630ee96fb758" }, { "url": "https://git.kernel.org/stable/c/b996e8699da810e4c915841d6aaef761007f933a" }, { "url": "https://git.kernel.org/stable/c/feabdac2057e863d0e140a2adf3d232eb4882db4" }, { "url": "https://git.kernel.org/stable/c/b183b915beef818a25e3154d719ca015a1ae0770" }, { "url": "https://git.kernel.org/stable/c/79b5b4b18bc85b19d3a518483f9abbbe6d7b3ba4" } ], "title": "mlxsw: spectrum_acl_tcam: Fix possible use-after-free during activity update", "x_generator": { "engine": "bippy-1.2.0" } }, "adp": [ { "title": "CISA ADP Vulnrichment", "metrics": [ { "other": { "type": "ssvc", "content": { "id": "CVE-2024-35855", "role": "CISA Coordinator", "options": [ { "Exploitation": "none" }, { "Automatable": "no" }, { "Technical Impact": "partial" } ], "version": "2.0.3", "timestamp": "2024-05-17T16:58:00.643012Z" } } } ], "providerMetadata": { "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0", "shortName": "CISA-ADP", "dateUpdated": "2024-06-04T17:33:37.309Z" } }, { "providerMetadata": { "orgId": "af854a3a-2127-422b-91ae-364da2661108", "shortName": "CVE", "dateUpdated": "2024-08-02T03:21:48.376Z" }, "title": "CVE Program Container", "references": [ { "url": "https://git.kernel.org/stable/c/1b73f6e4ea770410a937a8db98f77e52594d23a0", "tags": [ "x_transferred" ] }, { "url": "https://git.kernel.org/stable/c/e24d2487424779c02760ff50cd9021b8676e19ef", "tags": [ "x_transferred" ] }, { "url": "https://git.kernel.org/stable/c/c17976b42d546ee118ca300db559630ee96fb758", "tags": [ "x_transferred" ] }, { "url": "https://git.kernel.org/stable/c/b996e8699da810e4c915841d6aaef761007f933a", "tags": [ "x_transferred" ] }, { "url": "https://git.kernel.org/stable/c/feabdac2057e863d0e140a2adf3d232eb4882db4", "tags": [ "x_transferred" ] }, { "url": "https://git.kernel.org/stable/c/b183b915beef818a25e3154d719ca015a1ae0770", "tags": [ "x_transferred" ] }, { "url": "https://git.kernel.org/stable/c/79b5b4b18bc85b19d3a518483f9abbbe6d7b3ba4", "tags": [ "x_transferred" ] }, { "url": "https://lists.debian.org/debian-lts-announce/2024/06/msg00017.html", "tags": [ "x_transferred" ] } ] } ] }, "dataVersion": "5.2" }